Anfängerproblem: Code für AVR compilen

Gast #690741
Lesenswert?

Hallo!
Ich bin ein Anfänger, der gerne mit einem atmega16 basteln würde. Ich 
vermute, mein Problem ist sehr einfach, ihr könnt mir sicher helfen:

Ich habe einen Code:
1
#include <avr/io.h>
2
unsigned char i;
3
int main (void)
4
{
5
  DDRD = 0xE0; // nur die höchsten 3 Bits auf 1
6
  while(1)
7
  {
8
    if(PIND & (1<<2))
9
    {
10
      if(PORTD & (1<<5))
11
        PORTD &= ~(1<<5);
12
      else
13
        PORTD |= (1<<5);
14
    }
15
  }
16
  return 0;
17
}
(Der Code ist billig, ich weiß; man kann es kürzer machen und den 
Eingangstaster entprellen, aber ich will es erstmal möglichst simpel 
machen)

Compilen tue ich den Code dann folgendermaßen:
avr-gcc -mmcu=atmega16 -Os -o main.hex main.c

Wie kann ich den Code denn richtig compilen? Fehlt ein Parameter?
Gast #690830
Lesenswert?

Vielen Dank! Ich wusste nicht, dass der GCC keine Intel-Hexes, sondern 
ELF-Dateien ausgibt, gut zu wissen!
Make-Files nutze ich nicht, da Make bei mir unter Windows nicht 
funktioniert und unter Linux habe ich sie auch nicht zum Laufen 
bekommen, da kam irgendein Fehler, dauernd fehlten irgendwelche Pakete 
und manche konnte man nicht installieren, aus den verschiedensten 
Gründen, das habe ich nicht gecheckt (obwohl es unter Ubuntu Gutsy 
Gibbon jetzt wahrscheinlich klappt). Aus Frust habe ich die Makefiles an 
den Nagel gehängt^^
Gast #691577
Lesenswert?

>da Make bei mir unter Windows nicht funktioniert

???

make funktioniert IMMER. Es kann höchstens sein, daß du mehrere auf 
deinem Rechner hast, und wegen falsch gesetzter Pfade das falsche 
aufgerufen wird.

Ein einfaches "which make.exe" verschafft Klarheit. Das passende make 
für den avr liegt im winavr-Verzeichnis unter /utils/bin.

Oliver

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