Forum: Mikrocontroller und Digitale Elektronik ATmega162 Taktfrequenz


von Jörn (Gast)


Lesenswert?

Hallo

ich habe folgendes Problem. Ich betreibe einen ATmega162 mit einem 
externen Quarz (4Mhz). Ich habe mir nun mit dem Delay prog. (link war 
hier irgedwo im Forum) eine Warteschleife für 2 Sekunden berechnen 
lassen. Komischerweise dauert die Schleife in der Realität 16 Sekunden. 
Stell ich im prog. eine Schleifenzeit von 0,25 Sekunden ein beträgt die 
Schleifenzeit (Pause) 2 Sekunden. Woran kann das liegen?? Habe ich 
außversehen einen Taktteiler oder sowas eingeschaltet, oder was falsch 
Konfiguriert?? Übrigens, beim UART habe ich genau das gleiche Problem

MFG Jörn

von mikki merten (Gast)


Lesenswert?

Im Anlieferungszustand ist beim MEGA162 der interne 1 MHz RC-Oszillator 
aktiv. Also Fuse-Bits ändern auf externen 4 MHz Quarz, dann läuft's.

von Jörn (Gast)


Lesenswert?

Muss man mit den Fuse Bits einstellen was für ein Quarz dran hängt???

von Matthias (Gast)


Lesenswert?

Hi

nein. Aber du mußt einstellen das er überhaupt einen Quarz verwendet. 
Bei dir kann das aber eigentlich nicht der Grund sein da dir ja ein 
Faktor 8 und kein Faktor 4 fehlt.

Matthias

von mikki merten (Gast)


Lesenswert?

bei den neuen mega muss man schon einstellen welcher Quarztyp dranhängt 
(low  medium  high).

von Jörn (Gast)


Lesenswert?

Wie stelle ich das denn ein, ob da low medium oder high dranhängt. Hat 
jemand vielleicht nen link?? Geht das mit Pony Prog??

PS: Schon mal danke für eure schnellen Antworten!!

von mikki merten (Gast)


Lesenswert?

Geht auch mit Pony Prog. Die Bedeutung der Fuse Bits kann man im 
entsprechenden Datenblatt nachlesen.

von Jörn (Gast)


Lesenswert?

Hi

Also ich habe im Datenblatt nichts gefunden wo steht wie man einstellt 
ob da ein LOW High oder Medium teil dranhängt!

Für weitere Hilfe wäre ich sehr dankbar.

MFG Jörn

von Markus Burrer (Gast)


Lesenswert?

Auch hier nochmal der gleiche Link
http://www.embedit.de/phpkit/include.php?path=content/content.php&contentid=29&catid=14&themeid=0
Aber Achtung, die Anleitung gilt nur für 8-16MHz Qaurz, bei weniger sind 
die Fuses anders einzustellen. Ist aber alles dem Datenblatt zu 
entnehmen
Ich sag da nur: RTFM

Gruß
Markus

von Jörn (Gast)


Lesenswert?

Toll der MC abrbeitet ja mit externen Takt, das ist nicht das problem, 
sondern das Mir der Faktor 8 an geschwindigkeit fehlt der teilt die 4 
Mhz irgendwie druch 8, aber warum?????

von Markus Burrer (Gast)


Lesenswert?

Öhm, sorry. das kommt davon wenn man nur mit einer Hirnhälfte liest. Wie 
hast du denn CKOPT eingestellt. Muß 0 sein.
Ansonsten würde ich vielleicht mal den Quarz tauschen. Kann ja sein das 
der nen Knacks hat

von Jörn (Gast)


Lesenswert?

Hi, leider gibt es da kein CK0PT. Dafür habe ich ein fuse bit namens 
CKDIV8 gefunden. Könnte das vielleicht bedeuten Clock divided 8 also 
Clock/8???? Der steht bei mir auf 1 daher könnte ich mir das auch mit 
dem fehlenden Faktor 8 erkären. Binn mir aber nicht ganz sicher und will 
mir nicht den Controller "kaputt" machen. Bitte um Antwort.

von Matthias (Gast)


Lesenswert?

patsch
Warum lesen manche Leute das Datenblatt erst nach mehreren Tagen 
Fehlersuche. Siehe Seite 229 und 39ff.

Matthias

von mikki merten (Gast)


Lesenswert?

Das CKDIV8 ist das fragliche fuse-bit. Wenn dieses programmiert ist wird 
die Taktfrequenz nach RESET durch 8 geteilt.

von Markus Burrer (Gast)


Lesenswert?

Hm, das Bit kenn ich auch noch nicht, aber ich sag ja: RTFM ;)

von Kilias (Gast)


Lesenswert?

Ich suche Beispielpplikationen mit Schaltplan für den ATmega162.

Danke.

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.