first cut at turnon scripts for EasyTimer v2
[fw/altos] / src / attiny / ao_async.c
index f64f7bde41e626218669f7cae25d8789c5812f41..945f4b1414b153867669f056417e10f958bdce2e 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -32,7 +33,7 @@ ao_async_start(void)
 void
 ao_async_stop(void)
 {
-       LED_PORT &= ~(1 << AO_LED_SERIAL);
+       LED_PORT &= (uint8_t) ~(1 << AO_LED_SERIAL);
 }
 
 void
@@ -44,11 +45,11 @@ ao_async_byte(uint8_t byte)
        uint8_t         bit;
        uint8_t         w_hi, w_lo;
 
-       /*    start           data           stop */
-       w = (0x000 << 0) | (byte << 1) | (0x001 << 9);
+       /*                start           data           stop */
+       w = (uint16_t) ((0x000 << 0) | (byte << 1) | (0x001 << 9));
 
-       w_hi = w >> 8;
-       w_lo = w;
+       w_hi = (uint8_t) (w >> 8);
+       w_lo = (uint8_t) w;
 
        ao_arch_block_interrupts();