Hallo, ich versuche jetzt schon seit einiger Zeit mein mc den atmega2560 in c/c++ zu programmieren; leider kann ich in der aktuellen version keine passende header finden. Es wird zwar geschrieben das mein mc von gcc unterstützt wird, ich aber keine Ahnung habe welche header ich includen muss bzw. wie ich den mc dann ansprechen muss... Hab auch schon gegoogelt, aber nur atmega2560-Dev-Pack gefunden, womit ich nicht klar komme... Über Hilfe wäre ich sehr dankbar (vielleicht auch ein kleines Bsp.prog z.B. Led aus/an) mfg tillt
Also in meiner aktuellen Version gibts die iom2560.h durchaus. Abgesehen davon wird die Device-spezifische Headerdatei sowieso nie direkt eingebunden, sondern immer nur die allgemeine io.h. Das Device wird im Makefile angegeben, um den Rest brauchst Du Dich nicht zu kümmern.
Hab es ausprobiert und hat geklappt... Hab jetzt aber ein anderes Problem.. -> ich schaffe es nicht mein mc über avr-dude zu programmieren; kriege immer die Fehlermeldung ...device com3 can´t open"; woran kann das liegen, Bascom ist die die einzigste möglichkeit mein chip zu brennen (was weil ich in c prog ziemlich lästig ist)!
com3 (ein serieller Port) passt nicht zu STK200 (ein paralleler bit-bang programmer). Meine Kristallkugel ist leider gerade zur Reparatur, damit weiß ich nicht so ganz genau, wie dein Programmer angeschlossen ist bzw. was dich veranlasst hat, com3 irgendwann irgendwie irgendwo einzustellen.
Hab jetzt LTP1 eingestellt und kann so mein chip löschen..., aber nicht richtig beschreiben; es wird nie das einprogrammiert, was ich schreibe und immer der gleiche Fehler zurückgegeben? Hier ist der Auszug aus meiner Batch-Datei: C:\Dokumente und Einstellungen\till\Eigene Dateien\AVR\C>make clean -------- begin -------- Cleaning project: rm -f main.hex rm -f main.eep rm -f main.cof rm -f main.elf rm -f main.map rm -f main.sym rm -f main.lss rm -f ./main.o rm -f ./main.lst rm -f main.s rm -f main.d rm -f main.i rm -rf .dep -------- end -------- C:\Dokumente und Einstellungen\till\Eigene Dateien\AVR\C>make all -------- begin -------- avr-gcc (GCC) 4.2.2 (WinAVR 20071221rc1) Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiling C: main.c avr-gcc -c -mmcu=atmega2560 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,- adhlns=./main.lst -std=gnu99 -Wundef -MMD -MP -MF .dep/main.o.d main.c -o main. o Linking: main.elf avr-gcc -mmcu=atmega2560 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -fu nsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adh lns=main.o -std=gnu99 -Wundef -MMD -MP -MF .dep/main.elf.d main.o --output main .elf -Wl,-Map=main.map,--cref -lm Creating load file for Flash: main.hex avr-objcopy -O ihex -R .eeprom main.elf main.hex Creating load file for EEPROM: main.eep avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \ --change-section-lma .eeprom=0 --no-change-warnings -O ihex main.elf mai n.eep || exit 0 Creating Extended Listing: main.lss avr-objdump -h -S main.elf > main.lss Creating Symbol Table: main.sym avr-nm -n main.elf > main.sym Size after: AVR Memory Usage ---------------- Device: atmega2560 Program: 322 bytes (0.1% Full) (.text + .data + .bootloader) Data: 0 bytes (0.0% Full) (.data + .bss + .noinit) -------- end -------- C:\Dokumente und Einstellungen\till\Eigene Dateien\AVR\C>make program avrdude -p atmega2560 -P lpt1 -c stk200 -U flash:w:main.hex avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e9801 avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude: erasing chip avrdude: reading input file "main.hex" avrdude: input file main.hex auto detected as Intel Hex avrdude: writing flash (322 bytes): Writing | ################################################## | 100% 0.11s avrdude: 322 bytes of flash written avrdude: verifying flash memory against main.hex: avrdude: load data flash data from input file main.hex: avrdude: input file main.hex auto detected as Intel Hex avrdude: input file main.hex contains 322 bytes avrdude: reading on-chip flash data: Reading | ################################################## | 100% 0.20s avrdude: verifying ... avrdude: verification error, first mismatch at byte 0x0000 0x0c != 0x0f avrdude: verification error; content mismatch avrdude: safemode: Fuses OK avrdude done. Thank you. make: *** [program] Error 1 C:\Dokumente und Einstellungen\till\Eigene Dateien\AVR\C>pause Drücken Sie eine beliebige Taste . . . Wo liegt der Fehler... bin am verzweifeln
tillt wrote: > Wo liegt der Fehler... bin am verzweifeln Vermutlich daran, dass der SPI-Takt für den Chip zu schnell ist. Die neuen AVRs kommen im Auslieferungszustand mit einem CPU-Takt von 1 MHz daher und verkraften dabei höchstens < 250 kHz als SPI-Takt beim Programmieren. Leider ist der genaue SPI-Takt bei Bitbang-Programmern nicht so genau vorhersagbar. Man kann aber zusätzliche Delays einbauen, um ihn langsamer zu bekommen, dafür gibt's die -i Option. Probier's mal mit -i 10, ggf. genügt auch bereits ein -i 5.
Mit BASCOM kann ich die Fusbits auslesen, das Programm zeigt mir 8 Mhz an, soll ich die FUSEBITS mit BASCOM umprogrammieren?
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.