www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PIC18F2550 Timer0 interrupt


Autor: Ron Napp (blitzgeist)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir im Datenblatt T0CON mal an !

Autor: Ron Napp (blitzgeist)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja habe ich, und nun? du meinst etwa den timer starten?!

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ron Napp (blitzgeist)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also der timer ist richtig konfiguriert. in einer funktion frage ich 
auch das bit if(INTCONbits.TMR0IF) ab (setze zb einen breakpoint). das 
geht (falg gesetzt). wie schon gesagt es wird nicht in die ISR 
gesprungen. woran liegt das? am T0CON nicht.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.