kopia lustrzana https://github.com/SP8EBC/ParaTNC
backport max31865 driver from tatry variant
rodzic
a733712e1e
commit
d0b73e9f75
|
@ -24,7 +24,7 @@ typedef enum max31865_qf_t {
|
|||
|
||||
extern uint8_t max31865_current_fault_status;
|
||||
|
||||
void max31865_init(uint8_t rdt_type, uint8_t reference_resistor);
|
||||
void max31865_init(uint8_t rdt_type, uint8_t reference_resistor_index);
|
||||
void max31865_init_average(void);
|
||||
void max31865_pool(void);
|
||||
int32_t max31865_get_pt100_result();
|
||||
|
|
|
@ -76,6 +76,11 @@ max31865_pool_state_t max31865_current_state = MAX_UNINITIALIZED;
|
|||
*/
|
||||
float max31865_rref = 0;
|
||||
|
||||
/**
|
||||
* And it's index from the table
|
||||
*/
|
||||
uint8_t max31865_rref_index = 0;
|
||||
|
||||
/**
|
||||
* This variable is incremented from 0 up to 9 to pause measurement
|
||||
* state machine into MAX_SHUTDOWN state. When it reach 9 measurement
|
||||
|
@ -151,6 +156,7 @@ max31865_qf_t max31865_quality_factor = MAX_QF_UNKNOWN;
|
|||
*
|
||||
*/
|
||||
uint8_t max31865_measurements_counter = 0;
|
||||
uint8_t max31865_merasurements_error_counter = 0;
|
||||
|
||||
int_average_t max31865_average;
|
||||
|
||||
|
@ -219,7 +225,7 @@ static void max31865_send_config_register(void) {
|
|||
}
|
||||
}
|
||||
|
||||
void max31865_init(uint8_t rdt_type, uint8_t reference_resistor) {
|
||||
void max31865_init(uint8_t rdt_type, uint8_t reference_resistor_index) {
|
||||
|
||||
uint8_t * rx_data;
|
||||
|
||||
|
@ -235,15 +241,17 @@ void max31865_init(uint8_t rdt_type, uint8_t reference_resistor) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (reference_resistor > 31) {
|
||||
if (reference_resistor_index > 31) {
|
||||
max31865_current_state = MAX_UNINITIALIZED;
|
||||
|
||||
return;
|
||||
}
|
||||
else {
|
||||
max31865_rref = max31865_rref_lookup_table[reference_resistor];
|
||||
max31865_rref = max31865_rref_lookup_table[reference_resistor_index];
|
||||
}
|
||||
|
||||
max31865_rref_index = reference_resistor_index;
|
||||
|
||||
// set filter to 50Hz
|
||||
max31865_filter_select = 1;
|
||||
|
||||
|
@ -287,10 +295,10 @@ void max31865_pool(void) {
|
|||
case MAX_IDLE:
|
||||
// MAX31865 is powered up but not initialized
|
||||
if (max31865_rdt_sensor_type == 1) {
|
||||
max31865_init(MAX_3WIRE, max31865_rref);
|
||||
max31865_init(MAX_3WIRE, max31865_rref_index);
|
||||
}
|
||||
else {
|
||||
max31865_init(MAX_4WIRE, max31865_rref);
|
||||
max31865_init(MAX_4WIRE, max31865_rref_index);
|
||||
}
|
||||
|
||||
if (max31865_ok == 1) {
|
||||
|
@ -374,6 +382,8 @@ void max31865_pool(void) {
|
|||
max31865_quality_factor = MAX_QF_FULL;
|
||||
}
|
||||
else {
|
||||
max31865_merasurements_error_counter++;
|
||||
|
||||
max31865_current_state = MAX_ERROR;
|
||||
|
||||
max31865_quality_factor = MAX_QF_NOT_AVALIABLE;
|
||||
|
@ -383,18 +393,18 @@ void max31865_pool(void) {
|
|||
max31865_vbias = 0;
|
||||
|
||||
// this function may change 'max31865_current_state' internally due to errors
|
||||
max31865_send_config_register();
|
||||
//max31865_send_config_register();
|
||||
|
||||
max31865_shutdown_ticks = 0;
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
case MAX_SHUTDOWN:
|
||||
// MAX31865 is powered up and initialized but PT bias is disabled
|
||||
// and no measurement is ongoing
|
||||
if (max31865_shutdown_ticks++ > MAX31865_INTERVAL) {
|
||||
max31865_current_state = MAX_INITIALIZED;
|
||||
|
||||
max31865_current_state = MAX_IDLE; //
|
||||
|
||||
max31865_shutdown_ticks = 0;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue