Forum: Mikrocontroller und Digitale Elektronik Code::Blocks erzeugt keine .hex


von Peter (Gast)


Lesenswert?

Hi!

Wenn ich versuche, folgenden Code zu kompilieren, erzeugt mir 
Code::Blocks keine .hex im Bin ordner des Projekts. An was könnte das 
liegen?
1
#include "m16def.inc"
2
#include <avr/io.h>          // (1)
3
4
int main (void) {            // (2)
5
6
   DDRB  = 0xff;             // (3)
7
   PORTB = 0x03;             // (4)
8
9
   while(1) {                // (5a)
10
     /* "leere" Schleife*/  // (5b)
11
   }                         // (5c)
12
13
   /* wird nie erreicht */
14
   return 0;                 // (6)
15
}

Build Log aus C::B
Compiling: main.c
cc1.exe: error: missing argument to "-mmcu="
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings

Stimmt die Definierung des µCs für einen Mega16?

Grüße, Peter

von Peter (Gast)


Lesenswert?

Ach kommt, bitte nicht alle auf einmal...

von Hc Z. (mizch)


Lesenswert?

> cc1.exe: error: missing argument to "-mmcu="
> [..]
> Stimmt die Definierung des µCs für einen Mega16?

Nein.  Der Compiler bekommt gar keine mcu übergeben und bricht deshalb 
ohne weitere Aktion ab.  Mehr kann ich nicht sagen, da ich Code::Blocks 
nicht kenne.  Aber irgendwo fehlt die Definition des µC-Typs.

von anonymous (Gast)


Lesenswert?

Hast du den Comnpiler richtig eingestellt? Unter "Settings" -> "Compiler 
& Debugger" den AVR-GCC wählen

Hast du dem Compiler den Prozessortyp mitgeteilt? Unter "Project" -> 
"Build Options" -> Haken an Prozessor setzen

von Mark .. (mork)


Lesenswert?

Wenn man bei Code::Blocks ein neues AVR-Projekt erstellt, kommt nach ein 
paar Dialogen ein Fenster, wo man Controller-Typ, Takt usw einstellen 
kann. Dort solltest Du den Comtroller-Typ auf atmega16 setzen. Dann wird 
auch das #include "m16def.inc", was sowieso falsch ist, überflüssig.

MfG Mark

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
Noch kein Account? Hier anmelden.