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).
Lauflicht
Entwickeln Sie ein Programm, dass diese Ausgabe erzeugt:
Knight Rider mini
Entwickeln Sie ein Programm, bei dem ein Leuchtpunkt zwischen L0 und L3 hin und her wandert.
Umschaltbares Blinklicht
Entwickeln Sie ein Programm bei dem durch die Taster T0 und T1 soll die Blinkfrequenz umgeschaltet werden kann:
- Nach dem Start oder nach Betätigen von T0 ist die Blinkfrequenz 1Hz.
- Nach Betätigen von T1 ist die Blinkfrequenz 2Hz.
- T0 hat die höhere Priorität bei gleichzeitigem Drücken von T0 und T1.
SOS morsen
Entwickeln Sie ein Programm, dass SOS blinkt: ... - - - ...
Template
Entwickeln Sie ein Programm, dass ...