In welcher Programmiersprache?Zitat von enoritz
Ansonsten gibt's im Internet doch genug Tutorials, oder?
Gruß, Sonic
Hallo,
kann mir jemand sagen wie man die Timer des AT90S2313 benutzen kann?? Ich hab schon in den Datenblättern nachgeschaut, allerdings stand da nur etwas über die Register (TCCR0 und TCNT0). Nur kann ich damit nicht soviel anfangen. Und als ich darunter dann noch was über einen 16Bit-Timer gelesen hab wars ganz vorbei.
Am besten wärs wenn mir jemand mal ne übersicht über die ganze Timergeschichte geben könnte.
MfG
enoritz
In welcher Programmiersprache?Zitat von enoritz
Ansonsten gibt's im Internet doch genug Tutorials, oder?
Gruß, Sonic
Bild hier
If the world does not fit your needs, just compile a new one...
Oh, sry.... in Assembler
Wo gibts denn die Tutorials?? bei Google hab ich dann wahrscheinlich die falschen Stichwörter angegeben.
In welcher Programmiersprache du arbeitest, ist für dein Problem vollkommen belanglos. Solange du nicht weisst, wie ein Timer funktioniert, wirst du ihn auch nicht verwenden können.
Ich empfehle dir, mal die Linkliste auf mikrocontroller.net durchzuarbeiten. Ansonsten kannst du bei Google auch mal nach Christian Schifferle suchen, der hat auch ein gutes AVR-Tutorial geschrieben. Zuletzt kannst du auch noch auf www.mc-project.de schauen, dort steht auch noch ein bischen was zu Timern.
Gruß, Gast
Da er offenbare kein nützlichen Beispiele/Tutorials gefunden hatte, betrachte ich meine Links schon als hilfreich:
http://www.mikrocontroller.net/artic...er_Counter.htm
http://mc-project.de/Pages/timer.html
Diese Quellen sprengen auch nicht den didaktischen Anspruch und eine umfassende Antwort erübrigt sich eigentlich (Warum das Fahrrad zweimal erfinden?)
Gruß, Gast
Hallo,
ich hab mir mal n bisschen was durchgelesen... und würde jetzt gerne wissen ob das so in ordnung ist:
Dort müsste doch jetzt eigentlich zu jeder vollen sekunde bei dem Label time (dort wo der Kommentar ist) das ausgeführt werden was ich gerne möchte oder?Code:.include "2313def.inc" .def temp=r16 .def int_per_sec=r17 initTimer: ldi temp,5 ;CPU-Takt/1024 out TCCR0,temp ldi temp,2 ;aktivieren des Interrups bei einem out TIMSK,temp ;Überlauf ldi int_per_sec,46 ;Anzahl der Interrupts pro Sekunde ;12MHz: 12.000.000/1024=11718,75 --> Bei jedem 11718,75ten Takt ;wird ein Interrupt eingeworfen ;=>11718,75/256(wegen 8Bit TCNT)=45,78 (ca. 46 Interrupts pro Sek.) sei ;Interrupts global erlauben endlos: ;Endlosschleife rjmp endlos time: ;Aufruf bei jedem Interrupt dec int_per_sec brne zurueck ;nach 46 Interrupts (int_per_sec=0) wird ;nicht nach "zurueck" gesprungen ;irgendwas zur vollen sekunde zurueck: reti ;rücksprung in die Endlosschleife
Woher soll der MC wissen, dass er bei einem Timerinterrupt zu time: springen muss?
Wenn ich das jetzt so spät noch auf die schnelle sehe, ich glaube es ist richtig!
Probier es doch einfach aus! :o)
Hallo,
Dir fehlen die Interruptvektoren!
Wie Gast schon erwähnt hat, weiss dein Controller nicht, was er bei einem Timerinterrupt machen soll. Nachdem auch der Stackpointer-Init fehlt, wird das Programm sowieso nicht laufen.
Falls du dafür Hilfe brauchst, schreib nochmal hier rein.
Es ist aber auch in fast allen Bespielprogrammen drin.
Grüsse, Martin
Hallo,
hier müsste es so mit dem Stackpointer gehn oder?
Das mit dem Interruptvektoren hab ich allerdings nicht verstanden... Wie kann man die setzen??Code:.include "2313def.inc" .def temp=r16 .def int_per_sec=r17 .start: ldi temp,low(ramend) out spl,temp initTimer: ldi temp,5 ;CPU-Takt/1024 out TCCR0,temp ldi temp,2 ;aktivieren des Interrups bei einem out TIMSK,temp ;Überlauf ldi int_per_sec,46 ;Anzahl der Interrupts pro Sekunde ;12MHz: 12.000.000/1024=11718,75 --> Bei jedem 11718,75ten Takt ;wird ein Interrupt eingeworfen ;=>11718,75/256(wegen 8Bit TCNT)=45,78 (ca. 46 Interrupts pro Sek.) sei ;Interrupts global erlauben endlos: ;Endlosschleife rjmp endlos time: ;Aufruf bei jedem Interrupt dec int_per_sec brne zurueck ;nach 46 Interrupts (int_per_sec=0) wird ;nicht nach "zurueck" gesprungen ;irgendwas zur vollen sekunde zurueck: reti ;rücksprung in die Endlosschleife
Lesezeichen