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