Arduino UNO Taster 1

(Schwierigkeitsstufe i)

Aufgabe:     Zeitaufwand: 20 Minuten

Schaltplan

Beschaltung des Arduino UNO Boards

Ein Taster an PB2 soll eine an PD2 angeschlossene LED steuern. Wenn der Taster gedrückt ist, soll auch die LED leuchten.

Die unten abgebildeten Quelltexte sind die ersten Programmierversuche eines unerfahrenen Programmierers. Beide sind fehlerhaft.

a) 

Analysieren Sie den Quellcode. Beschreiben Sie die Funktion.

b) 

Lokalisieren Sie die Fehler in den Programmen und beschreiben Sie die Effekte der Fehler.

c) 

Schreiben Sie ein Programm, das korrekt funktioniert und testen Sie es.

Quellcode I

#define F_CPU 16000000UL

#include <avr/io.h>

int main(void)
{
	DDRD |= 0b11111111;
	DDRB &= ~0b00000100;
		
	while (1)
	{
		if(!(PINB & 0b00000100)) {
			PORTD |= 0b00000100;
		}
		PORTD &= ~0b00000100;
	}
}

Quellcode II

#define F_CPU 16000000UL

#include <avr/io.h>

int main(void)
{
	DDRD |= 0b11111111;
	DDRB &= ~0b00000100;
	PORTB |= 0b00000100;
		
	while (1)
	{
		if(!(PINB & 0b00000100)) {
			PORTD |= 0b00000100;
		}
		PORTD &= ~0b00000100;
	}
}