Hallo zusammen ! Ich habe ein Timingproblem, bzw. bin zu blöd, folgenden Sachverhalt zu begreifen: Ich hatte auf meinem Testboard einen AT89C8515 mit 4MHz externem Takt folgenden Code laufen: ... TCCR1A = 0; TCCR1B = (1<<CS12) | (0<<CS11) | (1<<CS10); //prescaler 1024 OCR1A = 3125; TCNT1 = 0; TIMSK = (1 << OCIE1A); sei(); do {} while (1); in der Output_Compare ISR wurde eine LED an und aus geschaltet. Das ergab - so wie ich erwartet hatte - einen Blinktakt von 0,8 Sekunden. Soweit so gut. Ich habe diesen Code auf einen ATmega8 portiert, der mit 4.096 MHz externen Quarz lief. Die Fuse-Bits sind auf "fast rising Power, Crystal 3-8MHz" gestellt und die Registernamen sowie prescaler sind angepass worden. Hier beträgt der Blinktakt 16 Sekunden. Ich begreife grade nicht, was ich falsch mache und wieso es ausgerechnet 20mal langsamer läuft... Hat jemand eine Idee ? Gruss, Gerrit
Tag, das Problem könnte an den Fusebits liegen. Da gibt es das CKDIV8 Fusebit (divide clock by 8 internally), das den Takt um den Faktor 8 teilt (defaultmäßig aktiv). Das würde die Teilung jedoch nur um Faktor 8 erklären, jedoch nicht den Faktor 20. Gruß, Slowflyer
Hast du die CKOPT Fuse auch gesetzt? könnte z.B. beim STK500 oder falscher Quarzanpassung zu Problemen führen.
@johnny.m
>Afaik hat der Mega8 keine CKDIV8-Fuse
nicht? Hmm, hatte gerade einen mega88 dran und von dem auf den mega8
geschlossen (hab leider keine mehr). Sorry
Hi und danke für die Antworten, ich werds morgen nochmal mit gesetztem CTC ausprobieren. Hoffen wir mal, dass es daran liegt. Wenn ich so überlege, 65535 sind glaubich 20mal mehr als 3125.... Gruss, Gerrit
Hi ! Ich hatte diesen Thread total vergessen, will jetzt aber endlich mal das Ergebnis posten und mich für den Hinweis mit WGM12(CTC) bedanken. Genau daran lag es. Funktioniert jetzt alles so wie es soll. Gruss, Gerrit
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.