PIC16 Kein Timer Interrupt bei Postscaler != 1:1

OP #6971138
Hallo,

ich habe ein für mich unerklärliches Problem.

Edit: µC PIC16F18877

Der Timer4 (Timer2 und Timer6 gleiches Verhalten) löst keinen Interrupt 
mehr aus, wenn ich den Postscaler auf andere Werte als 1:1 stelle.
1
    // Timer4 init
2
    T4CLKCONbits.CS = 0b0001;       // Clock Source FOSC/4
3
    T4CONbits.CKPS = 0b010;         // Prescaler 1:4
4
    T4CONbits.OUTPS = 0b0000;       // Postscaler 1:1
5
    T4HLTbits.MODE0 = 0;            // normal running mode
6
    T4PR = 208;
7
    PIE4bits.TMR4IE = 1;
8

9
    INTCONbits.PEIE = 1;
10
    INTCONbits.GIE = 1;
11

12
    T4CONbits.ON = 1;
1
void __interrupt() isr(void)
2
{
3
    if(TMR4IF == 1)
4
    {
5
       ...
6
        TMR4IF = 0;
7
    }
8
}

Dieser Code läuft wie erwartet. Sobald ich den Postscaler Wert auf 
irgendwas beliebig anderes stelle (1:2 ... 1:16) wird die ISR nicht mehr 
aufgerufen. Kennt jemand das Problem?

Viele Grüße, Joe
Gast
Las dir das mal vom Codegenerator generieren.
....
Habs grad eh offen. Hier zum schmulen und kopieren:
1
void TMR2_Initialize(void)
2
{
3
    // Set TMR2 to the options selected in the User Interface
4

5
    // T2CS HFINTOSC; 
6
    T2CLKCON = 0x03;
7

8
    // T2PSYNC Not Synchronized; T2MODE Software control; T2CKPOL Rising Edge; T2CKSYNC Not Synchronized; 
9
    T2HLT = 0x00;
10

11
    // T2RSEL T2CKIPPS pin; 
12
    T2RST = 0x00;
13

14
    // PR2 0; 
15
    T2PR = 0x00;
16

17
    // TMR2 0; 
18
    T2TMR = 0x00;
19

20
    // Clearing IF flag before enabling the interrupt.
21
    PIR4bits.TMR2IF = 0;
22

23
    // Enabling TMR2 interrupt.
24
    PIE4bits.TMR2IE = 1;
25

26
    // Set Default Interrupt Handler
27
    TMR2_SetInterruptHandler(TMR2_DefaultInterruptHandler);
28

29
    // T2CKPS 1:1; T2OUTPS 1:16; TMR2ON on; 
30
    T2CON = 0x8F;
31
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 4 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.