c + pic
Miroslav Draxal
evik na volny.cz
Středa Únor 29 13:05:10 CET 2012
Dobrý den,
Mejme strukturu o délce 1bytu
----------------------------------------------------------------------------
-------
typedef struct _keyPress_flag
{ unsigned left
:1;
unsigned right
:1;
unsigned up
:1;
unsigned down
:1;
unsigned ok
:1;
unsigned nc1
:1;
unsigned nc2
:1;
unsigned Press
:1;
}_keyPress;
_keyPress keyPress;
uchar* pkeyPress = &keyPress; // bylo typedef unsigned char uchar
if (!(*pkeyPress & keyMap)) // o toto se jedná
c to přeloží jako
uchar* pkeyPress = &keyPress;
0802 0E0E MOVLW 0xe
0804 0100 MOVLB 0
0806 6F1A MOVWF 0x1a, BANKED
0808 0E00 MOVLW 0
080A 6B1B CLRF 0x1b, BANKED
if (!(*pkeyPress & keyMap))
0810 C01A MOVFF 0x1a, 0xfe9
0812 FFE9 NOP
0814 C01B MOVFF 0x1b, 0xfea
0816 FFEA NOP
0818 50EF MOVF 0xfef, W, ACCESS
081A 0BEA ANDLW 0xea
081C E108 BNZ 0x82e
Chodí to to je. Optimalizace podle mě zapnuté všechny. Jak to napsat v C,
pokud to jde, a vyhnout se asm, aby si to přeložilo jako
MOVF 0x0e,W,ACCESS
ANDLW 0Xea
BNZ 0x82e
Je to přeložený v HI-TECH C PRO for the PIC18 MCU Family V9.63PL3 PRO
Díky Míra
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20120229/0c54d099/attachment.htm>
Další informace o konferenci Hw-list