M32 Timer läuft nicht

Gast #2025495
Lesenswert?
• ▲
▼
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:
Persönliche Seite #2025873
Lesenswert?
• ▲
▼
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
Lesenswert?
• ▲
▼
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

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.

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.