Привет всем . Ардуино Нужно написать два скетча и подробно расписать для подсчёта контрольной суммы CRC за вознаграждения , кому интересно пишите на почту. evgenzheka@qip.ru Есть устройства которое читает данные с контрольной суммой. Нужен код когда я изменяю любое значения , контрольная сумма меняется автоматически. код расечатать? void setup() { Serial.begin(19200); } void loop() { Serial.write(62); Serial.write(1); Serial.write(7); Serial.write(19); Serial.write(83); Serial.write(0); Serial.write(252); Serial.write(20); Serial.write(183); // Контрольная сумма 100110001 P(x) = x8+ x5+ x4+ x0 delay(1000); } А во втором коде я не знаю по какой CRC она рассчитывается код расечатать? void setup() { Serial.begin(9600); } void loop() { Serial.println("S1B2F02 A010540.00 C0165010.000 E0012143.0 G077.0 H1200 I+050 J060 K02220.0 L02221.0 M02222.0 N02223.0 O02224.0 P01000000 Z6CFE"); delay(1000); }
Привет всем . Ардуино Нужно написать два скетча и подробно расписать для подсчёта контрольной суммы CRC за вознаграждения , кому интересно пишите на почту. evgenzheka@qip.ru Есть устройства которое читает данные с контрольной суммой. Нужен код когда я изменяю любое значения , контрольная сумма меняется автоматически. код расечатать? void setup() { Serial.begin(19200); } void loop() { Serial.write(62); Serial.write(1); Serial.write(7); Serial.write(19); Serial.write(83); Serial.write(0); Serial.write(252); Serial.write(20); Serial.write(183); // Контрольная сумма 100110001 P(x) = x8+ x5+ x4+ x0 delay(1000); } А во втором коде я не знаю по какой CRC она рассчитывается код расечатать? void setup() { Serial.begin(9600); } void loop() { Serial.println("S1B2F02 A010540.00 C0165010.000 E0012143.0 G077.0 H1200 I+050 J060 K02220.0 L02221.0 M02222.0 N02223.0 O02224.0 P01000000 Z6CFE"); delay(1000); }
Привет всем . Ардуино Нужно написать два скетча и подробно расписать для подсчёта контрольной суммы CRC за вознаграждения , кому интересно пишите на почту. evgenzheka@qip.ru Есть устройства которое читает данные с контрольной суммой. Нужен код когда я изменяю любое значения , контрольная сумма меняется автоматически. код расечатать? void setup() { Serial.begin(19200); } void loop() { Serial.write(62); Serial.write(1); Serial.write(7); Serial.write(19); Serial.write(83); Serial.write(0); Serial.write(252); Serial.write(20); Serial.write(183); // Контрольная сумма 100110001 P(x) = x8+ x5+ x4+ x0 delay(1000); } А во втором коде я не знаю по какой CRC она рассчитывается код расечатать? void setup() { Serial.begin(9600); } void loop() { Serial.println("S1B2F02 A010540.00 C0165010.000 E0012143.0 G077.0 H1200 I+050 J060 K02220.0 L02221.0 M02222.0 N02223.0 O02224.0 P01000000 Z6CFE"); delay(1000); }
Привет всем . Ардуино Нужно написать два скетча и подробно расписать для подсчёта контрольной суммы CRC за вознаграждения , кому интересно пишите на почту. evgenzheka@qip.ru Есть устройства которое читает данные с контрольной суммой. Нужен код когда я изменяю любое значения , контрольная сумма меняется автоматически. код расечатать? void setup() { Serial.begin(19200); } void loop() { Serial.write(62); Serial.write(1); Serial.write(7); Serial.write(19); Serial.write(83); Serial.write(0); Serial.write(252); Serial.write(20); Serial.write(183); // Контрольная сумма 100110001 P(x) = x8+ x5+ x4+ x0 delay(1000); } А во втором коде я не знаю по какой CRC она рассчитывается код расечатать? void setup() { Serial.begin(9600); } void loop() { Serial.println("S1B2F02 A010540.00 C0165010.000 E0012143.0 G077.0 H1200 I+050 J060 K02220.0 L02221.0 M02222.0 N02223.0 O02224.0 P01000000 Z6CFE"); delay(1000); }
в первом коде я знаю что CRC8 , а во втором не знаю, мне важно чтобы устройство читало те значения которые я посылаю, приведённые примеры в коде устройства читает но стоит мне поменять любое число и оно его не принимает поскольку контрольная сумма не совпадает
в первом коде я знаю что CRC8 , а во втором не знаю, мне важно чтобы устройство читало те значения которые я посылаю, приведённые примеры в коде устройства читает но стоит мне поменять любое число и оно его не принимает поскольку контрольная сумма не совпадает
Сделайте функцию-обертку типа такой Код (Text): byte crc8(char *str) { if (!str) return 0; byte result = 0; int index = 0; while (str[index]) { result ^= str[index++]; for (byte i = 0; i < 8; i++) { result = result & 0x80 ? (result << 1) ^ 0x31 : result << 1; } } return result; } byte print(char *str) { Serial.print(str); return crc8(str); }
Вы можете оба кода рабочих целиком написать за вознаграждения для ардуино и все строки расписать что они делают.