Simulace USARTu na PIC a problemy MAX232
jiri@bezstarosti.cz
jiri
Středa Březen 17 12:06:20 CET 2004
Ahoj Pepo,
>Jenom pro zajimavost - v jednom programu jsem dosel k takoveto konstrukci:
>
> BTFSS _RMWAIT
> INCFSZ PREMIN,W
> MOVF SEC,W
> ANDLW 0x0F
> BTFSC _Z
> BSF LEDCNT,2
>
>Jinym slovy:
>
>if (!RMWAIT && (PREMIN == -1) || (SEC%16 != 0)) LEDCNT=4;
>
>Tak co na to HI-Tech? :-)
;TEST.C: 10: if ( (!RmWait) && (PreMin == -1) || (Sec%16 ==0) )
bcf 3,5
bcf 3,6
movf _RmWait
btfsc 3,2
incf _PreMin,w
btfsc 3,2
goto u50
movf _Sec,w
andlw 15
btfss 3,2
goto l1
u50
line 11
;TEST.C: 11: LedCnt=4;
movlw 4
movwf _LedCnt
line 12
;TEST.C: 12: }
l1
ljmp start
Jedine co tomu asi vytknut je skutocnost, ze optimalizacia nepozna v tomto
kontexte INCFSZ a urobi namiesto toho dve instrukcie. Ak ale napisem len
if(PreMin == -1), tak tam ju uz generuje spravne. Goto u50 je navyse,
pretoze v C musi byt jednoznacne kam skocit, na rozdiel od konstrukcie v
asm, kde skok na ANDLW uz nema vplyv na vyhodnotenie celkovej podmienky.
A.
_________________________________________________________________
MSN Photos is the easiest way to share and print your photos:
http://photos.msn.com/support/worldwide.aspx
Další informace o konferenci Hw-list