Hallo, ich habe ein ATMEGA644 in meiner Schaltung. Bis gestern lief auch alles noch einwandfrei. Heute habe ich probiert den Internen Clock auf 8Mhz zu stellen in dem ich bei den Fuses den DIV8 raufgenommen habe. Nun habe ich das Problem das wenn ich programmieren will (avr studio 6.2) er mir keinen Fehler anzeigt jedoch aber die Programmänderungen nicht übernimmt. Lesen kann ich den MEGA644 noch vollständig. Was kann ich da jetzt machen? achja den DIV8 bekomme ich jetzt nicht mehr rein da ich dann die eine register Fehlermeldung bekomme. danke schonmal
Was für einen Programmieradapter nutzt du? Die Frequenz lag vorher also bei 1MHz? Das sollte kein Problem sein, es sei denn du hast versehentlich auch noch den Schreibschutz des Chips gesetzt. Könntest du bitte mal die beiden hex-Werte die du ausliest hier posten?
:
Bearbeitet durch User
kann es sein das es beim kompilieren einen Fehler gibt und du immer das "alte" Hexfile einspielst.
Probiere einfach mal die Werte mit dem AVR8-Burn-o-Mat auszulesen. http://avr8-burn-o-mat.aaabbb.de/
Also ich benutze eine ISP von TREMEX. Die lief ja auch soweit die ganze zeit. hier einmal alles was ich im fuses Menü auslesen kann: BODLEVEL = DISABLED OCDEN = [ ] JTAGEN = [ ] SPIEN = [X] WDTON = [ ] EESAVE = [ ] BOOTSZ = 4096W_7000 BOOTRST = [ ] CKDIV8 = [ ] CKOUT = [ ] SUT_CKSEL = INTRCOSC_6CK_65MS EXTENDED = 0xFF (valid) HIGH = 0xD9 (valid) LOW = 0xE2 (valid)
ich habe hier noch einen zweiten atmega644 bei dem ich folgende werte auslese. welche aber richtig sind kann ich nicht sagen. vielleicht weiß das jemand? BODLEVEL = DISABLED OCDEN = [ ] JTAGEN = [X] SPIEN = [X] WDTON = [ ] EESAVE = [ ] BOOTSZ = 4096W_7000 BOOTRST = [ ] CKDIV8 = [X] CKOUT = [ ] SUT_CKSEL = INTRCOSC_6CK_65MS EXTENDED = 0xFF (valid) HIGH = 0x99 (valid) LOW = 0x62 (valid)
Also der zweite steht auf den Werkseinstellungen. Dein 1. Controller muss eigentlich funktionieren. "Peter II" hat einen recht guten Tip gegeben. Du solltest einfach in deinem Projekt ein "clear" durchführen und im Arbeitsverzeichnis unter Release schauen ob die Hex-Datei gelöscht wird. Dann gehst du noch mal auf "build" und dann müsstest du sehen dass dort eine neue hex-Datei erzeugt wurde. (kannst dir ja auch den Datumsstempel im Explorer anzeigen lassen) Du kannst diese Datei von AVRstudio auf deinen Chip spielen lassen oder du macht es mit AVRdude selbst. Dazu öffnest du CMD (Start->Ausführen... und CMD eintippen) wechselst in das Verzeichnis wo die Hex-Datei liegt und tippst ein: avrdude -pm644 -cusbasp -Uflash:w:ATmega644.hex:a Die Datei heißt in meinem Fall: ATmega644.hex Mein Programmer heißt: USBasp (daher: -cusbasp) Du müsstest deinen Programmer aus der Liste raussuchen. Mit dem Befehl: "avrdude -c ?" (ohne Gänsefüßchen) bekommst du eine Lister der unterstützten Programmieradapter.
ok habe clear durchgeführt und das hex file wurde neu erzeugt. das funktioniert also. nur ich kann das fuße div8 nicht setzen. wie kann ich das wieder zum laufen bekommen? und mal als frage noch dazu: wie bekomme ich den mega644 auf 8MHz? so im Standard läuft er ja auf 1 MHz.
PROXXX schrieb: > wie bekomme ich den mega644 auf 8MHz? so im > Standard läuft er ja auf 1 MHz.
1 | #include <avr/power.h> |
2 | |
3 | clock_prescale_set( clock_div_1 ); |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.