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
Man müste nen Pullup am Eingang schalten, oder die internen pullups nutzen
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
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
>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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.