www.mikrocontroller.net

Forum: Gesperrte Threads mal ne frage an euch


Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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;
  }
}

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was ist mit den anderen Pins von Port B? Die hängen ja vermutlich 
irgendwie in der Luft (Pull-Ups sind jedenfalls nicht aktiviert). 
Demnach dürfte die Wahrscheinlichkeit, dass die Bedingung der Abfrage
if(PINB==1)
jemals wahr wird, relativ gering sein...

Autor: Ronny Spiegel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Realpotter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das kommt etwa hin. Tut es nicht ? Fuses ? Clock options ?

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Wichtige Regeln - erst lesen, dann posten!
...
Aussagekräftigen Betreff waehlen"

Du bekommst hiermit den Schlechtester-Betreff-des-Jahres-Preis 
verliehen.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.