Hallo zusammen, Ich brauche für meine Schaltung einen Timer mit 1s-Takt. Ich hab' den ATmega8515, 12MHz. Das Datenblatt hab' ich mir angesehen, aber da blick' ich net durch :( Gesucht hab' ich hier auch schon, aber meistens artete das einfach in Diskussionen aus, aber Code hat glaub' noch niemand gepostet, oder ich hab's net gesehn. Ich sehe einfach net, wie ich denn die Frequenz einstellen muss. Und da war doch noch was mit Vorteiler und so... Könnte vielleicht jemand beschreiben, wie das geht, oder Code posten? Danke schonmal! PS: Wär' das nicht auch mal was für's Tut?
Du suchst dir einen hübschen Timer aus, und siehst im Datenblatt nach, welche Vorteiler es dafür gibt, die eine ganzzahlige Frequenz erbeben. Bei 12MHz z.B. wäre 64 gut, das ergibt 187500. Wennst einen 16bit Counter nimmst, dann schreibst da in OCR rein: 18750-1, also 18749, dann hast schon mal genau 10Hz, dann richtest eine Interruptroutine ein, die dann einen Zähler rauf zählt. Zählerstand/10 ist dann der Wert in Sekunden.
Also dieser Code dort gefällt mir. Nur... Ist da vielleicht noch eine ältere Version mit Fehlern drin, oder bin ich einfach zu blöd? Debounce ist nach dieser Zeile .equ debounce = 256 ja logischerweise 256. Und Prescaler ist nach dieser hier .def prescaler = r18 ja auf das 8Bit-Register r18 gesetzt. Wie soll denn dann diese Anweisung ldi prescaler, debounce funktionieren? 256 ist ja nunmal grösser als 255, bzw. 0xFF. Auf alle Fälle ist AVR-Studio damit net einverstanden. Und dann kommen da noch diese Zeilen: ldi wr0, 1<<WGM12^1<<CS10 out TCCR1B, wr0 ldi wr0, 1<<OCIE1A out TIMSK, wr0 Kann mir jemand erklären, was die bedeuten, bzw. was da eingestellt wird? Eigentlich sollte es ja möglich sein, den Vorteiler auf 256 zu setzen. Dann würde auch dieses Runterzähler entfallen... Was ich nicht verstehe ist nämlich eben das Einstellen des Vorteilers... Sonst wär's nicht so'n Problem. Danke schonmal für Hilfe!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.