Hallo Ich versuche gerade mit dem Timer1 meines PIC einen Interrupt auszulösen. Unten folgt nun die Initialisierung des Interrupts und des Timers. Ich habe wohl irgendwas vergessen, habe aber keine Ahnung was. Kann jemand helfen? #include "24FJ128GA010.h" int8 test #INT_TIMER1 inttimer1() { test++; } void main() { setup_timer1(TMR_INTERNAL|TMR_DIV_BY_256); //Timer1 starten PR1H=0x88; //endwert festlegen enable_interrupts(INT_TIMER1); //interrupt einschalten while(TRUE); }
Hallo, kenne den CCS nicht. Aber beim C30 sieht es so aus: void INIT_TIMER1(void) { T1CONbits.TON=0; // Timer 1 zum einstellen sperren T1CONbits.TCS=0; // intern Clock T1CONbits.TGATE=0; // Gates Timer Mode aus T1CONbits.TCKPS=0b11; // CLK/256 TMR1=0x00; PR1=624; //29491200/256=115200 /10-1 IPC0bits.T1IP=0x01; IFS0bits.T1IF=0; IEC0bits.T1IE=1; Counter=0; T1CONbits.TON=1; } void _attribute_ ((interrupt,no_auto_psv)) _T1Interrupt(void) { IFS0bits.T1IF = 0; } Gruß Sascha
Hallo, general interrupt enable wird nirgends gesetzt. Grüße, Peter
Peter Diener wrote: > Hallo, > > general interrupt enable wird nirgends gesetzt. > > Grüße, > > Peter Wäre mir neu, das der PIC24F es hat. Hatte es auch gedacht, da vorkenntnisse beim PIC18. Aber man findet es nicht im Datenblatt oder in den Refernz-Guides. Gruß Sascha
Hallo zusammen Endlich funktioniert mein Interrupt. Das Problem lag daran das der Compiler ein falsches Bit 1 setzte, und somit einen falsch Interrupt aktivierte. Vielen Dank für die Hilfe.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.