[elektro] C18 kérdés
potyo
potyo.ada at gmail.com
Thu Sep 12 14:31:52 CEST 2013
Jajj, az ilyentől áll égnek a hajam, miért nem lehet odaírni a bit nevét 0
és 1 helyett, hogy olvasható legyen? Pl. BSF STATUS, C, ACCESS a BSF
STATUS, 0, 0 helyett?
Valószínűleg az a gondja, hogy a banksel az makró, nem pedig asm utasítás,
és nincs definiálva a makró. Vagy mi a hibaüzenet?
Egyébként miért asm betéttel csinálod a crc-t? Erre létezik C-s megoldás,
vélhetően nemis lesz rosszabb kód, mint az asm-es
2013. szeptember 12. 14:23 Tibor Kovács írta, <kovacs.tibor7909 at gmail.com>:
> Így már majdnem lefordul, csak a BANKSEL-t nem tudom vele megetetni...
>
> void Crc8bit(void)
> {
> _asm
> BANKSEL iobyte
> MOVF iobyte, 0, 0
> MOVWF b_crcv4, 0
> CLRF b_crcv2, 0
> BSF b_crcv2, 3, 0
> crc8c:
> MOVF b_crcv4, 0, 0
> XORWF b_crc8, 0, 0
> MOVWF b_crcv3, 0
> RRCF b_crcv3, 1, 0
> MOVF b_crc8, 0, 0
> BTFSC STATUS, 0, 0
> XORLW c_crc8c
> MOVWF b_crcv3, 0
> RRCF b_crcv3, 1, 0
> MOVWF b_crc8, 0
> RRCF b_crcv4, 1, 0
> DECFSZ b_crcv2, 1, 0
> GOTO crc8c
> BANKSEL PORTA
> RETURN 0
> _endasm
> }
>
>
> 2013. szeptember 12. 13:04 Tibor Kovács írta, <kovacs.tibor7909 at gmail.com
> >:
>
> >
> > Egy ujabb buktató.
> > Van neküknk régebbről, még asm-es korból egy jól bevált crc-r rutin, amit
> > eddig basicbe be tudtam szúrni, de itt C-ben az istennek sem fogadja el.
> > Syntax error-t dob vissza... esetleg nem jól használom az asm beszúrást?
> >
> > void Crc8bit(void)
> > {
> > _asm
> > BANKSEL iobyte
> > MOVF iobyte,W
> > MOVWF b_crcv4
> > CLRF b_crcv2
> > BSF b_crcv2,3
> > crc8c:
> > MOVF b_crcv4,W
> > XORWF b_crc8,W
> > MOVWF b_crcv3
> > RRCF b_crcv3,1
> > MOVF b_crc8,W
> > BTFSC STATUS,0
> > XORLW c_crc8c
> > MOVWF b_crcv3
> > RRCF b_crcv3,W
> > MOVWF b_crc8
> > RRCF b_crcv4,1
> > DECFSZ b_crcv2,1
> > GOTO crc8c
> > BANKSEL porta
> > RETURN
> > _endasm
> > }
> >
> >
More information about the Elektro
mailing list