Gast
#1610403
Hi,
ich verstehe folgenden Programmcode nicht:
int main( void )
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer to prevent time out
reset
P1DIR = 0xFF; // Alle LEDs als Ausgang setzen
P1OUT = 0x00; // alle LEDs ausschalten
delay(2);
P1OUT = 0xFF;
delay(2);
while (1) { // Endlosschleife
while (P2IN & BIT5) {
P1OUT = 0xF0;
}
} // end Endlosschleife
} // end main
Folengeder Programmablauf ist auf dem Controller zu beobachten:
Start
--> Alle LEDs an
--> Wartezeit (Delay)
--> Alle LEDs aus
--> Wartezeit (Delay)
--> 4 LEDs an
--> Wartezeit (Delay)
--> Alle LEDs an
--> kurze Wartezeit
--> alle LEDs aus
--> kurze Wartzezeit
--> 4 LEDs an
--> ....
Problem: Das Programm müsste doch 1. in der While(1) Schleife hängen und
dürfte nicht mehr alle LEDs anmachen. Doch so wie es aussieht springt
das Programm wieder "hoch" zum Anfang von main.
Außerdem wollte ich gerne nur 4 LEDs anmachen, wenn der Schalter
gedrückt wird ( while (P2IN & BIT5) ) aber leider zeigt der
Programmablauf keine Reaktion bei Betätigung der Taster. Muss man das
irgendwie anders lösen?
Vielen Dank im Voraus,
grüße Daniel