Rotacia v C pre 8051

David Burda d.burda
Středa Březen 17 12:01:43 CET 2004


Prehlednejsi mozna ale musis vic psat :-))))))))

> Neni trochu prehlednejsi ACC = ACC << 1, resp. ACC <<= 1?
>
> S pozdravem
> Lukas Grepl
>
> > Reseni :
> >  **********************************************************
> >  for( BitCnt =0; BitCnt <8; BitCnt++ )
> >  {
> >  ACC+=ACC;
> >  SDAPin=CY;
> >   };
> >  **********************************************************
> >
> >
> >
> > > 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