The unified diff between revisions [d8ed90db..] and [d0420ebd..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'timer.h'
# # old_revision [d8ed90db2d4284a290224447c40a0d9cef3fbc31] # new_revision [d0420ebd87c820e33a32b29727989516e15980a8] # # add_file "timer.h" # content [a1df137b32f7a24a94d0b016cb360bc10529bfa8] # ============================================================ --- /dev/null +++ timer.h a1df137b32f7a24a94d0b016cb360bc10529bfa8 @@ -0,0 +1,39 @@ +#ifndef __TIMER_H +#define __TIMER_H + +#include "types.h" + +#define TIMER_PCLK 14745600 +#define TIMER_PRESCALE 0 + +#define TIMER_SECOND (TIMER_PCLK/(TIMER_PRESCALE+1)) +#define TIMER_MS (TIMER_SECOND/1000) +#define TIMER_US (TIMER_SECOND/1000000) + +#define PWM_MAX 14745 +#if 0 +#define PWM_PERIOD 58980 +#endif +#define PWM_PERIOD ((4*PWM_MAX)+1) + +#define TIMER_INPUT_TIMEOUT (TIMER_PCLK/10) + +#define TIMER_CH(x) (timer_map[x]) + +extern volatile unsigned int timer1_width[]; +extern unsigned int timer_map[]; + +void init_timer(void); +unsigned int timer_read(void); +void timer_delay_clocks(unsigned int clocks); +void timer_set_period(unsigned int period); +void timer_set_pwm_value(int channel, int value); +void timer_set_pwm_invalid(int channel); +bool timer_valid(int channel); +bool timer_allvalid(void); + +#define timer_delay_us(x) timer_delay_clocks((x)*TIMER_US) +#define timer_delay_ms(x) timer_delay_clocks((x)*TIMER_MS) + +#define timer_input(ch) (timer1_width[TIMER_CH(ch)]) +#endif /* __TIMER_H */