Hallo!
Ich habe vor 2 Tagen begonnen, mikrocontoller zu programmieren, und habe auch schon ein paar Programme geschrieben, die dann auch funktioniert haben (Led an, ports als ein- oder ausgang festlegen, blinklichter, ...)
Das war aber alles nur mit ausgängen, jetzt will ich auch mal eingänge probieren. Dazu habe ich dann folgendes programm geschrieben:

Code:
#include <avr/io.h>
#include <stdint.h>

#define F_CPU 3686400UL
#include <util/delay.h>


int main (void)

{	DDRB=0x00;				// Port B  als Eingang
	PORTB=0xff;				// Pull-ups auf Port B ein
	DDRC=0xff;				// Port C als Ausgang
	PORTC=0x00;				// Alle Pins auf Port C auf low
	
	uint8_t taster;

	while (1) 
	{	taster=PINB;		// Zustände von Port B in Variable taster speichern

		while (taster)		// Wenn taster gedrückt
		{	PORTC=0xff;		// Port C (wo LED angeschlossen) ein
			taster=PINB;	// Abfragen ob taster gedrückt
		}
			
		
		while(taster==0)	// Wenn Taster nicht gedrückt
		{	PORTC=0x00;		// Led aus
			taster=PINB;	// Abfragen ob taster gedrückt
		}
	
	}
	return 0;
}
Die led hängt auf port c, der taster auf port b.
Die Led sollte leuchten, wenn ich den taster drücke.

wenn ich es auf dn AVR brenne, leuchtet die led einfach nur, egal ob ich drücke oder nicht.

Könnt ihr mir sagen was ich falsch mache?
Und kennt ihr ein tutorial, bei dem das programmieren anhand von beispielen erklärt wird, oder nur irgendeine homepage, wo es den quellcode von so einfachen programmen gibt?
Beim tutorial von microcontroller.net finde ich gibt es zu wenige (vollständige) beispiele.

Grüße,
Christoph