Atmega8 falscher takt

Gast #688228
Hallo,
ich hab ein Atmega8 und hab einen internen Takt von 1MHz eingestellt. 
Dann hab ich die Pins einfach ein und ausgeschaltet und mess nur einen 
Takt von 3kHz. Das gleiche hab ich auch, wenn ich einen externen Quartz 
mit 3MHz benutze, dort mess ich nur ca. 7kHz. Woran kann das liegen?
Gast
Eine Schleife braucht erheblich länger als Du denkst. Schau mal ins 
Datenblatt, wie lange so ein einzelner Befehl braucht.

Und dann schaust Du ins LST-File, wie viele Assembler-Befehle in Deiner 
Schleife abgearbeitet werden, ich denke, dann wirst Du sehen, warum Du 
nicht auf Deine 1MHz kommen kannst.

Du siehst einen Ausgabetakt von wenigen kHz, das ist dann natürlich 
immer noch zu wenig. Schau Dir mal die Fuses an, ob Du den externen Takt 
nochmals runtertaktest (ClockSelect wäre das Stichwort). Ich weiß jetzt 
nicht auswendig, was der mega8 defaultmäßig eingestellt hat.
Bei einem internen Takt von 1 MHz und gemessenen 7 kHz braucht die 
Schleife anscheinend 143 Taktzyklen... so doof kann sich ein compiler 
eigentlich nicht anstellen ;)

Womit misst du eigentlich den Takt? Nicht jedes Gerät arbeitet in dieser 
Größenordnung zuverlässig. Im Zweifel mal das Oszilloskop befragen.

Vielleicht hilft dir der Beitrag hier weiter:
Beitrag "Re: Mega16, Fusebits und Quarz Probleme."

Gruß

Kai
Gast
Kann das sein das der Takt durch den Inhalt im Oscillator Calibration 
Register geteilt wird, auch wenn der externe Quartz angeschlossen ist?
Wenn ja, wie kann ich den Inhalt in dem Register ändern?
Persönliche Seite
Leute das kann nich sein da muesste nen viel hoeherer Takt rauskommen so 
oder so. Ich meine mich zu erinnern einige MHz auf die Art gemessen zu 
haben, aber sicherlich mehr als nur ein paar KHz selbst wenn das Ding 
nur mit einem MHz internem Takt laeuft! Muss also am Messgeraet oder an 
falschen Fuses liegen, z.B. ma auf externen Takt gestellt aber keinen 
Oszillator dran? Ist dieser Takt denn stabil? Mit was hast Du denn 
gemessen? Oszi?

Michael
Bitte mal die Fuses schicken oder einen fabrikneuen Mega8 einsetzen, an 
dem noch nichts umgestellt wurde. Wenn der tut ist der andere 
wahrscheinlich falsch konfiguriert... dann musst du eigentlich nur noch 
den Unterschied suchen.
Wenn der fabrikneue auch nicht tut, dann würde ich noch das Eval-Board 
testen und ganz wichtig:
Wie und womit misst du die Frequenz??

Um die Fuses auszulesen kannst du Ponyprog verwenden - tut bei uns 
wunderbar.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.