Forum: Mikrocontroller und Digitale Elektronik 1s-Timer beim ATmega8515


von Philipp Burch (Gast)


Lesenswert?

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?

von Fritz Ganter (Gast)


Lesenswert?

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.

von ElMachel (Gast)


Lesenswert?


von Philipp Burch (Gast)


Lesenswert?

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!

von Philipp Burch (Gast)


Lesenswert?

Gut, hat sich alles erledigt. Danke nochmals!

mfG Phip

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.