das sieht so aus, als hättest du beim compileraufruf was verpfuscht
Hallo,
ich bin im programmieren allgemein ein blutiger Anfänger, möchte aber trotzdem meinen Atmega8 Prozessor zum laufen bekommen. Ich benutze Programmers Notpad und bekomme beim versuch mein programm zu komilieren immer die untenstehende Fehlermeldung.Vielleicht kann mir jemand sagen , was ich falsch mache.
Danke
mein Programm:
#include <math.h>
#include <avr/delay.h>
#define F-CPu 7372800
#define pi 3.141592654
int main()
{
int i,t=0;
float Schritte, Schrittwinkel, Frequenz, Spannung;
float T, Const , Zeit,T2,Zeit2,Zeithilf;
double Diff,Diff2,Grad;
double Schrittgr,a,Gradref;
Frequenz = 0.1;
Schrittwinkel =1.8;
T = 1/ Frequenz;
T2 = T/2;
T = T/4;
T = T/90;
Grad = 360;
Gradref = Grad / 230;
Gradref = Gradref * Spannung;
Schritte = Gradref / Schrittwinkel;
Schrittgr = 1/Schritte;
Const = Schrittgr;
DDRB= (1<<DDB0) | (1<<DDB1) | (1<<DDB2) | (1<<DDB3);
while (t<=50)
{
while (i< Schritte-1)
{
i++;
a = asin(Schrittgr);
a = a * (180/pi);
PORTB |= (1<<PB0);
PORTB &=~ (1<<PB0);
Schrittgr = Schrittgr + Const;
Zeit = (T * a);
Diff = Zeit - Diff;
Diff = Diff * 1000;
delay_ms(Diff);
Zeit2 = Zeit;
Diff = Zeit;
}
Zeithilf = Zeit2;
PORTB |= (1<<PB1);
PORTB &= (1<<PB1);
Schrittgr = Schrittgr - Const;
i--;
while (i<=0)
{
Schrittgr = Schrittgr - Const;
a = asin (Schrittgr);
a = a * (180/pi);
PORTB |= (1<<PB0);
PORTB &=~ (1<<PB0);
Zeit2 = T2 - ( T *a);
Diff2 = Zeit2 - Zeithilf;
Diff = Diff * 1000;
delay_ms(Diff2);
Zeithilf = Zeit2;
i--;
}
PORTB |= (1<<PB2);
PORTB &= (1<<PB2);
t++}
}
Meine Fehlermeldung:
> "E:\Programme\Winavr\bin\avr-gcc.exe" -mmcu=atmega8-0"T:\STUD\programmieren\Fertig\11.12.06\AVR\AVRneu 2"-o"T:\STUD\programmieren\Fertig\11.12.06\AVR\AVRneu 2.o"
avr-gcc.exe: no input files
> Process Exit Code: 1
> Time Taken: 00:00
das sieht so aus, als hättest du beim compileraufruf was verpfuscht
...
Die Meldung sagt: Du hast keine Eingabe-Dateien (das, was avr-gcc compileren soll) angegeben.
Da du den exit-Code kennst, ist das Problem wahrscheinlich in deinem Makefile?
Disclaimer: none. Sue me.
Ich hab jetzt meine Eingaben in der Makefile geändert.
Meine neue Fehlermeldung lautet:
make.exe: *** No rule to make target `obj/main.o', needed by `AVRneu2.elf'. Stop.
> Process Exit Code: 2
> Time Taken: 00:00
Ich weiss leider immer noch nicht, was ich weiter machen soll.
Danke für eure Hilfe.
Dann poste doch mal das Makefile
Ich habe im Makefilegenerator den Namen geändert und den Prozessor angegeben
in weclher Datei steht dein Hauptprogramm (Name, Verzeichnis)? Was befindet sich im Unterordner obj?
Versuch mal TARGET = main
Wieso C++? Reicht C nicht?
Pack den Programmtext in main.c
Ändere das makefile auf
# Target file name (without extension).
TARGET = main
# Object files directory
OBJDIR = obj
# List C source files here. (C dependencies are automatically generated.)
SRC = $(TARGET).c
# List C++ source files here. (C dependencies are automatically generated.)
CPPSRC =
Wenn du dann noch die Sytax-und Schreibfehler im Programm entfernst, kompiliert mein avr-gcc 3.4.5 ohne zu meckern.
Danke für Eure Hilfe,
ich glaub, dass es geklappt hat.
Lesezeichen