Anfängerproblem (CC5X)

Gast #1329706
Lesenswert?
• ▲
▼
Liebe Leute!

an portb.0 hängt ein Taster gegen Masse. der heißt bei mir i1.
red, yel und grn sind LED's.
Jetzt denke ich, wenn die Taste gedrückt wird, sollte sich im 
Programmablauf was ändern ( if(i1)...)

das proggy läuft jedoch immer in den else-zweig hinein...
auch die andere variante mit 'Taste' und maskieren des Ports bringt 
dasselbe Ergebnis.

Wer kann mir helfen?

Danke!
Walter


TRISB = 0b.1111.0001;    // Ausgänge: Ports 1,2,3     Eingänge: 
0,4,5,6,7
bit red @ PORTB.3;
bit yel @ PORTB.2;
bit grn @ PORTB.1;
bit i1  @ PORTB.0;

unsigned Taste;
Taste = PORTB & 0b.0000.0001;

while(1)
{  if (i1)
   {  red=0;
      yel=0;
      grn=1;
   }
   else
   {  red=1;
      yel=1;
      grn=0;
   }
}   // end while
}  // end main
#1329760
Lesenswert?
• ▲
▼
3 sachen:
1.  Turbotonis Antwort
2. du fragst Taste for der SChleife ab, das müsstest du rein ziehen.
3. dein taster schaltet gegen masse, das heit die logik ist umgedreht.
   wenn taster gedrückt, dann ist eingang 0, wenn nicht gedrückt, dann 
ist eingang 1


edit:
4. du darfst nicht das PORTB-register Fragen, da aktiviert an die 
Pullups, sondern das PINB register
Gast #1329812
Lesenswert?
• ▲
▼
danke an Euch!!!

@turbotoni - ein ganz heißer tipp ,.)))

@vlad: ad 2 - natürlich - Du hast ja so recht - mittlerweile mache ich 
es aber auf die ursprüngliche Variante (mit i1).

ad 4.: hmm - wie frag ich das PINB denn? mit PORTB geht es jetzt 
einwandfrei - oder handle ich mir da zukünftige Probleme ein?

lg walter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren