mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer0 , 10ms zählzeit


Autor: Oliver D. (smasher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wollte mal fragen, wie ihr mit Timer0 und 16mhz quarz eine 
abtastrate von 10ms erzeugen würdet.
Ich habe mir überlegt, dass man bei einem prescaler von 256 ca. 245,1/s 
einen Timer überlauf hat....

Irgendwie kommen aber immer krumme Zahlen raus.
Was verwendet ihr um möglichst genau 10ms zu kommen?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Klingt nach AVR)

Du kannst ihn im CTC-Modus betreiben und OCR0 auf 250 setzen, dann
hast du 250 Hz als Frequenz für den TIMER0_COMPARE_vect.  Davon
zählst du 25 Stück in der ISR ab, bevor du das Event auswertest.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg Wunsch wrote:
> (Klingt nach AVR)
Denke ich auch.

> Du kannst ihn im CTC-Modus betreiben und OCR0 auf 250 setzen,
Naja, genaugenommen auf 249...

Autor: lightninglord (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Oliver D. (smasher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, es geht um einen Mega8.


CTC gibts aber doch nicht für Timer 0, oder?

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Oliver,

mit Prescale 64 und Timernachladung TCNT0 0x06 erhältst du
genau 1 ms.
Du must ja nicht von 0 bis 255(256) zählen!

Gruß Hans

Autor: Oliver D. (smasher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alles klar, danke!


Sag mal hast du das so "im kopf" gemacht oder nutzt du für soetwas ein 
programm?

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Oliver,

das war noch Kopfarbeit!

1 ms=1000 us wären 16000 Taktzyklen

16000 geht nicht also 16 in den Vorteiler bleibt 1000
1000 geht nicht also 4 in den Vorteiler bleibt 250

Test 250 geht in ein Byte 4*16=64 ist als Vorteiler im Datenblatt.

also Prescale 64 und nachladen 256-250=6

gruß Hans

Autor: Oliver D. (smasher)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann weiß ich ja jetzt, was anzuwenden ist um soetwas zu machen :)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver D. wrote:

> Ja, es geht um einen Mega8.

> CTC gibts aber doch nicht für Timer 0, oder?

Beim ATmega8 noch nicht.  Bei allen neueren AVRs schon.  Kannst ihn
ja ggf. durch einen ATmega88 ersetzen.

Das mit dem Nachladen in der ISR hat immer den Nachteil von Jitter,
je nachdem, wie hoch die restliche Interruptbelastung noch ist.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das mit dem Nachladen in der ISR hat immer den Nachteil von Jitter,
>je nachdem, wie hoch die restliche Interruptbelastung noch ist.

Oder, ob im Programm mit Interruptsperren gearbeitet wird!

Autor: uCWorld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jitter?


Sorry, aber bin noch nicht so lange im Geschäft ;)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
uCWorld wrote:
> Jitter?

http://de.wikipedia.org/wiki/Jitter

Autor: uCWorld (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aaaaah 1!

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.