altos: Fix a bunch of time variables to be AO_TICK_TYPE
authorKeith Packard <keithp@keithp.com>
Sat, 20 Jun 2020 22:00:28 +0000 (15:00 -0700)
committerKeith Packard <keithp@keithp.com>
Sat, 8 Aug 2020 03:30:11 +0000 (20:30 -0700)
The default tick type is now 32 bits, so all of these
variables were mis-typed at 16 bits.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/attiny/ao_arch.h
src/attiny/ao_clock.c
src/kernel/ao.h
src/kernel/ao_beep.h
src/kernel/ao_notask.c
src/kernel/ao_task.c
src/kernel/ao_task.h
src/lpc/ao_beep_lpc.c
src/stm/ao_beep_stm.c
src/stmf0/ao_beep_stm.c

index 5550eb447e101f3fa724120bf634053ca1b28540..eecd297bab6e5b2729771a010d1ec6d51ac4596a 100644 (file)
@@ -77,7 +77,7 @@
 #define ao_mutex_put(m)
 
 void
-ao_delay_until(uint16_t target);
+ao_delay_until(AO_TICK_TYPE target);
 
 /* We can't hit 100 Hz, but we can hit 125 */
 #define AO_HERTZ       125
index 2ac0500b217f307466fd8be143eae566969eac89..0669585082bec63d74f2b9585b421756302d303c 100644 (file)
@@ -31,7 +31,7 @@ ISR(TIMER1_COMPA_vect)
 AO_TICK_TYPE
 ao_time(void)
 {
-       uint16_t        r;
+       AO_TICK_TYPE    r;
 
        cli();
        r = ao_tick_count;
@@ -127,7 +127,7 @@ void ao_delay_us(uint16_t us)
 }
 
 void
-ao_delay_until(uint16_t target)
+ao_delay_until(AO_TICK_TYPE target)
 {
        cli();
        ao_wakeup_count = target;
@@ -137,7 +137,7 @@ ao_delay_until(uint16_t target)
 }
 
 void
-ao_delay(uint16_t ticks)
+ao_delay(AO_TICK_TYPE ticks)
 {
        ao_delay_until(ao_time() + ticks);
 }
index f44b0e9e380c260941580465f86c9c336cc97903..be663775e91fab86eb119d7690a67fb961c7e1ff 100644 (file)
@@ -42,6 +42,11 @@ extern char ao_getchar(void);
 
 typedef AO_PORT_TYPE ao_port_t;
 
+#ifndef AO_TICK_TYPE
+#define AO_TICK_TYPE uint32_t
+#define AO_TICK_SIGNED int32_t
+#endif
+
 #if HAS_TASK
 #include <ao_task.h>
 #else
@@ -100,11 +105,6 @@ extern AO_ROMCONFIG_SYMBOL uint32_t ao_radio_cal;
  * ao_timer.c
  */
 
-#ifndef AO_TICK_TYPE
-#define AO_TICK_TYPE   uint32_t
-#define AO_TICK_SIGNED int32_t
-#endif
-
 extern volatile AO_TICK_TYPE ao_tick_count;
 
 /* Our timer runs at 100Hz */
@@ -124,7 +124,7 @@ ao_time_ns(void);
 
 /* Suspend the current task until ticks time has passed */
 void
-ao_delay(uint16_t ticks);
+ao_delay(AO_TICK_TYPE ticks);
 
 /* Set the ADC interval */
 void
index fdc150f1bbb56148b2d126520105913bb134e344..8c5d53435254df11e78ad3c311c6c04fc4de1d3b 100644 (file)
@@ -85,7 +85,7 @@ ao_beep(uint8_t beep);
 
 /* Turn on the beeper for the specified time */
 void
-ao_beep_for(uint8_t beep, uint16_t ticks);
+ao_beep_for(uint8_t beep, AO_TICK_TYPE ticks);
 
 /* Initialize the beeper */
 void
index a5bdc8a7c65e5d81dbc6e0ad8b7bcf9ff54261d8..e973c7ae1723e8fa8811543e092590694622bf3f 100644 (file)
@@ -41,7 +41,7 @@ ao_sleep(void *wchan)
 
 #if HAS_AO_DELAY
 void
-ao_delay(uint16_t ticks)
+ao_delay(AO_TICK_TYPE ticks)
 {
        AO_TICK_TYPE    target;
 
index 15cd2a556b68a5176732eaf3329e9eacf2490c83..38aefbec1ea3d91bd3bf2d4a4e0bc5664f8b5d95 100644 (file)
@@ -126,7 +126,7 @@ ao_task_validate_alarm_queue(void)
 #define ao_task_validate_alarm_queue()
 #endif
 
-uint16_t       ao_task_alarm_tick;
+AO_TICK_TYPE   ao_task_alarm_tick;
 
 static void
 ao_task_to_alarm_queue(struct ao_task *task)
@@ -174,7 +174,7 @@ ao_task_exit_queue(struct ao_task *task)
 }
 
 void
