Hallo,
Seit geraumer Zeit kämpfe ich mit einer eigentlich sehr einfachen Aufgabe: An einem LPC11C14 hab ich an Port 1 Pin 9, 10 und 11 je einen Taster angeschlossen. Taster offen => pin floatet; taster gedrückt: mit 1K nach Vcc geschlossen.
Mein Problem ist: ich schaffe es nicht den Tastendruck von Pin 1/10 und 1/11 (richtig) auszuwerten. Auch bei gedrückter Taste, lese ich immer eine 0 aus. Pin 1/9 funktioniert einwandfrei.
Da auf den betroffenen Pin's als Alternativfunktion den ADC gibt, hab ich daher auf diesen umgeschaltet. Jede Sekunde werte ich beide Varianten aus. siehe Code:
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
Das Ergebnis ist eigentlich recht eindeutig:
Taster offen (erwartetes Ergebnis):
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
Taster geschlossen (ADC Ergebnis erwartet, Digital bleibt immer 0):
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
Wenn ich den obigen Code noch dahingehend verändere, dass der interne Pull-down aktiv ist, dann ist auch das ADC Ergebnis im floating Zustand immer schön 0 - wie man es erwartet.
Ich stell mir grad die Frage ob ...
- ich beim einlöten den µC zu viel gebraten habe oder anderweitig die digitalen Ports 1/10 und 1/11 zerstört habe? (zugegeben: jedes mal, wenn ich an einen Hardwarefehler gedacht habe, war es dann doch immer noch meine eigene Schuld ...)
- oder ob es bei genau diesen beiden Pins etwas spezielles zu beachten gibt? Pin 1/9 funktioniert ja. Aber genau 10/11 haben ja als Alternativfunktion den ADC - vielleicht ist da noch etwas spezielles zu beachten, was ich im Datenblatt noch nicht gefunden habe ...
Hat jemand Erfahrung mit den LPC11xxx und hat nen Tipp für mich?
danke!
vG Alram

