The unified diff between revisions [be147b11..] and [08a35a66..] 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 [be147b11caac304fda1579ac71017eecc3bb79e0] # new_revision [08a35a6680cdf8985cfb16fa6779ee6db7202a9c] # # patch "timer.h" # from [a1df137b32f7a24a94d0b016cb360bc10529bfa8] # to [77f91cb86b26421f2d28236d25d384e9a025e939] # ============================================================ --- timer.h a1df137b32f7a24a94d0b016cb360bc10529bfa8 +++ timer.h 77f91cb86b26421f2d28236d25d384e9a025e939 @@ -3,24 +3,32 @@ #include "types.h" -#define TIMER_PCLK 14745600 -#define TIMER_PRESCALE 0 +#define TIMER_PCLK 58982400 +#define TIMER_PRESCALE 36863 +#define TIMER0_PRESCALE 3 #define TIMER_SECOND (TIMER_PCLK/(TIMER_PRESCALE+1)) -#define TIMER_MS (TIMER_SECOND/1000) -#define TIMER_US (TIMER_SECOND/1000000) +/* Since we're using awkward numbers, this gives better accuracy */ +#define TIMER_MS(x) ((x) * TIMER_SECOND / 1000) +#define TIMER_US(x) ((x) * TIMER_SECOND / 1000000) +#define TIMER0_SECOND (TIMER_PCLK/(TIMER0_PRESCALE+1)) +#define TIMER0_MS (TIMER0_SECOND/1000) +#define TIMER0_US (TIMER0_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_INPUT_TIMEOUT (TIMER0_SECOND/10) +#define TIMER_CPPM_SYNC 40000 #define TIMER_CH(x) (timer_map[x]) -extern volatile unsigned int timer1_width[]; +extern volatile unsigned int timer0_width[]; +extern volatile unsigned int timer0_cppm[]; extern unsigned int timer_map[]; void init_timer(void); @@ -32,8 +40,12 @@ bool timer_allvalid(void); 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_delay_us(x) timer_delay_clocks((x)*TIMER0_US) +#define timer_delay_ms(x) timer_delay_clocks((x)*TIMER0_MS) -#define timer_input(ch) (timer1_width[TIMER_CH(ch)]) +#ifdef TIMER_CPPM +#define timer_input(ch) (timer0_cppm[TIMER_CH(ch)]) +#else +#define timer_input(ch) (timer0_width[TIMER_CH(ch)]) +#endif #endif /* __TIMER_H */