Forum: Mikrocontroller und Digitale Elektronik Anfängerproblem (CC5X)


von WalterP (Gast)


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

von Turbotoni (Gast)


Lesenswert?

Man müste nen Pullup am Eingang schalten, oder die internen pullups 
nutzen

von Vlad T. (vlad_tepesch)


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

von WalterP (Gast)


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

von holger (Gast)


Lesenswert?

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

PORTB ist ok. PICs haben kein PINB.

von Vlad T. (vlad_tepesch)


Lesenswert?

Ich hatte mehrmals geschaut, ob ich irgend wo nen µC typ sehe.
da ich nix gesehen hatte, bin ich von AVR ausgegangen ;)
hab mich bloß über den Code gewundert, dachte dann aber es sei sowas 
bascom mäßiges.

Jetzt seh ich s in der Überschrift.

von WalterP (Gast)


Lesenswert?

danke euch beiden nochmals für die 'rege anteilnahme'...

also - dieses forum ist ein hit - wie einem da geholfen wird, und noch 
dazu sooo rasch!!!


lg w

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.