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