Forum: Mikrocontroller und Digitale Elektronik Timing Problem ATmega8


von Gerrit Herzig (Gast)


Lesenswert?

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

von Slowflyer (Gast)


Lesenswert?

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

von Sonic (Gast)


Lesenswert?

Hast du die CKOPT Fuse auch gesetzt? könnte z.B. beim STK500 oder
falscher Quarzanpassung zu Problemen führen.

von johnny.m (Gast)


Lesenswert?

@Slowflyer:
Afaik hat der Mega8 keine CKDIV8-Fuse

von Hubert.G (Gast)


Lesenswert?

Gehört nicht in TCCR1B auch noch WGM12 für CTC gesetzt?

von Slowflyer (Gast)


Lesenswert?

@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

von Gerrit Herzig (Gast)


Lesenswert?

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

von Gerrit Herzig (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.