WIP: redo power sequence
This commit is contained in:
@ -9,14 +9,19 @@ void delay_ticks(uint16_t ticks) {
|
||||
timer_stop();
|
||||
}
|
||||
|
||||
// One millisecond in ticks is determined as follows:
|
||||
// 9.2 MHz is the clock rate
|
||||
// The timer divider is 12
|
||||
// The timer rate is 12 / 9.2 MHz = 1.304 us
|
||||
// The ticks are 1000 ms / (1.304 us) = 766.667
|
||||
// 65536 - 766.667 = 64769.33
|
||||
// 1 us * 9.2 MHz / 12 is 69/90
|
||||
// Warning: this will round to the nearest tick
|
||||
#define delay_us(X) \
|
||||
delay_ticks((uint16_t)((((uint32_t)(X)) * 69UL + 89UL) / 90UL));
|
||||
|
||||
// 1 ns * 9.2 MHz / 12 is 69/90000
|
||||
// Warning: this will round to the nearest tick
|
||||
#define delay_ns(X) \
|
||||
delay_ticks((uint16_t)((((uint32_t)(X)) * 69UL + 89999UL) / 90000UL));
|
||||
|
||||
// This loops through delays of one ms in order to avoid overflow
|
||||
void delay_ms(int ms) {
|
||||
for (int i = 0; i < ms; i++) {
|
||||
delay_ticks(767);
|
||||
delay_us(1000);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user