|
Dreikanallauflicht
Ab drei LED kann man ein Laufen des Lichtes realisieren.
Die ersten drei LEDs sind (in der
Reihenfolge) an PD2, PD0 und PD1 angeschlossen.
Schau Dir den Programmcode an:
#include <avr/io.h>
#define F_CPU 1000000UL // 1 MHz
#include <util/delay.h>
int main(void)
{
DDRD |= _BV(PD2); //PD2 zum Ausgang machen (= 1. LED
von links)
DDRD |= _BV(PD0); //PD0 zum Ausgang machen (= 2. LED
von links)
DDRD |= _BV(PD1); //PD1 zum Ausgang machen (= 3. LED
von links)
while (1){
PORTD &= ~_BV(PD2);
//PD2 = low -> LED an
PORTD |= _BV(PD0);
//PD0 = high -> LED aus
PORTD |= _BV(PD1);
//PD1 = high -> LED aus
_delay_ms(250); //250 ms warten
PORTD |= _BV(PD2);
//PD2 = high -> LED aus
PORTD &= ~_BV(PD0);
//PD0 = low -> LED an
PORTD |= _BV(PD1);
//PD1 = high -> LED aus
_delay_ms(250); //250 ms warten
PORTD |= _BV(PD2);
//PD2 = high -> LED aus
PORTD |= _BV(PD0);
//PD0 = high -> LED aus
PORTD &= ~_BV(PD1);
//PD1 = low -> LED an
_delay_ms(250); //250 ms warten
}
return(0);
}
Hier gibt's den Code-Ordner
zum Runterladen.
Anmerkungen:
- Wenn Du hier irgendwas nicht verstehst, solltest Du Dir unbedingt
das Projekt Hello World - Atmega8! ganz
durchlesen und vorher natürlich das Kapitel
C für Mikrocontroller durchgearbeitet haben.
- Es ist normal, daß einige LEDs (etwa in der Mitte) des Bords
leuchten
oder flackern, solange das
Programmierkabel angestöpselt ist.
Aufgaben:
- Lass das Licht in die andere Richtung laufen!
|