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.
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.
ok, aber 10ms sind doch 100Hz, das müsste doch gehn, oder denk ich gerade irgendwie falsch...
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?
>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.
Ok, also 1ms wäre drin. Gibt es zur Berechnung eine Formel? Und was ist das zwischen bei der Timer2 Konfiguration?
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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.