From db6f03ef97cef4ac87f0730b36d4aa745d2e2752 Mon Sep 17 00:00:00 2001 From: Eggert Jung Date: Sat, 2 Apr 2022 16:25:32 +0200 Subject: [PATCH] fix modbus timeout --- kraftsensor.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kraftsensor.c b/kraftsensor.c index 7823db3..0009332 100644 --- a/kraftsensor.c +++ b/kraftsensor.c @@ -34,7 +34,7 @@ void do_kraftsensor(){ /* read 2 16bit values and merge to 32bit signed integer */ readReg(1,0,2); - if(wait_receive(2, m_data, 10)){ + if(wait_receive(2, m_data, 100)){ kraftsensor_valid = 0; printf("modbus error\n\r"); } @@ -73,8 +73,9 @@ uint8_t wait_receive(uint8_t len, uint16_t dest[], uint8_t timeout){ while(!receiveOkay && breaker) { //wait for client response, time out after 1s breaker--; _delay_ms(1); + if(breaker==0) + return -1; } - printf("breaker: %d\n\r", breaker); if(receiveOkay) { //if this fails, there was either no response or a crc error if(rxbuffer[1]&0x80) { //client responded with an error code