mikrocontroller.net

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


Autor: Philipp Burch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Fritz Ganter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ElMachel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Philipp Burch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Philipp Burch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, hat sich alles erledigt. Danke nochmals!

mfG Phip

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.