Moin
Ich habe ne kleine Lauflicht schaltung gebaut !
Funktioniert auch alles bis auf das PORT C die falschen werte rausgibt!
Alle anderen PORTS funktionieren einwandfrei!
Kennt irgendjemand denn Fehler?
PINC2 dauer High
PINC3 dauer High
PINC4 dauer Low
PINC5 dauer High
Und hier nochmal ein ausshnitt vom Code:
Code:
// ** Präprozessor ** //
#include <stdio.h>
#include <avr/io.h>
#include <util/delay.h>
// ** Funktionen ** //
void init (void)
{
DDRA = 0xff; //Ports als ausgänge definieren
DDRB = 0xff;
DDRC = 0xff;
DDRD = 0xff;
}
void anaus (void)
{
PORTA = 0xff;
PORTB = 0xff;
PORTC = 0xff;
PORTD = 0xff;
_delay_ms(5000);
PORTA = 0x00;
PORTB = 0x00;
PORTC = 0x00;
PORTD = 0x00;
_delay_ms(5000);
}
// ** Hauptfunktion ** //
int main (void)
{
init();
int zufall = 9; //Variable Zufall deklarieren
while (1)
{
switch (zufall)
{
case 1:
lauflr(); //Von links nach rechts durchlaufen
zufall=zufall+1;
break;
case 2:
laufrl(); //Von rechts nach links durchlaufen
zufall=zufall+1;
break;
case 3:
jede21lr(); //Jede zweite LED geht an von links nach rechts
zufall=zufall+1;
break;
case 4:
jede21rl(); //Jede zweite LED geht an von rechts nach links
zufall=zufall+1;
break;
case 5:
jede22rl(); //Jede zweite LED geht an von rechts nach links
zufall=zufall+1;
break;
case 6:
jede22lr(); //Jede zweite LED geht an von rechts nach links
zufall=zufall+1;
break;
case 7:
blink(); //LED`s blinken
zufall=zufall+1;
break;
case 8:
blink2w(); //jede zweite LED blinkt im wechsel
zufall=1;
break;
case 9:
anaus();
zufall=9;
break;
}
}
}
Danke schonmal fürs angucken
Gruß Cybrix
Lesezeichen