www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega8 falscher takt


Autor: Sebastian (Gast)
Datum:

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

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
- an Deinem Messgerät (Marke, Modell?)
- am ATmega8
- an Dir
- am Programm (ev. Sourcecode posten?)

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include <avr/io.h>

int main(void)
{
   //Ports initialisieren
   DDRD = 0xFF;

   while(1)
  {
   PORTD = 0x00;
   PORTD = 0xFF;
  }
}

Autor: DerSchelm (Gast)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alle Controller, bis auf wenige Ausnahmen (Tinys), laufen ab Fabrik mit 
1Mhz internem Oszillator.

Autor: Kai G. (runtimeterror)
Datum:

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

Autor: I_ H. (i_h)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Schleife hat (wenn's nicht grad mit -O0 compiliert wurde) ca. 5 
Takte, also sollten ungefähr 200kHz rauskommen. Die einzelnen 
Zuweisungen sind in einem Takt erledigt.

Autor: Sebastian (Gast)
Datum:

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

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

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

Autor: Kai G. (runtimeterror)
Datum:

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

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.