mikrocontroller.net

Forum: Compiler & IDEs WinAVR und makefile(mfile)


Autor: roadrunner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo zusammen,

ich weiss, dass dies jetzt nicht gerade glorreich von mir, aber ich
erhalte diese fehlermeldung beim übersetzen meines 1. programms.
vielleicht kann mir einer kurz nen anhaltspunkt geben wo ich im
makefile(mfile) suchen muss. ich hab mich zwar drin umgeschaut und auch
die anpassung an meinen controller(mega32) hinbekommen, doch stelle ich
mich jetzt zu blöde an. ich wäre schon für einen kleinen tip dankbar.

danke für eure eventuelle hilfestellung
gruß roadrunner

hier mal die meldung:

> "make.exe" all

-------- begin --------
avr-gcc (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

make.exe: *** No rule to make target `1khz.o', needed by `1khz.elf'.
Stop.

> Process Exit Code: 2

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast keine Datei mit dem Namen 1khz.c.  Vielleicht sollte
sie ja 1kHz.c oder so heißen?

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

Bewertung
0 lesenswert
nicht lesenswert
danke.
hattest recht. hatte mich bei der datei verschrieben. blöder fehler,
ich weiss. den habe ich behoben und schon habe ich die nächste meldung.
zusätzlich habe ich das makefile noch angehängt.


diese hier:

> "make.exe" all

-------- begin --------
avr-gcc (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.

g++    -c -o 1KHZ_C.o 1KHZ_C.C
process_begin: CreateProcess((null), g++ -c -o 1KHZ_C.o 1KHZ_C.C, ...)
failed.
make (e=2): Das System kann die angegebene Datei nicht finden.

make.exe: *** [1KHZ_C.o] Error 2

> Process Exit Code: 2

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
g++    -c -o 1KHZ_C.o 1KHZ_C.C

Das ist der falsche Compiler.

Willst du wirklich ein C++ Programm schreiben? Wenn es nur C sein soll,
dann muss das Source-File .c und nicht .C heissen.

.C sagt dem "make" dass es ein C++ File ist.

Autor: roadrunner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry, aber wie soll ich dem makefile das richtig anweisen?

ich habe das makefile soweit bearbeiten, dann in meinem projekt-ordner
abgelegt und mit winavr im programmers-notepad (make-all) versucht zu
übersetzen.

ich habe nirgendes einen teil im makelfile gefunden, wo .c groß
geschrieben ist. ????

Autor: roadrunner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, habe gerade den fehler gefunden. hattest recht. man sollte auch die
datei richtig abspeichern :-)

danke

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

Bewertung
0 lesenswert
nicht lesenswert
hallo nochmal.

jetzt mal eine frage:
ich wollte einen port wie in meinem angehängten c-prg direkt
ansprechen. das geht jetzt wohl leider nicht ganz so wie ich es von
meinem 8051 gemwohnt bin.
kann ich einen einzelnen pin des ports d in c ansprechen?oder wie muss
das realisiert werden.was habe ich falsch gemacht?

vg daniel



> "make.exe" all

-------- begin --------
avr-gcc (GCC) 3.4.3
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.


Compiling: 1KHZ_C.c
avr-gcc -c -mmcu=atmega32 -I. -gdwarf-2 -DF_CPU=8000000UL  -Os
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=1KHZ_C.lst  -std=gnu99 -MD -MP -MF
.dep/1KHZ_C.o.d 1KHZ_C.c -o 1KHZ_C.o
1KHZ_C.c:5: error: parse error before "volatile"
1KHZ_C.c:6: warning: type defaults to `int' in declaration of
`bAusgang'
1KHZ_C.c:6: warning: data definition has no type or storage class
1KHZ_C.c:7: warning: type defaults to `int' in declaration of
`bAusgang'
1KHZ_C.c:7: warning: data definition has no type or storage class
1KHZ_C.c:15: warning: return type of 'main' is not `int'
make.exe: *** [1KHZ_C.o] Error 1

> Process Exit Code: 2

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieh dir in der avr-libc Doku den Punkt "Special Function registers"
an, da ist es gut beschrieben.

Kurz:

PORTD|=_BV(7); // Bit 7 setzen

PORTD&=~_BV(7); // Bit 7 löschen

Es geht natürlich auch PORTD=0x80, wenn der Rest auf 0 gesetzt werden
soll.

Ich glaub "bool" gibts nicht, nimm (unsigned) char.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bool gibt's mit <stdbool.h>, allerdings ist das ein int,
insofern ist uint8_t allemal sinnvoller.

Autor: roadrunner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke fürs erste. das hat mir geholfen. jetzt regt sich was. :-)

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.