
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> > > > > > Hallo, > > > > > > > > > > > > ich möchte einen Taster am Port 3 der Micro abfragen. > > > > > > Dazu habe ich Port 3 mit einem 10K Widerstand auf +5V gelegt und beschalte ihn mit einem Taster auf GND. > > > > > > Dieselbe Art der Abfrage klappt an anderen Ports einwandfrei. Ich erhalte dann über die serielle Schnittstelle die Werte 255 bzw. 00 über den Port. > > > > > > Bei Port 3 erhalte ich nur 255 (Pull up Zustand), bei gedrückter Taste gibt es keinen neuen Wert, die Ausgabe bleibt nur stehen. > > > > > > > > > > > > Ich wäre für einen Tipp dankbar, da ich nur den Port 3 für diese Abfrage zur Verfügung habe. > > > > > > > > > > > > Gruß > > > > > > Löter > > > > > > > > > > Hallo, > > > > > > > > > > P3 muss beim Starten der Micro unbedingt auf H-Pegel liegen, sonst geht sie in den Programmiermodus. Dumme Frage: ist dein Taster i.O. - sorry :-) . > > > > > > > > > > Grüße, Robby. > > > > > > > > Hallo Robby, > > > > > > > > danke für Deine Antwort. > > > > > > > > Ich habe Port3 als Digitalport definiert und mit einem 10K Widerstand auf H-Pegel liegen (siehe mein Text). Trotzdem klappt es nicht wie z.B. mit Port6, wenn ich den genauso anschliesse. Deshalb kann mein Taster nicht kaputt sein, denn bei Port6 klappt es ja. Ich habe schon viel probiert und recherchiert, aber jetzt weiß ich nicht mehr weiter. > > > > > > > > Gruß > > > > Löter > > > > > > Hast du den code so verwendet, wie Jens schrieb? > > > Wenn ja, schließe doch den P3 mal mit etwas Draht gegen Masse kurz, wenn der Taster betätigt werden soll. Noch ein Tipp, wenn du OC-Basic verwendest : hast du den ProgCode compiliert, bevor du ihn zum Controller geschickt hast? Wegen soetwas bin ich auch schon mal bald wahnsinnig geworden. Passiert halt im Eifer der Gefechtes. > > > > > > Grüße, Robby. > > > > Hallo Robby, > > > > hier mein Code: > > > > OPTION CCMICRO > > > > Baud R9600 > > PAUSE 5 > > > > print"Test zur Tastenabfrage" > > > > define Taster as port[6] > > define Zähler as port[5] > > define alterZustand as bit > > define Zustand as bit > > > > Zähler = ON > > > > DO > > Zustand = Taster > > if Zustand <> alterZustand then > > alterZustand = Zustand > > if Zustand = 0 then > > print "GEDRÜCKT" > > Zähler = OFF > > end if > > if Zustand = 255 then print "AUS" > > end if > > Zähler = ON > > LOOP > > > > Über Port5 wird ein Summenzähler angegsteuert, hat mit der Problematik aber nichts zu tun. > > Funzt mit Port6 ohne Probleme! Wenn ich dann dasselbe Prog auf Port3 loslasse, gibt es die beschriebenen Probleme. Damit sind eigentlich Fehler (wie die von Dir angenommenen) ausgeschlossen und es muß eine Besonderheit bei der Behandlung von Port3 (als Digitaleingang) geben. > > > > Gruß > > Löter > > Versuch doch mal dies, dann siehst du das Ergebnis - denke ich mal - damit sollte man was anfangen können. > > OPTION CCMICRO > Baud R9600 > PAUSE 5 > print"Test zur Tastenabfrage" > define Taster as port[3] > define Zustand as byte' - nicht als Bit > > DO > Zustand = Taster > print Zustand > Pause 50' 1 sek. Pause > LOOP > > Grüße, Robby. Gerade ausprobiert. Problem geblieben. Bei nicht gedrücktem Taster 255 im Terminal, bei gedrücktem bleibt Anzeige stehen (kein neues Ergebnis), Taste wieder losgelassen gehts weiter mit 255. |
| Antwort schreiben |