1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-12-23 21:01:25 +01:00

STM32 switch to Timer11 for DCC interrupts

This commit is contained in:
pmantoine 2022-08-17 14:29:02 +08:00
parent e36e867ec2
commit 77cca8f6ee

View File

@ -37,22 +37,25 @@ HardwareSerial Serial1(PA10, PA15); // Rx=PA10, Tx=PA15
INTERRUPT_CALLBACK interruptHandler=0; INTERRUPT_CALLBACK interruptHandler=0;
// Let's use STM32's timer #1 until disabused of this notion // Let's use STM32's timer #1 until disabused of this notion
HardwareTimer timer(TIM1); HardwareTimer timer(TIM11);
// Timer IRQ handler // Timer IRQ handler
void Timer1_Handler() { void Timer11_Handler() {
interruptHandler(); interruptHandler();
} }
void DCCTimer::begin(INTERRUPT_CALLBACK callback) { void DCCTimer::begin(INTERRUPT_CALLBACK callback) {
interruptHandler=callback; interruptHandler=callback;
noInterrupts(); noInterrupts();
// adc_set_sample_rate(ADC_SAMPLETIME_480CYCLES);
timer.pause(); timer.pause();
timer.setPrescaleFactor(1); timer.setPrescaleFactor(1);
// timer.setOverflow(CLOCK_CYCLES * 2); // timer.setOverflow(CLOCK_CYCLES * 2);
timer.setOverflow(DCC_SIGNAL_TIME, MICROSEC_FORMAT); timer.setOverflow(DCC_SIGNAL_TIME, MICROSEC_FORMAT);
timer.attachInterrupt(Timer1_Handler); timer.attachInterrupt(Timer11_Handler);
timer.refresh(); timer.refresh();
timer.resume(); timer.resume();