timer interrupt problem

OP (Firma: tu wien) #1442804
Lesenswert?
• ▲
▼
hallo,
ich habe gerade in der uni angefangen atmega16 zu programmieren und hab 
da eine frage. ich wollte einfach nur eine stoppuhr programmieren, 
schaffe es jedoch nicht die zeit anzuhalten.
zum stoppen lese ich einfach einen button ein:

help = PINA;
if((help & 0x40)==0x40){ /*wenn PINA.7  auf 1 ist, --> uhr stoppen */
  flag = 0;
}
else{
  flag = 1;
}

soweit funktioniert das ja auch.
jetzt will ich aber im timer interrupt das flag auslesen und entweder 
einen counter dort weiterlaufen lassen oder eben stoppen, damit die zeit 
stehen bleibt:

SIGNAL(SIG_OVERFLOW1){/*timer interrupt*/
if(flag == 1){
  temp++;
}

das funktioniert aber einfach nicht. temp wird einfach immer 
weitergezählt.  ich hab auch schon probiert, dass ich einfach mal gleich 
nach dem abfragen des buttons leds ein und ausschalte. das geht auch. 
nur die abfrage im interrupt macht ein problem.
kann es sein, dass das überhaupt nicht funktioniert oder hats da ein 
anderes problem?
mfg specht
Angehängte Dateien:
Persönliche Seite #1442822
Lesenswert?
• ▲
▼
Dir ist schon klar daß das bestenfalls nur dann geht, wenn der Taster 
(dauerhaft) gedrückt ist?

Ausserdem tust du dir und anderen einen Gefallen, wenn du "magische" 
Zahlen wie in TIMSK=4 vermeidest. Ich hab jetzt keine Lust das Handbuch 
runterzulagen und zu schauen was in Bit 2 codiert ist; es sollte aber 
gleichbedeutend sein zu sowas wie
1
TIMSK |= (1 << TOV1);

Johann
OP (Firma: tu wien) #1442824
Lesenswert?
• ▲
▼
ok danke für die tipps. werds gleich mal umschreiben. bin wie gesagt neu 
im programmiergeschäft. drum schaut der code vielleicht ein bisschen 
anders aus.
das es nur solange stoppt, wie der button gedrückt ist ist mir schon 
klar. ich werds noch umändern, so dass der button start - stopp toggelt

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.