Hallo,
ich habe gerade Probleme dabei, bei einem STM8L152C6, den Timer 4 dazu
zu bringen, anzulaufen, geschweige den, einen Interrupt zu erzeugen.
Die Clock läuft intern mit 16Mhz, da ich (mittlerweile) davon eine
korrektes UART-Debugging ableiten konnte, gehe ich mal davon aus, dass
das in Ordnung ist.
Ich kann erfolgreich einen Interrupt vom ADC erzeugen lassen.
Initialisieren ich den Timer 4 und lasse mir TIM4->CNTR auf der UART
ausgeben, so bekomme ich kontinuierlich 0x00.
Der Code selbst ist aus einem Beispiel von ST:
1 | void TIM4_Init (void) {
|
2 | CLK->PCKENR |= 0x04; // TIM4 clock enable
|
3 |
|
4 | TIM4->ARR = 0x80; // init timer 4 1ms interrupts
|
5 | TIM4->PSCR= 7; // prescaled by 2^7
|
6 | TIM4->EGR = 1; // kommt so nicht aus dem ST Beispiel, wird aber in der peripheral libray so "gemacht"
|
7 |
|
8 | TIM4->IER = 1;
|
9 | TIM4->CR1 |= 1;
|
10 | }
|
Ich habe schon validiert, dass die Funktion aufgerufen wird. Ich schalte
in dem interrupt handler eine LED an, diese geht aber nie an.
Hat von euch noch jemand eine Idee?
mfg und mit Dank im Voraus,
Torsten
P.S.: Was mir gerade noch einfällt: Ich arbeite mit dem SDCC