MezData-Logo

Blinklicht und Lauflicht mit 4 LED

 

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

AusgabemusterEntwickeln Sie ein Programm, dass einen Leuchtbalken von L0 nach L3 aufbaut. Verwenden Sie _delay_ms(500).