Sehr geehrtes Forum, mir ist was völlig verrücktes passiert, eigentlich
ganz witzig, aber nicht das was ich ja eigentlich will ....
Und zwar möchte ich den Tasten druck eines Buttons mit dem
Mikrocontroller ermitteln, Problem : Bevor ich den Tasterdrücke, wenn
mein Daumen in der Nähe des Buttons schwebt, beginnt der Mikrocontroller
das schon zu registrieren und lässt meine rote LED leuchten....
Kann es sein dass mein Finger ein Magnetfeld aufbaut, welches so geringe
induktionsströme fließen lässt, dass der mikrocontroller das als eingang
empfindet?
Wie kann ich das Problem lösen?
Habe es schon mit nem 1k Widerstand probiert, aber Zwecklos...
Der Eingang wechselt, wenn ich meine Hand über die Schaltung bewege auf
an und, wenn ich meine Hand stillhalte auf aus...
Bitte um Hilfe,
Mein Code :
1 | .include "M48def.inc"
|
2 |
|
3 | ; Stackpointerinitialisierung
|
4 | LDI R16, LOW(RAMEND) ;Stackpointer initialisieren
|
5 | OUT SPL, R16
|
6 | LDI R16, HIGH(RAMEND) ;Stackpointer initialisieren
|
7 | OUT SPH, R16
|
8 |
|
9 | ldi r18, 0xFF
|
10 | out DDRD, r18 ; Alle Pins am Port D durch Ausgabe von 0xFF ins
|
11 | ; Richtungsregister DDRD als Ausgang konfigurieren
|
12 | ldi r18, 0x00
|
13 | out DDRC, r18 ; Alle Pins am Port C durch Ausgabe von 0x00 ins
|
14 | ; Richtungsregister DDRB als Eingang konfigurieren
|
15 | loop:
|
16 | in r18, PINC ; an Port C anliegende Werte (Taster) nach r18 einlesen
|
17 | out PORTD, r18 ; Inhalt von r18 an Port D ausgeben
|
18 | rjmp loop ; Sprung zu "loop:" -> Endlosschleife
|
m.f.G. Developer_X