-ao_task_check_alarm(uint16_t tick)
+ao_task_check_alarm(AO_TICK_TYPE tick)
 {
        struct ao_task  *alarm, *next;
 
@@ -359,8 +359,8 @@ ao_yield(void) ao_arch_naked_define
        else
        {
 #if HAS_SAMPLE_PROFILE
-               uint16_t        tick = ao_sample_profile_timer_value();
-               uint16_t        run = tick - ao_cur_task->start;
+               AO_TICK_TYPE    tick = ao_sample_profile_timer_value();
+               AO_TICK_TYPE    run = tick - ao_cur_task->start;
                if (run > ao_cur_task->max_run)
                        ao_cur_task->max_run = run;
                ++ao_cur_task->yields;
@@ -493,7 +493,7 @@ ao_wakeup(void *wchan)
 }
 
 uint8_t
-ao_sleep_for(void *wchan, uint16_t timeout)
+ao_sleep_for(void *wchan, AO_TICK_TYPE timeout)
 {
        uint8_t ret;
        if (timeout) {
@@ -530,7 +530,7 @@ ao_sleep_for(void *wchan, uint16_t timeout)
 static uint8_t ao_forever;
 
 void
-ao_delay(uint16_t ticks)
+ao_delay(AO_TICK_TYPE ticks)
 {
        if (!ticks)
                ticks = 1;
@@ -565,7 +565,7 @@ ao_task_info(void)
 {
        uint8_t         i;
        struct ao_task *task;
-       uint16_t        now = ao_time();
+       AO_TICK_TYPE    now = ao_time();
 
        for (i = 0; i < ao_num_tasks; i++) {
                task = ao_tasks[i];
index 03b629693c0e44baa9ba61a24caa39edc6d61ff4..7d81c1da547243e4c024fbf35ebcc5ae8633812a 100644 (file)
@@ -38,7 +38,7 @@
 /* An AltOS task */
 struct ao_task {
        void *wchan;                    /* current wait channel (NULL if running) */
-       uint16_t alarm;                 /* abort ao_sleep time */
+       AO_TICK_TYPE alarm;             /* abort ao_sleep time */
        uint16_t task_id;               /* unique id */
        /* Saved stack pointer */
        union {
@@ -96,7 +96,7 @@ ao_sleep(void *wchan);
  *  1 on alarm
  */
 uint8_t
-ao_sleep_for(void *wchan, uint16_t timeout);
+ao_sleep_for(void *wchan, AO_TICK_TYPE timeout);
 
 /* Wake all tasks sleeping on wchan */
 void
@@ -105,7 +105,7 @@ ao_wakeup(void *wchan);
 #if 0
 /* set an alarm to go off in 'delay' ticks */
 void
-ao_alarm(uint16_t delay);
+ao_alarm(AO_TICK_TYPE delay);
 
 /* Clear any pending alarm */
 void
@@ -122,9 +122,9 @@ ao_add_task(struct ao_task * task, void (*start)(void), const char *name);
 
 #if HAS_TASK_QUEUE
 /* Called on timer interrupt to check alarms */
-extern uint16_t        ao_task_alarm_tick;
+extern AO_TICK_TYPE    ao_task_alarm_tick;
 void
-ao_task_check_alarm(uint16_t tick);
+ao_task_check_alarm(AO_TICK_TYPE tick);
 #endif
 
 /* Terminate the current task */
index eab86ee644ebe44b92e6deee77828dc5809bc661..ab06ef48776be45260add4fe20242114b1ba5f6c 100644 (file)
@@ -59,7 +59,7 @@ ao_beep(uint8_t beep)
 }
 
 void
-ao_beep_for(uint8_t beep, uint16_t ticks) 
+ao_beep_for(uint8_t beep, AO_TICK_TYPE ticks) 
 {
        ao_beep(beep);
        ao_delay(ticks);
index 2bcd684909af1fccfe843fd9655dee4e586d53e0..12d2b0b6439eed06dacc5085d2c81a9f205be883 100644 (file)
@@ -148,7 +148,7 @@ ao_beep(uint8_t beep)
 }
 
 void
-ao_beep_for(uint8_t beep, uint16_t ticks)
+ao_beep_for(uint8_t beep, AO_TICK_TYPE ticks)
 {
        ao_beep(beep);
        ao_delay(ticks);
index 31af7f4a00ab74d19fc2fa2a54808ba286630b87..39022da16d4fd36e48300c0573ee8894af7b04ec 100644 (file)
@@ -376,7 +376,7 @@ ao_beep(uint8_t beep)
 }
 
 void
-ao_beep_for(uint8_t beep, uint16_t ticks) 
+ao_beep_for(uint8_t beep, AO_TICK_TYPE ticks) 
 {
        ao_beep(beep);
        ao_delay(ticks);