Holger W. schrieb:
> Ich nutz den C18, nur ganz selten den HiTec.
> Optimiert der evtl die leere While Schleife weg ?
Nein tut er nicht. Hier ein Ausschnitt aus dem Assembler Code.
1 | ...
|
2 |
|
3 | 20: L_RED = 1; //rotes LED leuchtet -> OK
|
4 | 07F5 1506 BSF 0x6, 0x2
|
5 | 21: L_GREEN = 1; //rotes LED löscht aus! Grünes leuchtet
|
6 | 07F6 1586 BSF 0x6, 0x3
|
7 | 22: L_BLUE=1; //grünes LED löscht aus! Blaues leuchtet
|
8 | 07F7 1606 BSF 0x6, 0x4
|
9 | 23:
|
10 | 24: PORTB = 0x00; //PORTB reseten
|
11 | 07F8 0186 CLRF 0x6
|
12 | 25: PORTB = 0b00011100; //LED leuchtet weiss!
|
13 | 07F9 301C MOVLW 0x1c
|
14 | 07FA 0086 MOVWF 0x6
|
15 | 07FB 2FFC GOTO 0x7fc
|
16 | 26:
|
17 | 27:
|
18 | 28: while(1)//Endlosschlaufe
|
19 | 07FC 2FFC GOTO 0x7fc
|
20 | 29: {
|
21 | 30: }
|
22 | 31: }
|
23 | 07FD 120A BCF 0xa, 0x4
|
24 |
|
25 | ...
|
Hier ist interessant, dass er codetechnisch nur ein Bit setzt im PORTB
Register. Funkt da evt ein anderes Modul dazwischen?
1 | 21: L_GREEN = 1; //rotes LED löscht aus! Grünes leuchtet
|
2 | 07F6 1586 BSF 0x6, 0x3
|