Atmega 8 Programmierung in C

Gast #146910
Lesenswert?

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
Angehängte Dateien:
Gast #146912
Lesenswert?

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
Gast #146913
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren