Witam,
Próbuje zaimplementować crc16, korzystając z biblioteki avr-libc, z funkcji <util/crc16.h>
opis tej funkcji to:
avr/crc16.h
Zawiera funkcje obliczające 16 bitowe CRC.
unsigned int _crc16_update(unsigned int __crc, unsigned char __data)
Oblicza 16 bitowe CRC według standardu CRC16 (x^16 + x^15 + x^2 + 1).
Robie to tak:
Kompilacja zwraca mi:
../modbus.c:197: warning: passing argument 2 of '_crc16_update' makes integer from pointer without a cast
Nie wiem czy te ostrzeżenia są bardzo znaczące czy mogą zostać
Narazie nie mam jak sprawdzić czy działa, bo program będę mogł wgrać w procka dopiero w weekend, a do tego czasu potrzebuje miec prawie działający program.
Czy ktoś używał tej funkcji, działa poprawnie? Prosze o opinie i porady.
Pozdrawiam
Próbuje zaimplementować crc16, korzystając z biblioteki avr-libc, z funkcji <util/crc16.h>
opis tej funkcji to:
avr/crc16.h
Zawiera funkcje obliczające 16 bitowe CRC.
unsigned int _crc16_update(unsigned int __crc, unsigned char __data)
Oblicza 16 bitowe CRC według standardu CRC16 (x^16 + x^15 + x^2 + 1).
Robie to tak:
#include <util/crc16.h>
.
.
unsigned int crc=0;
unsigned char data[] = { 0x02, 0x1c, 0xb8, 0x01, 0, 0, 0, 0xa2 };
crc=_crc16_update(crc,data);
.
.Kompilacja zwraca mi:
../modbus.c:197: warning: passing argument 2 of '_crc16_update' makes integer from pointer without a cast
Nie wiem czy te ostrzeżenia są bardzo znaczące czy mogą zostać
Narazie nie mam jak sprawdzić czy działa, bo program będę mogł wgrać w procka dopiero w weekend, a do tego czasu potrzebuje miec prawie działający program.
Czy ktoś używał tej funkcji, działa poprawnie? Prosze o opinie i porady.
Pozdrawiam