Procházet zdrojové kódy

T4 IntervalTimer Priority

If you call set priority it was only looking at priority of first two items, even though there could be 4.  The main code that started an interrupt checked all 4. So I sort of copied that code over, only change was to simply set the top_priority to the first item to start with instead of 255 and then look at the first item
teensy4-core
Kurt Eckhardt před 5 roky
rodič
revize
de69b08586
1 změnil soubory, kde provedl 4 přidání a 4 odebrání
  1. +4
    -4
      teensy4/IntervalTimer.h

+ 4
- 4
teensy4/IntervalTimer.h Zobrazit soubor

@@ -103,11 +103,11 @@ public:
if (channel) {
int index = channel - IMXRT_PIT_CHANNELS;
nvic_priorites[index] = nvic_priority;
if (nvic_priorites[0] <= nvic_priorites[1]) {
NVIC_SET_PRIORITY(IRQ_PIT, nvic_priorites[0]);
} else {
NVIC_SET_PRIORITY(IRQ_PIT, nvic_priorites[1]);
uint8_t top_priority = nvic_priorites[0];
for (uint8_t i=1; i < (sizeof(nvic_priorites)/sizeof(nvic_priorites[0])); i++) {
if (top_priority > nvic_priorites[i]) top_priority = nvic_priorites[i];
}
NVIC_SET_PRIORITY(IRQ_PIT, top_priority);
}
}
operator IRQ_NUMBER_t() {

Načítá se…
Zrušit
Uložit