Rotacia v C pre 8051

Richard Kaliciak richard.kaliciak
Středa Březen 17 12:01:43 CET 2004


Dobry den!

Mam maly problem. Ako napisem v C pre 8051 (Keil ľVision 2) tento kusok
programu bez toho, aby som pouzil #pragma ASM? 


**********************************************************
SendByte:  MOV     BitCnt,#8      ;Set bit count.

SBLoop:    RLC     A              ;Send one data bit.
           MOV     SDAPin,C       ;Put data bit on pin.
           DJNZ    BitCnt,SBloop  ;Repeat until all bits sent.
**********************************************************


Zatial to mam vyriesene takto:

**********************************************************
	BitCnt = 8;		// Set bit count.

	for( BitCnt = 8; BitCnt >0; BitCnt -- )
	{
#pragma ASM
		RLC     A
		MOV     SDAPin,C
#pragma endasm
	};
**********************************************************

Ide mi o instrukciu RLC. V manualy ku Keilu je popisana funkcia _crol_ a
_cror_, ktora robi rotaciu, ale vysledok je znova char. Ja by som
potreboval nejaku funkciu zodpovedajucu RLC alebo nieco, co by malo ako
vystup char(hodnota po rotacii) a bit (Carry).

Dakujem za tipy.

R. Kaliciak





Další informace o konferenci Hw-list