Gast
#182541
Ich habe ein LCD mit einem T6963 Controller über das XMEM Interface an
einen mega8515 angeschlossen.
Die festen Adressen habe so definiert:
#define LCD_COM _SFR_MEM8(32768)
#define LCD_DAT _SFR_MEM8(32768+512)
Gibt es eine bessere Lösung ? Das war zumindest die einzige, die ich in
der Anleitung gefunden habe.
Wenn ich jetzt warte bis das LCD bereit ist, übersetzt mir der Compiler
diese Zeile so:
while ((LCD_COM&3)!=3);
26 .L2:
27 0000 8091 0080 lds r24,-32768
28 0004 9927 clr r25
29 0006 8370 andi r24,lo8(3)
30 0008 9070 andi r25,hi8(3)
31 000a 0397 sbiw r24,3
32 000c C9F7 brne .L2
Wieso verwendet der Compiler 16bit für den Vergleich, wo doch ein Byte
ausreichen würde ? Kann man den Compiler irgendwie dazu bringen,
das so zu übersetzen:
lds r24,-32768
cpi r24, 3
brne .L2
Das wäre nämlich doppelt so schnel...