M32 Timer läuft nicht

Gast #2025495
Hallo zusammen!

Im angehängten Coder soll durch einen Drehgeber (Panasonic EVEQDBRL416B) 
die 7-Segment-anzeige verändert werden. Funktionierte anfangs auch, 
abgesehen davon, dass die Anzeige machte was sie will. Neuerdings wird 
aber nichtmal mehr der Interrupt ausgelöst (getestet mit hochzählen 
einer Variable im Interrupt), sonder er Zeigt kontinuierlich "0" an. 
Nein,  das mittlere Segment  ist wirklich aus, ein schnelles 
Durcheinander ist es also nicht.

Der Code ist aus http://www.mikrocontroller.net/articles/Drehgeber und 
siebzehn mal Kontrolliert. Wer kratzt mir die Tomaten von den Augen?

MfG,
Tomate
Angehängte Dateien:
Gast #2025801
Sind aktiv, hatte ich nur mal zu Testzwecken ausgemacht. Änderte aber 
nichts ob mit oder ohne. Wie gesagt, der Timer läuft nicht, aber warum?
Persönliche Seite #2025873
Kannst du diese Zeile in main() erläutern? Läuft auf Jörgs Frage hinaus 
:-)
>   PINA=0x00;

Um das Programm im Simulator zu testen, wären Angaben zum Drehencoder 
hilfreich: Wie ändern sich PA6 und PA7 in etwa zeitlich. Mit dieser Info 
könnte man eine Stimuli-Datei anlegen. Wenn du bereits eine 
Stimuli-Datei hast, her damit.

Die ISR( TIMER0_COMP_vect ) wird wie im Programm kommentiert im Sim alle 
1ms aufgerufen.

Watchdog ist aus, Brownout ist an, Stromversorgung OK? Findet ein Reset 
statt? Eventuell im Artikel Watchdog nachlesen wie man vor main() 
eine Resetursache ermittelt.

Bei der Berechnung von enc_delta in der ISR würde ich einen Angstcast 
hinzufügen: enc_delta += (int8_t) pgm_read_byte(&table[last]);
#2025891
Deine Vermutung, dass irgendwas mit dem Timer nicht stimmt, würde ich 
mal losgelöst vom Drehencoder verifizieren. In der ISR eine LED 
einschalten. Das genügt dann schon als Nachweis, dass die ISR aufgerufen 
wird.

(Ich seh zwar keinen Grund warum das auch nicht so sein sollte, aber es 
beruhigt nun mal.)

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 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.