Hallo AVR Freunde, versuche verzweifelt einen Atmel Atmega 8 in C zu programmieren. Doch leider scheitert es im Augenblick an paar "Kleinigkeiten". Hab den avr-gcc compiler installiert. das Doch leider kann ich keine passende header-Datei für den Atmega 8 finden. es gibt nur iom83.h , diese habe ich dann einfach eingebunden. Das make_file habe ich entsprechend meinem Controller angepasst. Hinzu kommt dass ich keinen äußeren Takt auf den µC gebe, sondern auf den internen Taktgeber zurück greife. Hier besteht die Möglichkeit verschiedene Frequenzen per Definition im Code auszuwählen. 1 , 2, 4 oder 8 MHz müssten das sein. Dies sollte soweit ich weiss mit "OSCCAL" geschehen.. jedoch wird vom compiler die zuweisung : OSCCAL = 255; nicht akzeptiert. C-Datei im Anhang. wer kann mir kurz weiterhelfen ? Gruß Manuel
Es gibt anscheinend viele Wege nach Rom. Mein Kontroller steht im makefile und nicht im c-file. Den Oszillator stellst du mit den Fuses ein, mit OSCCAL kannst du die Frequenz nur variieren.
Hi das Beispiel das du da verwendest ist Jahre alt und dürfte so garnichtmehr funktionieren (tut es ja offensichtlich auch nicht). Der Controller wird im makefile eingestellt. Verwende einfach Mfile das bei WINAVR dabei ist um dein Makefile zu erstellen. Und dann probier einfach mal ein Miniaturprogramm: #include <avr/io.h> int main(void) { DDRB = 0xFF; while(1) { PORTB=0; PORTB=0xFF; } } Matthias
Hallo Matthias gut, bin deinem Rat gefolgt und hab mal den code
übernommen.
jetzt taucht aber folgende fehlermeldung beim compilieren auf.
vielleicht stimmt für io.h der pfad nicht, mag ja sein,
aber der compiler kennt anscheinend den Atmega8 nicht !
Was nu ??
/* Fehler medlung beim Compilieren .. */
Compiling: main.c
avr-gcc -c -mmcu=atmega8 -I. -gstabs -Os -funsigned-char
-funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=main.lst -std=gnu99
-Wp,-M,-MP,-MT,main.o,-MF,.dep/main.o.d main.c -o main.o
Unknown MCU `atmega8' specified
Known MCU names:
avr2
at90s2313
at90s2323
attiny22
at90s2333
at90s2343
at90s4414
at90s4433
at90s4434
at90s8515
at90c8534
at90s8535
avr3
atmega103
atmega603
avr4
atmega83
atmega85
avr5
atmega161
atmega163
atmega32
at94k
avr1
at90s1200
attiny10
attiny11
attiny12
attiny15
attiny28
cc1.exe: MCU `atmega8' not supported
main.c:1:20: avr/io.h: No such file or directory
main.c: In function `main':
main.c:5: `DDRB' undeclared (first use in this function)
main.c:5: (Each undeclared identifier is reported only once
main.c:5: for each function it appears in.)
main.c:9: `PORTB' undeclared (first use in this function)
main.c:12:1: warning: no newline at end of file
make.exe: *** [main.o] Error 1
> Process Exit Code: 2
trotzdem danke
Gruß, Manuel
Hi ich glaub du hast da einen steinalten avr-gcc. Wenn du unter Windows arbeitest nimm mal http://winavr.sourceforge.net/ Matthias
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.