Hallo und danke für eure Hilfe! Die Lösung von Helfer funktioniert perfekt. Nur wie bekomme ich es hin, dass es mehrere "Umwandler" gibt? Dieser Code auf Basis von Helfer geht irgendwie nicht:
1 | $regfile = "2313def.dat" |
2 | $crystal = 1000000 |
3 | |
4 | ' Vcc |
5 | ' | |
6 | ' # int. Pull Up |
7 | ' | |
8 | ' Pin PD0 o----+ |
9 | ' | |
10 | ' \ Schalter |
11 | ' | |
12 | ' GND |
13 | ' |
14 | Config Pind.0 = Input |
15 | Config Pind.1 = Input |
16 | Config Pind.2 = Input |
17 | |
18 | |
19 | ' |
20 | ' Pin PB0 o--###-->|--o GND |
21 | ' |
22 | Config Portb.0 = Output |
23 | Config Portb.1 = Output |
24 | Config Portb.2 = Output |
25 | |
26 | ' |
27 | ' Ausgangsbedingungen |
28 | ' |
29 | Dim P0_pegel As Byte |
30 | Dim P1_pegel As Byte |
31 | Dim P2_pegel As Byte |
32 | |
33 | P0_pegel = Pind.0 |
34 | |
35 | Do |
36 | If Pind.0 = 1 And P0_pegel = 0 Then |
37 | ' Steigende Flanke 0 nach 1 erkennen und Aktion durchführen |
38 | P0_pegel = 1 |
39 | Portb.0 = 1 |
40 | Waitms 80 ' Überspringt implizit Prellen |
41 | Portb.0 = 0 |
42 | Elseif Pind.0 = 0 And P0_pegel = 1 then |
43 | ' Fallende Flanke 1 nach 0 erkennen und P0_pegel zurücksetzen |
44 | Waitms 20 ' Prellen abwarten |
45 | P0_pegel = Pind.0 |
46 | End If |
47 | |
48 | If Pind.1 = 1 And P1_pegel = 0 Then |
49 | ' Steigende Flanke 0 nach 1 erkennen und Aktion durchführen |
50 | P0_pegel = 1 |
51 | Portb.1 = 1 |
52 | Waitms 80 ' Überspringt implizit Prellen |
53 | Portb.1 = 0 |
54 | Elseif Pind.1 = 0 And P1_pegel = 1 Then |
55 | ' Fallende Flanke 1 nach 0 erkennen und P0_pegel zurücksetzen |
56 | Waitms 20 ' Prellen abwarten |
57 | P1_pegel = Pind.1 |
58 | End If |
59 | |
60 | If Pind.2 = 1 And P2_pegel = 0 Then |
61 | ' Steigende Flanke 0 nach 1 erkennen und Aktion durchführen |
62 | P0_pegel = 1 |
63 | Portb.1 = 1 |
64 | Waitms 80 ' Überspringt implizit Prellen |
65 | Portb.1 = 0 |
66 | Elseif Pind.2 = 0 And P2_pegel = 1 Then |
67 | ' Fallende Flanke 1 nach 0 erkennen und P0_pegel zurücksetzen |
68 | Waitms 20 ' Prellen abwarten |
69 | P2_pegel = Pind.2 |
70 | End if |
71 | Loop |