Automatisieren und Vernetzen mit Industrie-PC
:: Stand ::
17.04.2004 |
||
| Pfad ::: Home / Mikrocontroller / Blinky | ||
2.3. Programme mit Keil C51 / Philips LPC900
2.3.2. Programm Blinky.c
/* Blinky.C - LED Flasher for the Keil LPC900 EPM Emulator/Programmer Module */
#include <REG932.H> // register definition
void delay (unsigned int cnt)
{
while (--cnt);
}
void main()
{
unsigned char i;
P2M1 = 0;
for(;;) // Endlosschleife mit for (mit break und continue möglich, solch eine Schleife zu verlassen
{ for (i = 0x01; i; i <<= 1) // for (Initialisierung; (Abbruch-)Bedingung; Fortschaltung)
// hier: for (i= 0000 0001; i != 0; gesetzte Bit um eine Stelle nach rechts schieben)
// also: 0000 0010
// danach: 0000 0100
// bis die 1 links wieder verschwindet
// und Abbruchbedingung mit 0000 0000 erfüllt ist
// Diese for-Schleife basiert auf der Annahme, dass i zu false getestet wird,
// wenn es den Wert 0 enthält; ein so genanntes C++-Idiom, das i != 0 entspricht -
// Der Kopf der for- Schleife hätte auch wie folgt geschrieben werden können:
// for (i = 0x01; i !=0; i <<= 1){ P2 = i; // der Wert des jeweiligen Schleifendurchlaufs wird am Port 2 ausgegeben, also 0000 0001,
// 0000 0010, 0000 0100, 0000 1000, 0001 0000,
delay (50000);
}
for (i = 0x80; i; i >>= 1) // for (Initialisierung; (Abbruch-)Bedingung; Fortschaltung)
// hier: for (i= 1000 0000; i != 0; gesetzte Bit um eine Stelle nach links schieben)
// hexadezimal: 8 0
// also: 1000 0010
// danach: 0100 0000
// bis die 1 rechts wieder verschwindet
// und Abbruchbedingung mit 0000 0000 erfüllt ist
{ P2 = i; // der Wert des jeweiligen Schleifendurchlaufs wird am Port 2 ausgegeben
delay (50000);
}
}
}
|
|||
|
Beratender Fachlehrer: |
|||