Forum: Mikrocontroller und Digitale Elektronik Bräuchte Hilfe! Finde meinen Fehler nicht!


von suboptimal (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich möchte mit einem atmega16 eine Stoppuhr bauen (Übung bin Anfänger)

Mit einem Taster starte ich die Stoppuhr. -> funktioniert

mit einem 2. Taster der einen Interrupt auslöst (INT0/ steigende Flanke)

soll die Uhr gestoppt werden. -> funktioniert

durch nochmaliges drücken des Interrupttasters soll die Zeit von der 
gleichen Stelle weiterlaufen.  -> funktioniert nicht !!!!

Stattdessen geht die uhr wieder auf 0, d.h. er macht immer einen Reset, 
so glaube ich, weil er die Sekunden nur nach einem Reset löschen kann.

Vielleicht kann mir jemand helfen.

Danke im Voraus

von holger (Gast)


Lesenswert?

stopp:

  push  temp

  tst    taste1  ;stopptaste schon mal gedr�ckt?
  breq  n_gedrueckt  ;nein dann.

  dec    taste1  ;tastenmarker auf null setzen
  dec    taste2  ; wenn die zeile fehlt ist der starttaster aus!!

  in    temp, tccr0
  ori    temp, 0x04  ;cs02 anmachen --> prescaler auf 256 -> timer l�uft 
los
  out    tccr0, temp

  out    tcnt0, timer ;gespeicherter timerstand zur�ckladen

!! Hier fehlt ein pop temp !!

  reti

von suboptimal (Gast)


Lesenswert?

ohman ja danke !!!

Der Wald ... die Bäume ....

von spess53 (Gast)


Lesenswert?

Hi

>stopp:
>push  temp
>  tst    taste1  ;stopptaste schon mal gedrückt?
>.............
>  out    tcnt0, timer ;gespeicherter timerstand zurückladen
>       !!!!!!!!!!!! hier fehlt ein pop temp
>  reti

>n_gedrueckt:
>  in    timer, tcnt0 ;timerstand merken
>...............
>ende_st:
>  pop temp
>  reti

Besser du gewöhnst dir an, Unterprogramme, IS-Routinen mit einem 
Eintritts- und einem Austrittspunkt zu versehen. Macht die Fehlersuche 
einfacher.

MfG Spess

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.