Gast
#2027352
Hallo, Ich bin gerade dabei für mein momentanes Projekt die Fernbedienungs-Empfangsroutine zu schreiben. Dabei bin ich beim Testen ob das ganze auch so tut wie es soll auf ein seltsames (oder bin ich einfach nur so doof?) Problem gestoßen. Doch erstmal was ich gemacht habe: Das kleine Testprogramm unten bekommt über einen Interrupt ein Phillips RC5 Datenpaket (noch Manchestercodiert) sowie ein Readyflag. Hier ersetzt durch die beiden Konstanten. Die erste If() soll eine LED einschalten, sobald der gewünschte Befehl gekommen ist und wieder ausschalten sobald was anderes kommt. Funktioniert auch. Die dann folgende For Wiederholung soll das in "receive" empfangene Datenpaket seriell über ein Portpin ausgeben. Funktioniert für sich selbst auch.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
Problem ist nun, sobald in der for Wiederholung die else Bedingung ausgeführt wird, werden in LATB alle Ausgangspins gelöscht und LATB2 entsprechend der Zuweisung gelöscht bzw. gesetzt. Hääää??? Warum verhält sich ein BCF 0xd, 0x2 hier anderes als woanders im Quellcode??? Ich hoffe, ihr habt einigermaßen verstanden, wo mein Problem liegt... Das ganze Projekt habe ich als Zip angehängt, bitte mich nicht hängen, ich weiß das es noch etwas chaotisch ist... Compiler ist der Hi Tech V9.71a Lite und IDE ist MPLAB 8.56 Danke schonmal für eure Hilfe! Gruß Martin