L0 blinken lassen
#include <avr/io.h> // Definitionen laden
#include <util/delay.h> // Delay-Bibliothek laden
int main(){
DDRB=0xff; // PORTB auf Ausgang
PORTB=0xe0; // nur L3..L0 leuchten
PORTD=0x70; // Pullups fuer T2..T0 an
while(1){
PORTB |= 1; // PB0<-1 L0 an
_delay_ms(500); // warte 500ms
PORTB &= ~1; // PB0<-0 L0 aus
_delay_ms(500); // warte 500ms
}
}
Die LED an PB0 des ATtiny2313 @1MHz soll im Sekundentakt blinken (500ms an, 500ms aus). Die Zeit wird mit der Verzögerungsfunktion _delay_ms() realisiert.
- Die Taktfrequenz des µC im Projekt einstellen, damit _delay_ms() richtig übersetzt wird.
- In _delay_ms() nur konstante Zahlen (keine Variablen) verwenden, sonst "explodiert" der Code. Für variable Wartezeiten _delay_ms() einfach in for-Schleife verpacken.
Lauflicht
Entwickeln Sie ein Programm, dass einen Leuchtbalken von L0 nach L3 aufbaut. Verwenden Sie _delay_ms(500).