Hi leutz,...sitz hier in der Schule beim C Programmieren und habn kleines Prób...
Hier erstmal das Programm...
//-header-
#include <reg552.h>
#include <stdio.h>
void lauf (void);
void licht1 (void);
void licht2(void);
void warten (void);
//--------------------- main ----------------------------------------------
void main (void) // Main Programm
{
int start; // Variable Start
P1 = 0xff; // P1 als Eingang definiert
while(1) // Schleife für gesamt Programm
{
start=P1 & 0x01; // Schalter 0 als An/Aus Schalter definiert
if (start==1)
{
lauf (); // Verweis auf Unterprogramm lauf
}
else
{
P4=0x00;
}
}
}
void licht1 (void) // Lauf von LED0 nach LED7
{
P4=0x80;
warten(); // Verweis auf Unterprogramm warten
P4=0x40;
warten();
P4=0x20;
warten();
P4=0x10;
warten();
P4=0x08;
warten();
P4=0x04;
warten();
P4=0x02;
warten();
P4=0x01;
warten();
}
void licht2 (void) // Lauf von LED7 nach LED0
{
P4=0x01;
warten();
P4=0x02;
warten();
P4=0x04;
warten();
P4=0x08;
warten();
P4=0x10;
warten();
P4=0x20;
warten();
P4=0x40;
warten();
P4=0x80;
warten();
}
void lauf (void) // Bestimmung der Laufrichtung durch umlegen des Schalter 1
{
int renn; // Variable für Schalter 1
renn=(P1 & 0x02)>>1;
if (renn==1)
{
licht1 (); // Verweis auf Unterprogramm licht1
}
else
{
licht2 (); // Verweis auf Unterprogramm licht2
}
}
void warten (void) // Wartefrequenz für 1-4 hz
{
int i;
int x; // Variable für Schalter 6 und 7
x=(P1 & 0xc0)>>6;
if (x==0)
{
x=4;
for (i=0;i<5000/x;i++); // 5000 = ~1 hz
}
else
{
for (i=0;i<5000/x;i++); // 5000 = ~1 hz
}
}
Das ganze soll ein Lauflicht darstellen. Wie können wir jetzt eine Wartezeit in ms einbauen ? 2. Problem, wie können wir das Lauflicht über eine Shiftfunktion weiterlaufen lassen ?
Ich würde mich über "schnelle" Hilfe freuen, denn unsere Lehrer sind nicht wirklich bereit uns zu helfen :*(,.....Danke im Vorraus
Mfg Tai
Lesezeichen