Forum: Mikrocontroller und Digitale Elektronik Prescalar AVR ATMEGA162


von Lea D. (lea38)


Lesenswert?

Hallo

ich komme nicht drauf wie man Prescalar bestimmt(Timer 16 Bit; Frequenz 
2000HZ; N/fclk= 1 mikroSekunde; Fast PWM).

Ich wäre sehr dankbar wenn mir Jemand dabei helfen könnte :)

Danke

von Auf Gemerkt (Gast)


Lesenswert?

Lea D. schrieb:
> ich komme nicht drauf wie man Prescalar bestimmt

Du kommst darau wen du intensiv das Datenblatt (den Abschnitt
zu den Timern) liest und verstehst.

Prescalar wird Prescaler geschrieben.

von Karl M. (Gast)


Lesenswert?

Hallo,

je nach Timer gibt es Nebenbedingungen, z.B. den max. Zählwert.
Z.B. 2^8 = 256 oder 2^16 = 65536

Dann gibt es unterschiedliche Prescaler (Vorteiler), z.B. Elemete aus 
dieser Menge: {0,1,8,64,256,1024}

Die Auswahlbedingung kann man in eine Formel schreiben:
1
F_CPU/ Prescaler/ DEST_FREQUENCY <= MAX_TIMER_COUNTER

Z.B.: es sei gegen:
MAX_TIMER_COUNTER = 2⁸ ; ist Abhängig vom Timer und Timermodus!
F_CPU = 1*10⁶ Hz
DEST_FREQUENCY = 2*10³ Hz
Prescaler = 8

Dann fragt man sich, gilt:
1
(1*10 Hz/ 8/ 2*10³ Hz <= 2) <==>
2
(500/ 8 <= 2)
Und berechnet noch den Fehler aus, wir rechnen hier mit Ganzenzahlen aus 
|N.

Der Bruch 500/ 8 = 62,5 und kann also 62 oder 63 als Prescaler wählen.

Also teste man noch andere Prescaler auf geringe Fehler aus.

Mit Prescaler = 256 folgt:
1
(1*10 Hz/ 256/ 2*10³ Hz <= 2) <==>
2
(500/ 256 <= 2)
Der Bruch 500/ 256 ~ 1,9531
Mit (Auf-)Runden (long)(1.0* 500/ 256 +0.5) = 2 kommt man zu einem 
besseren Ergebnis.

von S. Landolt (Gast)


Lesenswert?

Einen Prescaler benötigt man, wenn das gewünschte Teilerverhältnis 
größer ist als es der Timer alleine schafft.
  Hier gilt 1 MHz / 2 kHz = 500, ein 16-bit-Timer erreicht bis zu 2^16 = 
65536, also ist kein Prescaler nötig, bzw. er wird auf 1 gesetzt.

von Lea D. (lea38)


Lesenswert?

Vielen Vielen dank für die Antwort :) Das hat mein Problem gelöst

Grüße
Lea

von Lea D. (lea38)


Lesenswert?

@Auf Gemerkt
du erinnerst mich an meinen Professor :D! chill mal .. das war nur ein 
Tippfehler ;)

: Bearbeitet durch User
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.