Timing Problem ATmega8

Gast #400753
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
Gast #400754
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
Gast #400758
@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
Gast #400759
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
Gast #446061
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.