mal ne frage an euch

Gast #624186
Lesenswert?

hi leute mal ne frage.
könnt ihr mir bitte mal sagen was hier falsch ist?
wenn ich an port-b pin-0 spannung anlege oder nicht müsste je nachdem 
die led brennen oder nicht.habe natürlcih port-d pin-2 mit der led 
verbunden.








#define   F_CPU 3686400
#include  <avr\io.h>
main ()            {

  DDRD=0xff;
  DDRB=0x00;
  DDRC=0xff;
  PORTC=0xff;
  PORTB=0;

  while(1) {



    if(PINB==1)
  PORTD=0x04;
    if(PINB==0)
   PORTD=0x00;
  }
}
Gast #624196
Lesenswert?

Ich vermute mal, die restlichen Pins vom PORTB sind einfach frei, d.h. 
weder Masse noch Vcc.

Du hast für PORTB die Pullups nicht aktiviert, d.h. die PINB (ausser dem 
einen, den Du benutzt) sind nicht definiert.

D.h. if(PINB & 0x01) zur Prüfung benutzen!
Das ist besser, weil Du von den anderen Bits unabhängig prüfst.

Weiterhin würde ich die Pullups aktivieren, oder die PINs auf einen 
definierten Pegel ziehen. (Pullups aktivieren: PORTB = 0xFF)

RSp
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.