Jo Hallo Wie tut man den für die Timer bei einem Pic16f872 Prozessor die Zeit ausrechnen. Soviel ich weiß zählt er bei einm 8Bit Timer immer von X-255, X kann man selber vorgeben aber mit was für einer Zeit muss ich den Wert der zwischen X-255 rauskommt multiplizieren. Wenn es die Zykluszeit für einen Befehl ist hab ich keine Ahnung wie ich die ausrechne. Mein Quarz läuft mit 4 MHZ. Zykluszeit = ??????? Gruß Ram99
Zykluszeit T = 1/f0 bei 4MHz sind das 100ns weil der PIC intern durch 4 teilt! Du must den prescaler des PIC's auch einstellen 1:1, 1:2, 1:4 ... 1:256 Wenn Du eine Zeit t mit einem Timer realisieren willst, brauchst Du nur die folgende Rechnung Quarz/4 * t = n, Anzahl der CPU-Zyklen dann n so durch die möglichen Prescaler Einstellungen teilen damit Du einen Wert zwischen 0 und 255 bekommst den ziehst Du dann von 256 ab Example: Quarz = 4MHz t = 1ms = 1EE-3s 4MHz/4 * 1EE-3s = 1000 Zyklen 1000/8 = 125 prescaler=8 256-125 = 131 Timerwert Initialisiere den Prescaler auf 1/8 und übergebe dem Timer der Wert 131. Denke daran, das Du bei einer zyklischen Interruptroutine den Timerwert 130 in der Timerserviceroutine reloadest! Reiner
Jo vielen Dank, genau das hab ich gesucht. Nur eins hab ich nicht verstanden, was soll das mit dem 1EE-3s ?? Soll das 1EE eine Hexzahl sein 494 ?? Wenn ich keinen prescaler setzen möcht muss ich dann-> setup_timer_0 (RTCC_INTERNAL); setzen oder geht es nur mit prescaler. Was macht denn bei AD-Wandler die Zeile-> setup_adc(ADC_CLOCK_DIV_X); X= 2,8,32,off,Internal Gruß Thomas
>Nur eins hab ich nicht verstanden, was soll das mit dem 1EE-3s 1EE-3 = 1*10hochminus3= 0.001 reiner >setup_adc(ADC_CLOCK_DIV_X); X= 2,8,32,off,Internal Ein Unterprogrammaufruf in dem der ADC initialisiert wird. Der hat auch einen prescaler und einen internen langsamen RC-Oszillator. Hier musst Du Deine gewünschte Konfiguration für den ADC angeben. Vermutlich ist das übergebene Byte exact für für des CPU-Register ADCON0 bestimmt. Reiner
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.