PIC18F2550 Timer0 interrupt

OP #568921
Lesenswert?

HI,
ich möchte eigendlich was ganz einfaches machen: einen Interrupt 
auslösen. und zwar von timer0 (16 bit modus)
Welche bits muss ich hierzu setzen?

INTCONbits.GIE = 1; // enables/disables all interrupt sources
RCONbits.IPEN = 0;
INTCONbits.TMR0IE = 1; // IRQ aktiv

das dürfte doch schon alles gewesen sein. ich habe nur diesen einen 
interrupt, also nix mit high oder low.

laut datenblatt soll nun an die stelle 0x000008 gesprungen werden. dort 
ist ne while(1); und somit soll meine LED aufören zu blinken. er springt 
aber einfach nicht in die ISR!!! wiso? habe schon alles probiert. kan 
mir jemand bitte behilflich sein?
lg
Gast #568974
Lesenswert?

Ja, könnte nicht schaden, aber eher auf internen Takt umschalten.
Die Bits dort sind bei Reset alle auf 1.
Für internen Takt muss T0CS aber 0 sein.
Auch T08BIT musst du auf 0 setzen für
16 Bit Timer. Prescaler nach deinem belieben.
Gast #568998
Lesenswert?

Alle Bedingungen sind erfüllt das in die ISR
gesprungen wird. An dieser Stelle würde ich mir
das Assemblerlisting anschauen und nachsehen was
der Compiler aus der ISR Routine gemacht hat.
Ich vermute da liegt der Hund begraben.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren