Gast
#2040489
Hallo
ich habe ein Problem mit folgendem Programm und zwar macht er mir
folgende erros und warnnings
wäre schön wenn ihr mir helfen könntet.
../Werkzuegwechsler.c:14: warning: data definition has no type or
storage class
../Werkzuegwechsler.c:14: warning: type defaults to 'int' in declaration
of 'k'
../Werkzuegwechsler.c: In function 'main':
../Werkzuegwechsler.c:25: error: expected ';' before 'if'
../Werkzuegwechsler.c:222: error: 'end' undeclared (first use in this
function)
../Werkzuegwechsler.c:222: error: (Each undeclared identifier is
reported only once
../Werkzuegwechsler.c:222: error: for each function it appears in.)
../Werkzuegwechsler.c:222: error: expected declaration or statement at
end of input
../Werkzuegwechsler.c: At top level:
../Werkzuegwechsler.c:222: fatal error: opening dependency file
dep/Werkzuegwechsler.o.d: No such file or directory
compilation terminated.
make: *** [Werkzuegwechsler.o] Error 1
Build failed with 6 errors and 2 warnings...
#include <avr/io.h> //Einbinden der Header Datei
der Ein und Ausgänge
#include <stdint.h> //Einbinden der Header Datei
zur verwendung von Integer
#include <avr/interrupt.h> //Einbinden der Header
Daeti zum verwenden des Timers
int j;k; //Bekannt gebnen der Variablen j, k
void warte (int zeit) ; //Bekannt gabe der Funktion
warte
int main (void)
{
while(1) //Endlosschleife
{
DDRC = 0xff //Alle Pins des Port C werden als
Ausgänge gesetzt
if (PB0 == 1 & PB4 == 1) //Springe in die Schleife wen
Z Achse auf 1/10 SPS = 1 und Freigabesignal = 1
{
j = 0; //Setze j auf 0
PC0 = 1; //Setze Z Achse Richtung auf 1
for (j = 0; j <80; j++) //Zähle bis 80(Pulse) dan
Spring aus der Schleife raus
{
PC1 = 1; //Setze Z Achse Puls = 1
warte (5000); //Einstellen der Zeit der
Positiven Halbwelle
PC1 = 0; //Setze Z Achse Puls = 0
warte (5000); //Einstellen der Zeit der
Negativen Halbwelle
if(j = 80) //Nach den 80 Pulsen springe in
diese Schleife
{
PD0 = 1; //Setze Z Achse auf 1/10 Ausgang SPS
auf 1
if(PD0 = 1) //Wenn Z Achse auf 1/10 Ausgang SPS
auf 1 ist Springe hier rein
{
if(PB5 = 1) //Wenn Signal Erhalten 1 ist
Springe hier rein
{
PD0 = 0; //Setze Z Achse auf 1/10 Ausgang SPS
auf 0
} //Ende Schleife if(PB5 = 1)
} //Ende Schleife if(PD0 = 1)
} //Ende Schleife if(j = 80)
} //Ende Schleife for (j = 0; j <80; j++)
} //Ende Schleife if (PB0 == 1 & PB4 == 1)
if (PB1 == 1 & PB4 == 1) //Springe in die Schleife wen
Z Achse ab 1/10 SPS = 1 und Freigabesignal = 1
{
j = 0; //Setze j auf 0
PC =0 0; //Setze Z Achse Richtung auf 0
for (j = 0; j <80; j++) //Zähle bis 80(Pulse) dan
Spring aus der Schleife raus
{
PC1 = 1; //Setze Z Puls = 1
warte (5000); //Einstellen der Zeit der
Positiven Halbwelle
PC1 = 0; //Setze Z Puls = 0
warte (5000); //Einstellen der Zeit der
Negativen Halbwelle
if(j = 80) //Nach den 80 Pulsen spirneg in
diese Schleife
{
PD1 = 1; //Setze Z Achse ab 1/10 Ausgang SPS
auf 1
if(PD1 = 1) //Wenn Z Achse ab 1/10 Ausgang SPS
auf 1 ist Springe hier rein
{
if(PB5 = 1) //Wenn Signal Erhalten 1 ist
Springe hier rein
{
PD1 = 0; //Setze Z Achse ab 1/10 Ausgang SPS
auf 0
} //Ende Schleife if(PB5 = 1)
} //Ende Schleife if(PD1 = 1)
} //Ende Schleife if(j = 80)
} //Ende Schleife for (j = 0; j <80; j++)
} //Ende Schleife if (PB1 == 1 & PB4 == 1)
if (PB2 == 1 & PB4 == 1) //Springe in die Schleife wen
Schrittmoto Werkzeugwechsler rechts = 1 und Freigabesignal =1
{
j = 0; //Setze j auf 0
PC2 = 1; //Setze Schrittmotor Werkzeugwechsler
Richtung auf 1
for (j = 0; j <10; j++) //Zähle bis 10(Pulse) dan
Spring aus der Schleife raus
{
PC3 = 1; //Setze Schrittmotor Werkzeugwechseler
Puls = 1
warte (1000); //Einstellen der Zeit der
Positiven Halbwelle
PC3 = 0; //Setze Schrittmotor Werkzeugwechseler
Puls = 0
warte (1000); //Einstellen der Zeit der
Negativen Halbwelle
if(j = 10) //Nach den 10 Pulsen spirneg in
diese Schleife
{
PD2 = 1; //Setze Schrittmotor Werkzeugwechsler
Rechts SPS auf 1
if(PD2 = 1) //Wenn Schrittmotor
Werkzeugwechsler Rechts SPS auf 1 ist Springe hier rein
{
if(PB5 = 1) //Wenn Signal Erhalten 1 ist
Springe hier rein
{
PD2 = 0; //Setze Schrittmotor Werkzeugwechsler
Rechts SPS auf 0
} //Ende Schleife if(PB5 = 1)
} //Ende Schleife if(PD3 = 1)
} //Ende Schleife if(j = 10)
} //Ende Schleife for (j = 0; j <10; j++)
} //Ende Schleife if (PB2 == 1 & PB4 == 1)
if (PB3 == 1 & PB4 == 1) //Springe in die Schleife wen
Schrittmoto Werkzeugwechsler links = 1 und Freigabesignal = 1
{
j = 0; //Setze j auf 0
PC2 = 0; //Setze Schrittmotor Werkzeugwechsler
Richtung auf 0
for (j = 0; j <10; j++) //Zähle bis 10(Pulse) dan
Spring aus der Schleife raus
{
PC3 = 1; //Setze Schrittmotor Werkzeugwechseler
Puls = 1
warte (1000); //Einstellen der Zeit der
Positiven Halbwelle
PC3 = 0; //Setze Schrittmotor Werkzeugwechseler
Puls = 0
warte (1000); //Einstellen der Zeit der
Negativen Halbwelle
if(j = 10) //Nach den 10 Pulsen spirneg in
diese Schleife
{
PD3 = 1; //Setze Schrittmotor Werkzeugwechsler
Links SPS auf 1
if(PD3 = 1) //Wenn Schrittmotor
Werkzeugwechsler Links SPS auf 1 ist Springe hier rein
{
if(PB5 = 1) //Wenn Signal Erhalten 1 ist
Springe hier rein
{
PD3 = 0; //Setze Schrittmotor Werkzeugwechsler
Links SPS auf 0
} //Ende Schleife if(PB5 = 1)
} //Ende Schleife if(PD3 = 1)
} //Ende Schleife if(j = 10)
} //Ende Schleife for (j = 0; j <10; j++)
} //Ende Schleife if (PB3 == 1 & PB4 == 1)
} //Ende Hauptprogramm
void warte (int zeit) //Funktion Warte
{
k=0x00; //Variable auf 0 setzen
TCCR0 = (1<<CS01); //Timer starten mit 1/8 des CPU
Taktes
while (k<=zeit) //solange variable kleiner als
zeit ist
{
while (TOV0==0) //solange Timer nicht überläuft
{
;
}
k++; //Variable k + 1
}
TCCR0=0; //Timer aus
}
end;