www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega 8 Programmierung in C


Autor: Manuel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Hubert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ich glaub du hast da einen steinalten avr-gcc. Wenn du unter Windows
arbeitest nimm mal http://winavr.sourceforge.net/

Matthias

Autor: Miki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und lese das Wiki sowie die aktuellen Tutorials ...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.