-
-
Neuer Benutzer
Öfters hier
PIC18F2550
HI,
ich möchte eigendlich was ganz einfaches machen: einen Interrupt auslösen. ja, 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
-
Erfahrener Benutzer
Lebende Robotik Legende
Hallo blitzgeist!
Zum auslösen des Interrupts durch ein Timer kommt nur wenn dieser Timer überläuft von FFFFh auf 0000h. Damit es geschieht, muss für den Timer eine Taktquelle gewählt werden (interner Takt oder Impulse auf T0CKI Pin) und in die Timer Register TMR0H und TMR0L gewünschte "Startwerte" geladen werden. Danach muss der Timer noch gestartet werden um die Impulse zählen und zum Überlauf kommen zu können. Das alles wird im Register T0CON konfiguriert. Setzen den von Dir angeschprochenen Bits erlaubt den Interrupt, löst ihn aber leider nicht aus.
MfG
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen