sched: Change sched_from_ms() to sched_from_us()

Some code may require micro-second precision so update sched_from_ms()
to use micro-seconds.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2016-06-01 12:04:01 -04:00
parent d68cb264c4
commit ed103822f5
7 changed files with 16 additions and 16 deletions

View File

@ -8,18 +8,18 @@
#include "command.h" // shutdown
#include "irq.h" // irq_save
#include "sched.h" // sched_timer_kick
#include "timer.h" // timer_from_ms
#include "timer.h" // timer_from_us
/****************************************************************
* Low level timer code
****************************************************************/
// Return the number of clock ticks for a given number of milliseconds
// Return the number of clock ticks for a given number of microseconds
uint32_t
timer_from_ms(uint32_t ms)
timer_from_us(uint32_t us)
{
return ms * (F_CPU / 1000);
return us * (F_CPU / 1000000);
}
static inline uint16_t
@ -156,7 +156,7 @@ timer_try_set_next(uint32_t target)
// Too many repeat timers from a single interrupt - force a pause
timer_repeat = TIMER_MAX_NEXT_REPEAT;
next = now + TIMER_DEFER_REPEAT_TICKS;
if (diff < (int16_t)(-timer_from_ms(1)))
if (diff < (int16_t)(-timer_from_us(1000)))
goto fail;
done:

View File

@ -3,7 +3,7 @@
#include <stdint.h>
uint32_t timer_from_ms(uint32_t ms);
uint32_t timer_from_us(uint32_t us);
void timer_periodic(void);
uint32_t timer_read_time(void);
uint8_t timer_set_next(uint32_t next);

View File

@ -205,7 +205,7 @@ stats_task(void)
sumsq = nextsumsq;
static uint32_t prev;
if (sched_is_before(cur, prev + sched_from_ms(5000)))
if (sched_is_before(cur, prev + sched_from_us(5000000)))
return;
sendf("stats count=%u sum=%u sumsq=%u", count, cur - prev, sumsq);
prev = cur;

View File

@ -9,9 +9,9 @@
#include <stddef.h> // NULL
#include "autoconf.h" // CONFIG_*
#include "board/irq.h" // irq_save
#include "board/timer.h" // timer_from_ms
#include "board/timer.h" // timer_from_us
#include "command.h" // shutdown
#include "sched.h" // sched_from_ms
#include "sched.h" // sched_from_us
#include "stepper.h" // stepper_event
@ -30,7 +30,7 @@ ms_event(struct timer *t)
{
millis++;
timer_periodic();
t->waketime += sched_from_ms(1);
t->waketime += sched_from_us(1000);
return SF_RESCHEDULE;
}
@ -52,11 +52,11 @@ sched_check_periodic(uint16_t time, uint16_t *pnext)
return 1;
}
// Return the number of clock ticks for a given number of milliseconds
// Return the number of clock ticks for a given number of microseconds
uint32_t
sched_from_ms(uint32_t ms)
sched_from_us(uint32_t us)
{
return timer_from_ms(ms);
return timer_from_us(us);
}
// Return the current time (in clock ticks)

View File

@ -23,7 +23,7 @@ enum { SF_DONE=0, SF_RESCHEDULE=1 };
// sched.c
uint8_t sched_check_periodic(uint16_t time, uint16_t *pnext);
uint32_t sched_from_ms(uint32_t ms);
uint32_t sched_from_us(uint32_t us);
uint32_t sched_read_time(void);
uint8_t sched_is_before(uint32_t time1, uint32_t time2);
void sched_timer(struct timer*);

View File

@ -17,7 +17,7 @@ uint8_t Interrupt_off;
****************************************************************/
uint32_t
timer_from_ms(uint32_t ms)
timer_from_us(uint32_t us)
{
return 0; // XXX
}

View File

@ -3,7 +3,7 @@
#include <stdint.h>
uint32_t timer_from_ms(uint32_t ms);
uint32_t timer_from_us(uint32_t us);
void timer_periodic(void);
uint32_t timer_read_time(void);
uint8_t timer_set_next(uint32_t next);