co to jest "uzupełnienie dwójkowe" LRC

Oct 08, 2004 9 Replies

za cholerę nie mogę znaleźć co to takiego. chodzi oczywiście o MODBUS w trybie ASCII. może ktoś będzie tak łaskaw i da przykład ;)



PC



Sprawdz tam. Mi to pomogło. Tylko należy pamietac o tym iż sumujemy bit po bicie ale bez przeniesienia. To jest bardzo ważne.

formatting link
Pozdrawiam Andrzej

Cos mi sie kolacze z metod numerycznych: traktujesz najstrszy bit tak, jakby byl ujemny, tj. przy 4-ro bitowym slowie:

1001 taka kombinacja ma wartosc nie 9 a -7. O to chodzi?

właśnie problem polega na tym, że ja nie mam pojęcia. to musi być coś banalnego ale hasło "uzupełnienie dwójkowe" w googlach nie daje żadnej sensownej odpowiedzi.

PC

A jesteś pewny, że w MODBUS nie stosuje się sumy CRC ? Bo jeśli chcesz do modbusa mam gotowca z tą sumą.

CRC jest w trybie RTU a ja póki co analizuję ASCII. oczywiście jak masz RTU to też chętnie rzucę okiem.

PC

liczenie CRC dla MODBUS:

static unsigned int crc(unsigned char* p,int cnt) { int j; unsigned int reg_crc=0xffff;

while(cnt--) { reg_crc^=*p++; for(j=0;j<8;j++) { if(reg_crc & 0x01) { reg_crc=(reg_crc>>1)^0xa001; } else { reg_crc=reg_crc>>1; };

} } return reg_crc;

}

Pewno nieoptymalne, ale ważne, że działa.

Użytkownik "Pablo C" <pch[ciach]@poczta.onet.pl> napisał w wiadomości news:ck6k0g$79d$ snipped-for-privacy@atlantis.news.tpi.pl

AFAIR: Longitudinal Redundancy Check

formatting link

Sprawdz tam. Mi to pomogło. Tylko należy pamietac o tym iż sumujemy bit po bicie ale bez przeniesienia. To jest bardzo ważne.

formatting link
Pozdrawiam Andrzej

Sprawdz tam. Mi to pomogło. Tylko należy pamietac o tym iż sumujemy bit po bicie ale bez przeniesienia. To jest bardzo ważne.

formatting link
Pozdrawiam Andrzej

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required