|
Wechselblinker
Die erste LED (im Bild ganz links) auf
unserem Board ist an PD2 angeschlossen und die zweite LED an PD0.

Natürlich kannst Du die Schaltung auch auf einem Steckbrett aufbauen.
Das wäre dann eine Erweiterung der Schaltung von dem hier.
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)
//blink, blink:
while (1){
PORTD &= ~_BV(PD2); //PD2 =
low -> LED an
PORTD |= _BV(PD0); //PD0 = high
-> LED aus
_delay_ms(250); //250 ms warten
PORTD |= _BV(PD2); //PD2 = high
-> LED aus
PORTD &= ~_BV(PD0); //PD0 =
low -> LED an
_delay_ms(250); //250 ms warten
}
return(0);
}
Wie das Programm in dem Mikrocontroller kommt, ist im Einstiegs-Projekt
Das Blinksdings erklärt.
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:
- Spiel doch mal mit den Leuchtzeiten herum!
Die Funktion _delay_ms() kannst Du maximal mit dem Wert 262.14 ms füttern.
Du kannst sie aber mehrmals hintereinander verwenden.
Du könntest Dir auch Deine eigene Funktion für
Zeitverzögerungen schreiben.
|