Gast
#1411856
Hallo, Ich müsste schnell einen Timer2 so berechnen, dass er alle 10ms einen Overflow hat. Mein Oszi Takt ist 20Mhz, PIC ist ein 16f876.
|
Anzeige
|
Timer2 Berechnen
Gast
#1411856
Hallo, Ich müsste schnell einen Timer2 so berechnen, dass er alle 10ms einen Overflow hat. Mein Oszi Takt ist 20Mhz, PIC ist ein 16f876.
Gast
#1411869
Geht nicht! Der Prescaler kann max 16 sein. Der Timer hat 8 Bit. 20000000Hz/16/256 = 4882.8Hz Overflow alle 204.8 us. Mehr geht nicht.
Gast
#1411875
ok, aber 10ms sind doch 100Hz, das müsste doch gehn, oder denk ich gerade irgendwie falsch...
Gast
#1411878
ah, ok doch, geht nicht. habs gerade kappiert. aber noch was anderes zum Timer2. In der CCS Hilfe steht folgendes: setup_timer_2(T2_DIV_BY_4,0xc0,2); Prescaler ist 4 Postscaler ist 2 Aber was ist das dazwischen?
Gast
#1411879
>ok, aber 10ms sind doch 100Hz, das müsste doch gehn, oder denk ich >gerade irgendwie falsch... Der Timer2 ist zu klein für solche Sachen. Selbst mit Postscaler kommst du nur auf 3ms.
Gast
#1411882
Ok, also 1ms wäre drin. Gibt es zur Berechnung eine Formel? Und was ist das zwischen bei der Timer2 Konfiguration?
Gast
#1411897
Da hab ich jetzt Unsinn erzählt :( Der Timer läuft nur mit Takt/4. Korrektur: 5000000Hz/16/256 = 1220.7Hz Overflow alle 819.2 us. Mit Postscaler 16 also 13.1ms maximal.
Gast
#1411901
Ok, aber was bedeutet dieses 0xc0 bei setup_timer_2(T2_DIV_BY_4,0xc0,2)?
Gast
#1411915
Das wird der Wert sein, der in PR2 geschrieben wird. Da wie schon gesagt wurde Timer2 zu klein ist um aus 20MHz Systemtakt 100Hz Interrupttakt zu machen, wirst du nicht darum herumkommen, mit dem Vor/Nachteiler etwas herumzuspielen, damit du in der Interruptroutine per Softwarezähler auf 100Hz kommst.
Gast
#1411985
siehe Homepage "http://pictimer.picbingo.com/"
Gast
#1647245
Hallo! Ich weiß, dass dieser Beitrag schon (sehr) alt ist, aber um der Richtigkeit genüge zu tun behaupte ich, dass mit 20MHz Systemtakt sehr wohl ein 100Hz (wenn auch nicht 100% genau) Interrupt durch den Timer 2 eines PICs möglich ist. Wie schon richtig erwähnt worden ist, wird der Timer mit FOsc/4 = 5MHz getaktet. Allerdings besitzt der Timer 2 in Prescaler als auch Postscaler. Einstellungen: Prescaler: 1:16 Postscaler: 1:13 PR2 Register: 240 Ergibt: 5000000Hz/16/13/240 = 100,16026 Hz Bei PR2 = 241 5000000Hz/16/13/241 = 99,74465Hz Im Grunde stimmt die Aussage, dass keine GENAUEN 100Hz eingestellt werden können, allerdings ist die Aussage falsch, dass der Timer2 dazu zu schnell ist. (holger hat das in seinem Post richtig erkannt und das stimmt auch so) Wollte das nur richtigstellen, damit "Anfänger" nach Ihren Berechnungen nicht verwirrt sind;) MfG Darkleon Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|