Hallo,
Code:
DDRB=0x38; // Port B als Eingang
PORTB=0x38; // Pull-ups auf Port B ein
DDRB = 0b11111111;
Hast Du schon überlegt was in den 3 Zeilen passiert ?
in der etsten Zeile machst Du PINB3 PINB4 und PINB5 zum Ausgang.
in der zweiten Zeile Schaltest Du sie alle HIGH
in der dritten Zeile machst Du dann den ganzen Port zum Ausgang.
War das so gedacht ? Scheinbar nicht, sonst würdest Du PINB3 nicht abfragen wollen
Schlimmer noch, soltest Du den Taster auf PB3 gegen GND schalten, baust Du Dir immer einen Kurzschluß...
Mach das bitte so:
Code:
...
DDRB &=~(1<<PB3);
PORTB |=(1<<PB3);
while(1) {
if ( ~PINB & ( 1<<PINB3 ) )
{
PORTD |= (1<<PD5);
pwminit();
}
...
Gruß Sebastian
Lesezeichen