Stopuhr

Gast #2501
Lesenswert?

Hallo,

Bestücke den AVR extern mit einem Quarz von 4,096 Mhz!

Ungefährer Programmablauf:

Normale Initialisierung....

Prescaler auf 1024 setzen
Timerregister auf 40 setzen

Interrupts zulassen
irqroutine auf tirq setzen
Timerinterrupt zulassen
Timer starten
irqflag=0  //beliebiges Bit auf null setzen
mainloop:

ist irqflag =1 dann springe nach setdisplay

tue andere Dinge...

springe nach mainloop

tirq:
irqflag=1
timerregister wieder auf 40 setzen
rücksprung aus irqroutine

setdisplay:
irqflag=0
das Display ansteuern...oder was auch immer
rücksprung aus setdisplay

---------------------
Das dürfte das simple normale Verfahren sein.
Die Kombination aus dem Quarz und dem Timerwert
ergibt einen Interrupt präzise alle 10ms mit 0,0% Fehler

Gruss
Gast #2502
Lesenswert?

Hi
ich hab mal etwas probiert. zuerst will ich erstmal ne stoppuhr, ohne 
eine lcd anzeige. die zeit soll in 2 registern gespeichert werden.
leider hab ich noch nicht den gewünschten erfolg gehabt. kann mal jemand 
mein code anschauen.
die zeit, in hundertstel sekunden, soll in den registern r17 und r18 
gespeichert werden. ich hab eine taktrate von 4 mhz gewählt.

danke Pierre
Gast #2504
Lesenswert?

Hi,
Ich habe zwar nicht alles überdacht aber inc R17 setzt kein C-Flag,
nur Z,N,V. Du kannst R18 also nur über BRVS hochzählen.

start:

  ldi  r16, -0x61  ; lade dz. 97

ist es nicht einfacher  ldi R16,97 zu schreiben, mein ASM kann das.

Gruß Uwe
Gast #2505
Lesenswert?

hallo
habe die application note von avr gelesen. jedoch komme ich immer noch 
nicht weiter. kann sich jemand noch mal die geänderte datei ansehen. es 
soll jede hunsertstel sekunde ein register inkrementieren. bei länger 
als 256 hundertstel sekunden. wird das nächste register genommen. wie 
könnte man die stopuhr noch anders bzw. genauer programmieren??

danke Pierre
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren