Guten Abend,
vor kurzem habe ich ein Programm zum Auslesen von Encodern geschrieben,
welches zawr noch nicht fertig ist, aber bisher fast ohne Probleme
funktioniert:
1 | $regfile = "m16def.dat"
|
2 | $crystal = 8000000
|
3 |
|
4 | Config Porta = Input
|
5 | Config Portd = Output
|
6 | Porta = 255
|
7 | Portd = 0
|
8 |
|
9 | A Alias Pina.0 'KANAL-A DES DREHENCODERS
|
10 | B Alias Pina.2 'KANAL-B DES DREHENCODERS
|
11 | Enter Alias Pina.1 'DRUCKTASTE DES ENCODERS
|
12 |
|
13 |
|
14 | Do
|
15 |
|
16 | Portd = 0 'SETZE ALLE PINS VON PORTD AUF NULL
|
17 |
|
18 | If B = 0 Then
|
19 | Gosub Prozedur_b
|
20 | Elseif A = 0 Then
|
21 | Gosub Prozedur_a
|
22 | Elseif A = 1 And B = 1 Then
|
23 | Goto Begin
|
24 | End If
|
25 |
|
26 | Loop
|
27 | End
|
28 |
|
29 | Prozedur_a:
|
30 |
|
31 | Portd.1 = 1 'DIENT ZUR ÜBERPRÜFUNG DER FUNKTION DES PROGRAMMS
|
32 | While B = 1 'WIEDERHOLE; BIS KANAL-A UND -B ÜBERLAGERT
|
33 | WEND
|
34 | Portd.0 = 1 'DIENT ZUR ÜBERPRÜFUNG DER FUNKTION DES PROGRAMMS
|
35 | While Enter = 1 'SOLANGE ENTER NICHT GEDRÜCKT, WIEDERHOLE
|
36 | Wend
|
37 | Return
|
38 |
|
39 | Prozedur_b:
|
40 |
|
41 | Portd.6 = 1 'DIENT ZUR ÜBERPRÜFUNG DER FUNKTION DES PROGRAMMS
|
42 | While A = 1 'WIEDERHOLE; BIS KANAL-A UND -B ÜBERLAGERT
|
43 | WEND
|
44 | Portd.7 = 1 'DIENT ZUR ÜBERPRÜFUNG DER FUNKTION DES PROGRAMMS
|
45 | While Enter = 1 'SOLANGE ENTER NICHT GEDRÜCKT, WIEDERHOLE
|
46 | Wend
|
47 | Return
|
Das Problem ist nun aber, dass
1. , wenn der PinA.1 auf 0 geht, die Spannung an PinA.2 ebenfalls auf
etwa 2,8V abfällt und dieser folglich als PinA.2=0 gelesen und auch
ungewollterweise ausgewertet wird. Mysteriöserweise kann ich keinen
bedeutend kleinen Widerstand zwischen PinA.1 und PinA.2 messen!
2. , sobald der ISP-Programmer (mySmartUSB light) abgesteckt wird, tut
der Controller ganz eigene Dinge und reagiert kaum noch auf
Tasteneingaben, geschweige denn wertet sie korrekt aus. Dennoch sind
während dieser Problematik alle Pins auf high, dh. liegen an jedem von
ihnen 4,8V an.
Scheint also wohl ein Programmfehler zu sein, da elektrisch alles in
Ordnung zu sein scheint.
Für eure Hilfe wäre ich sehr dankbar!