Forum: Mikrocontroller und Digitale Elektronik Fehler bei der Kompilation von einer C Datei (für AVR) in Geany


von Jakov K. (jackenkoffer)


Lesenswert?

Hallo !

Ich möchte diesen Quelltext mithilfe von Geany compilieren:


#define F_CPU 4000000UL

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{

    DDRD = 0xff;

    while(1)
    {
        PORTD |= (1<<PD7);
        _delay_ms(60);
        PORTD |= (0<<PD7);
        _delay_ms(60);
    }
    return 0;
}


und dann spuckt er mir die Fehlermeldung raus, er kenne die Dateien 
<avr/io.h> und <util/delay>  nicht .

Ich habe momentan das Gefühl, dass ich vergessen habe etwas Grundlegenes 
zu installieren, oder zu machen.


Danke im Vorraus
jakov

von g457 (Gast)


Lesenswert?

> er kenne die Dateien <avr/io.h> und <util/delay>  nicht.

Falsche toolchain eingestellt oder Include-Verzeichnisse verbogen?

von Jakov K. (jackenkoffer)


Lesenswert?

wie kann ich denn die Include Verzeichnisse wieder sicchtbar machen ?

von Lukas K. (carrotindustries)


Lesenswert?

Jakov K. schrieb:
> mithilfe von Geany compilieren

Da liegt der Hund begraben. Geany ist nur ein besserer Texteditor, der 
einen Complier aufrufen kann. In der Regel macht man das über eine 
Makefile.

von Jakov K. (jackenkoffer)


Lesenswert?

Ich bin ein absoluter newbie in C-programmierung ( und das noch auf 
linux, ubuntu) und da möchte ich doch gleich fragen:
Wo muss ich das Makefile "implementieren"
soviel wie ich aus den Tutorials verstanden habe :
man muss sich ein Makefile machen. ( wie das geht ? weiß ich nicht :S )
dann muss man mithilfe der Kommandozeile das Makefile aufufen.
im Makefile steht  dann drin, was für eine .c datei kompiliert werden 
soll, für welchen AVR( z.B atmega8 ), und das restliche Blabla.
kann man mithilfe des Makefiles gleich avrdude aufrufen ?
's wäre echt cool, wenn mir jmd. ne kurze beschreibung geben würde, wie 
ich so eiin makefile mache :D

Danke im vorraus !

PS : und korriegert mich bitte, wenn ich oben was falsches geschreiebn 
habe

von Johannes G. (gutenberg)


Lesenswert?

Ich hab dein Programm mal optimiert. Braucht jetzt quasi keinen Strom 
mehr.
1
#include <avr/io.h>
2
#include <avr/sleep.h>
3
4
int main(void)
5
{
6
7
    DDRD = 0xff;
8
    PORTD |= (1<<PD7);
9
10
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);
11
    sleep_mode();
12
13
14
}

von Jakov K. (jackenkoffer)


Lesenswert?

cool danke... eig. wollte ich die LED blinken lassen, aber wurst :D
mir geht es momentan darum, die .c Datei in eine .hex datei umzuwandeln, 
und das ohne Fehlermeldungen .

Gruß Jakov

von Johannes G. (gutenberg)


Lesenswert?

Jakov K. schrieb:
> cool danke... eig. wollte ich die LED blinken lassen, aber wurst :D
> mir geht es momentan darum, die .c Datei in eine .hex datei umzuwandeln,
> und das ohne Fehlermeldungen .
>
> Gruß Jakov

Da wird aber nichts blinken. Lies dann später mal was über 
Bitmanipulation hier im Tutorial.

Erst mal diese Infos über Make-Files:

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Exkurs_Makefiles

Ist doch alles auf dieser Website zu finden, du musst aber schon lesen.

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.