PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Quarz-Fusebits ATMEGA644



MelMan
22.08.2008, 16:53
Nabend zusammen

habe folgendes Problem. Hab nen atmega32 gegen nen atmega644 ausgetauscht. Hab das identische Programm übertragen. Beim Programm werden über "Showpic 0,0,..." Menubilder ausgegeben. Der atmega32 hat das auch ohne Probleme gemacht. Der atmega 644 gibt erst das Menu raus (auf 128*64 LCD) und gibt dann das gleiche Menu ca. 20 Pixel nach links versetzt aus. Das Problem ist dass ich dann nix mehr machen kann (Menusteuerung über Touchpanel) da der µC nicht mehr reagiert. Nun wollte ich zum testen ob überhaupt was geht nen einfachen Programm testen:

Do
Print "HI"
waitms 20
loop
end

Aber wenn ich im Terminal schauen bekomme ich nur wirre Zeichen. Ich denke es liegt an meinen Einstellungen für den Quarz. Habe ein 16Mhz Quarz an dem ATMEGA644 aber weis nicht genau was ich bei den Fusebits einstellen muss. Kann mir da jemand helfen? Wenn Lust und Zeit vorhanden ist würde mich auch noch interessieren was die verschiedenen Einstellungen wie 6K CK oder 16K CK und +4.1ms oder +0ms zu beudeuten hat. Blick da noch nicht ganz durch 8-[ .

Mfg Mel

linux_80
22.08.2008, 19:04
Hallo,

bei den neuen AVRs gibts meist ein Fuse, das da heisst CLKDIV8 (in Bascom Fusebit C), was auch aktiv ist. Dieses muss man deaktivieren, um die volle Geschwindigkeit zu haben.

Ansonsten sollte in Bascom die letzte Einstellung in Sachen Quarz nicht schlecht sein, die mit 111111.

Wurde das Programm auch vorher für den M644er neu übersetzt ?

MelMan
22.08.2008, 19:34
Neu übersetzt? nein hab nichts übersetzt ist das notwendig?

linux_80
22.08.2008, 19:42
Natürlich muss man es neu übersetzen, der M644 hat eine andere Speicheraufteilung und vor allem Grösse.
Auch sind die ganzen Register für die Ports an anderer Stelle, normal dürfte nix laufen, das was geht, ist Glückssache.

MelMan
22.08.2008, 19:44
Aber ich programmier doch in Bascom da muss ich doch nur den Controller-typ einstellen und hwstack ändern. Die portbelegung ist doch identisch zum mega32

linux_80
22.08.2008, 19:47
Ja, Du hast aber auch auf compilieren geclickt, dann past's ja wieder.
Du hast oben geschrieben "identische Programm" deshalb hab ich lieber nachfragt !

Hast Du die Fusebits schon kontrolliert ?

MelMan
22.08.2008, 19:54
Puh ich dachte schon ich hab irgendwas vergessen^^. Also fusebits sind wie folgt eingestellt:
Fusebit C: 1:Division by 8 disabled
Fusebit D: 1:Clock output disabled
Fusebit KLA987: 111111:Ext. Crystal Osc.; Frequency 8.0- MHz; Start-up time: 16K CK + 65 ms


Hab grad einen 8 Mhz quarz osszilator dran da ich die fusebits falsch hatte und der quarz nicht mehr ging

linux_80
22.08.2008, 19:57
Soweit alles wieder im grünen Bereich,
was macht jetzt das Programm ?

MelMan
22.08.2008, 20:01
das testprogramm:

$regfile = "m644def.dat"
$hwstack = 64
$swstack = 128
$framesize = 64

$baud = 9600

Do
Print "hi"
Waitms 20
Loop


und im terminal komm das raus:

øòðøøðøðððø0ðøðøððøðððü°ððøððø8<ÁððøððøððøððøBÏððøðððøððøðøððø„ðø°ðøððþðððüÿðø

linux_80
22.08.2008, 20:10
Da steht nicht dabei wie schnell der AVR läuft, $crystal = ...

MelMan
22.08.2008, 20:18
Oh **** wie konnt ich das übersehn....jetzt gehts :-# . sry

aber jetzt ist das problem wieder mit dem showpic dass das so verzerrt wird

MelMan
23.08.2008, 15:47
Soo vielen Dank an linux_80 hab jetzt endlich alles zum laufen bekommen. Danke für die schnellen Antworten sonst säß ich jeztz noch dran. Hatte noch einen Programmfehler deshalb die Überlagerung der zwei Bilder.


Mfg