
|
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 So, nun habe ich doch noch das Zeugs vorgekramt. Mit 0 und 1 lag ich leider falsch - Sorry. Also folgender Code: ---------------------------------------------------------------------------------------------------- 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 if Zustand = 0 then print "gedrückt" if Zustand > 0 then print "nicht gedrückt" Pause 100' 2 sek. Pause' zur besseren Sichtung des Ergebnisses LOOP --------------------------------------------------------------------------------------------------- programmiert unter Basic++ liefert mir folgende Ausgabe : Taster nicht gedrückt - P3 high - Ausgabe im Terminal : 255 nicht gedrückt Taster gedrückt - P3 low - Ausgabe im Terminal : 00 gedrückt Tipps: * hast du mal gemessen, was jeweils am P3 wirklich anliegt; * bei selbstgebauter Platine auf eventuelle Brücken untersuchen; * bei selbstgebauter Platine bitte den 10k Pullup an P3 nochmal nachmessen; * kleine Pause zwischen die Abfragen einlegen - mache ich fast generell; Sonst fällt mir da ehrlich auch nichts mehr ein, außer den MC austauschen. Aber es gibt sicher noch wesentlich schlauere Bürschen wie mich hier im Forum. Grüße, Robby. |
| Antwort schreiben |