PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega48 läuft mit 1Mhz statt 8Mhz



DanielSan
05.03.2011, 13:34
Hi,

ich habe einen Atmega48. Dieser soll mit dem Internen Quarz/Osci mit 8Mhz laufen.

Ich habe ihn mit diesem Programm gefüttert:

$regfile = "m48def.dat"
$crystal = 8000000
$baud = 9600

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
Config Timer2 = Pwm , Pwm = On , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8

Weiss Alias Pwm1a
Rot Alias Pwm1b
Gruen Alias Pwm2a
Blau Alias Pwm2b

Do

Rot = 1
Waitms 1000
Rot = 0
Gruen = 1
Waitms 1000
Gruen = 0
Blau = 1
Waitms 1000
Blau = 0
Weiss = 1
Waitms 1000
Weiss = 0

Loop

End



Die Led´s leuchten 8 Sekunden! Sie sollten aber eigentlich nur 1 Sekunde leuchten. Daraus schliesse ich jetzt, das er nur auf 1Mhz läuft.

Wie kriege ich den jetzt auf 8Mhz?

Die Fuses sehen im Moment so aus wie im Anhang.

Danke
Gruß Daniel

PS: Das ist nicht mein erstes Projekt, ich habe schon deutlich kompliziertere Sachen verwirklicht. Nur irgendwie will der Atmega48 nicht so wie ich will. Mit nem Atmega8 hatte ich keine Probleme.

bussard
05.03.2011, 13:54
Ab Werk laufen sie mit eingeschaltetem Teiler /8, also 1MHz. Also ENTWEDER die Fuses ändern oder (wenn du den schnelleren Takt nicht für dein eigentliches Projekt brauchst)
$crystal = 8000000 auf $crystal = 1000000 setzen.

Viel Erfolg

Searcher
05.03.2011, 13:58
Hi,
CKDIV8 Fuse uncheck. Dann sollte er mit 8MHz laufen.

Gruß
Searcher

DanielSan
05.03.2011, 14:10
@bussard: Die Idee hatte ich auch schon, aber leider brauche ich die 8Mhz.

@Searcher: Perfekt!

Jetzt läuft er auf 8Mhz.

Ich danke euch beiden!
Gruß Daniel