modbus/kraftsensor cleanup
This commit is contained in:
@@ -29,10 +29,7 @@ void kraftsensor_init(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void do_kraftsensor(){
|
void do_kraftsensor(){
|
||||||
static int32_t last_read;
|
|
||||||
static int32_t old_value;
|
|
||||||
uint16_t m_data[4];
|
uint16_t m_data[4];
|
||||||
int32_t kraftsensor_read;
|
|
||||||
|
|
||||||
/* read 2 16bit values and merge to 32bit signed integer */
|
/* read 2 16bit values and merge to 32bit signed integer */
|
||||||
readReg(1,0,2);
|
readReg(1,0,2);
|
||||||
@@ -45,31 +42,12 @@ void do_kraftsensor(){
|
|||||||
int32_t tmp = (uint32_t)m_data[1]<<16;
|
int32_t tmp = (uint32_t)m_data[1]<<16;
|
||||||
tmp |= m_data[0];
|
tmp |= m_data[0];
|
||||||
|
|
||||||
//kraftsensor_value = tmp;
|
|
||||||
/* conversion magic to milliNewton */
|
/* conversion magic to milliNewton */
|
||||||
kraftsensor_value = (((tmp /* + 539363*/)*9.81)/177.380)+kraftsensor_zero_offset;
|
kraftsensor_value = (((tmp /* + 539363*/)*9.81)/177.380)+kraftsensor_zero_offset;
|
||||||
|
}
|
||||||
//if(abs(kraftsensor_read - old_value) > 10000){
|
|
||||||
// if(abs(last_read - kraftsensor_read) > 10000){
|
|
||||||
// kraftsensor_value = old_value;
|
|
||||||
// //printf("delta: %ld\tvalue:%ld\n", kraftsensor_read - old_value, kraftsensor_read);
|
|
||||||
// //printf("spike\n");
|
|
||||||
// }
|
|
||||||
// else{
|
|
||||||
// kraftsensor_value = kraftsensor_read;
|
|
||||||
// //printf("jump\n");
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
//else{
|
|
||||||
// kraftsensor_value = kraftsensor_read;
|
|
||||||
//}
|
|
||||||
//last_read = kraftsensor_read;
|
|
||||||
//old_value = kraftsensor_value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
int8_t wait_receive(uint8_t len, uint16_t dest[], uint8_t timeout){
|
||||||
|
|
||||||
uint8_t wait_receive(uint8_t len, uint16_t dest[], uint8_t timeout){
|
|
||||||
|
|
||||||
uint8_t breaker = timeout;
|
uint8_t breaker = timeout;
|
||||||
while(!receiveOkay && breaker) { //wait for client response, time out after 1s
|
while(!receiveOkay && breaker) { //wait for client response, time out after 1s
|
||||||
@@ -94,6 +72,23 @@ uint8_t wait_receive(uint8_t len, uint16_t dest[], uint8_t timeout){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int8_t wait_write(uint8_t timeout){
|
||||||
|
uint8_t breaker = timeout;
|
||||||
|
while(!receiveOkay && breaker) { //wait for client response, time out after 1s
|
||||||
|
breaker--;
|
||||||
|
_delay_ms(1);
|
||||||
|
if(breaker==0)
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(receiveOkay) { //if this fails, there was either no response or a crc error
|
||||||
|
if(rxbuffer[1]&0x80) { //client responded with an error code
|
||||||
|
return rxbuffer[1]&0x80;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
void readReg(uint8_t slaveid, uint16_t address, uint8_t amount) {
|
void readReg(uint8_t slaveid, uint16_t address, uint8_t amount) {
|
||||||
_delay_ms(2);
|
_delay_ms(2);
|
||||||
rxbuffer[0]=slaveid;
|
rxbuffer[0]=slaveid;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ extern int32_t kraftsensor_zero_offset;
|
|||||||
void timer2_init();
|
void timer2_init();
|
||||||
void kraftsensor_init();
|
void kraftsensor_init();
|
||||||
void do_kraftsensor(void);
|
void do_kraftsensor(void);
|
||||||
uint8_t wait_receive(uint8_t len, uint16_t dest[], uint8_t timeout);
|
int8_t wait_receive(uint8_t len, uint16_t dest[], uint8_t timeout);
|
||||||
void readReg(uint8_t slaveid, uint16_t address, uint8_t amount);
|
void readReg(uint8_t slaveid, uint16_t address, uint8_t amount);
|
||||||
void writeReg(uint8_t slaveid, uint16_t address, uint16_t value);
|
void writeReg(uint8_t slaveid, uint16_t address, uint16_t value);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user