Forum: Mikrocontroller und Digitale Elektronik SAME53 - Kein MC0-Interrupt


von Elektrolurch (Gast)


Lesenswert?

Hallo,

ich "stehe total auf dem Schlauch".
Ich habe TCC3 in Normal Frequency Mode am laufen.
Der TCC3_1_Handler() wird vom OVF-INT korrekt aufgerufen.
Zusätzlich habe ich eine TCC3_1_Handler()-Routine,
die von einem CC0-Compare-Match ausgelöst werden soll.
Aber es wird im Debugger bei INTFLAGS nie das MC0-Flag aktiv angezeigt
und ein Breakpoint im Handler wird nie erreicht.
Hier mein Code:
hri_tcc_write_PER_reg(HELPER_EGGTIMER_TCC, divide-1);
hri_tcc_write_CC_reg(HELPER_EGGTIMER_TCC, 0, divide/2);
hri_tc_write_WAVE_reg(HELPER_EGGTIMER_TCC, TCC_WAVE_WAVEGEN_NPWM);
__NVIC_SetPriority(TCC3_0_IRQn, egg_priority); 
__NVIC_SetPriority(TCC3_1_IRQn, background_priority);  // 
BackgroundTasks-_irq_enable(TCC3_0_IRQn);  _irq_enable(TCC3_1_IRQn); 
hri_tcc_set_INTEN_MC0_bit(HELPER_EGGTIMER_TCC);
hri_tcc_set_CTRLA_ENABLE_bit(HELPER_EGGTIMER_TCC);
PS:
Auch wenn in INTEN, MC0 nicht enabled ist, wird das Flag nie gesetzt.
Aber in Status ist MC0 und MC1 gesetzt.

Was habe ich übersehen?

von Elektrolurch (Gast)


Lesenswert?

Elektrolurch schrieb:
> Der TCC3_1_Handler() wird vom OVF-INT korrekt aufgerufen.

Es muss natürlich TCC3_0_Handler() heißen...

von Elektrolurch (Gast)


Lesenswert?

Problem selbst gelöst:
In CTRLA war - aus "unerfindlichen Gründen" CPTEN0 & CPTEN1 gesetzt! 
(AtmelStart?)
Nachdem ich die beiden auf 0 gesetzt habe, funktionierte es...
Asche auf mein Haupt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.