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.