mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timing Problem ATmega8


Autor: Gerrit Herzig (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Slowflyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sonic (Gast)
Datum:

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

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Slowflyer:
Afaik hat der Mega8 keine CKDIV8-Fuse

Autor: Hubert.G (Gast)
Datum:

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

Autor: Slowflyer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gerrit Herzig (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gerrit Herzig (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.