CRC and Pow board profile

This commit is contained in:
Gunnar Skjold 2024-03-17 09:14:02 +01:00
parent bdba6a0254
commit dfca5e37dc
3 changed files with 30 additions and 2 deletions

View File

@ -12,5 +12,6 @@
uint16_t crc16(const uint8_t* p, int len);
uint16_t crc16_x25(const uint8_t* p, int len);
uint16_t crc16_ccit(const uint8_t* p, int len);
#endif

View File

@ -21,7 +21,7 @@ uint16_t crc16 (const uint8_t *p, int len) {
uint16_t crc = 0;
while (len--) {
int i;
uint8_t i;
crc ^= *p++;
for (i = 0 ; i < 8 ; ++i) {
if (crc & 1)
@ -32,4 +32,22 @@ uint16_t crc16 (const uint8_t *p, int len) {
}
return crc;
}
}
uint16_t crc16_ccit(const uint8_t *p, int len)
{
int crc;
char i;
crc = 0;
while (len--) {
uint8_t i;
crc = crc ^ (uint8_t) *p++ << 8;
for (i = 0 ; i < 8 ; ++i) {
if (crc & 0x8000)
crc = crc << 1 ^ 0x1021;
else
crc = crc << 1;
}
}
return (crc);
}

View File

@ -346,6 +346,15 @@ void setup() {
Serial.flush();
Serial.end();
config.getMeterConfig(meterConfig);
switch(sysConfig.boardType) {
case 5:
case 6:
case 7:
meterConfig.rxPin = 16;
meterConfig.txPin = 9;
break;
}
if(meterConfig.rxPin == 3) {
shared = true;
#if defined(ESP8266)