|
|
|
|
@ -54,11 +54,11 @@ int __attribute__((noreturn)) main(void) {
|
|
|
|
|
|
|
|
|
|
muxer_set(1);
|
|
|
|
|
|
|
|
|
|
uint8_t active_sensor = 0;
|
|
|
|
|
int16_t data;
|
|
|
|
|
for(;;){
|
|
|
|
|
|
|
|
|
|
// measure temps 5*2 times
|
|
|
|
|
dbgLog("starting temp measuring");
|
|
|
|
|
for(int i=0; i<5; i++) {
|
|
|
|
|
for(int active_sensor=0; active_sensor<2; active_sensor++) { // only measuring two probes atm
|
|
|
|
|
muxer_set(active_sensor);
|
|
|
|
|
@ -67,17 +67,23 @@ int __attribute__((noreturn)) main(void) {
|
|
|
|
|
while(!mcpadc_has_new_data()) _delay_ms(1);
|
|
|
|
|
|
|
|
|
|
data = mcpadc_get_data();
|
|
|
|
|
|
|
|
|
|
dbgLog("measured data %i, now filtering",data);
|
|
|
|
|
float f = filter_voltage_to_temp(((float)data) * 0.000625 );
|
|
|
|
|
filter_average_input(active_sensor, f);
|
|
|
|
|
if(filter_average_done(active_sensor,16)){
|
|
|
|
|
filter_average_noise(active_sensor);
|
|
|
|
|
temperatures[active_sensor] = filter_average_result(active_sensor);
|
|
|
|
|
}
|
|
|
|
|
dbgLog("finished filtering, now have %3.3f°C",temperatures[active_sensor]);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dbgLog("now measuring offsets");
|
|
|
|
|
// measure 2 offsets
|
|
|
|
|
for(int active_sensor=0; active_sensor<2; active_sensor++) { // only measuring two offsets atm
|
|
|
|
|
dbgLog("active sensor: %i",active_sensor);
|
|
|
|
|
muxer_set(active_sensor);
|
|
|
|
|
offset_measure_start(active_sensor);
|
|
|
|
|
while(!mcpadc_has_new_data()) _delay_ms(1);
|
|
|
|
|
@ -85,65 +91,34 @@ int __attribute__((noreturn)) main(void) {
|
|
|
|
|
while(!mcpadc_has_new_data()) _delay_ms(1);
|
|
|
|
|
|
|
|
|
|
data = mcpadc_get_data();
|
|
|
|
|
dbgLog("retrieved offset data %i", data);
|
|
|
|
|
// TODO: what to do with the offset?
|
|
|
|
|
|
|
|
|
|
offset_measure_stop();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SOFTTIMER(1,8000) { // maybe measure coldjunction comp
|
|
|
|
|
muxer_set(23); // TODO: channel for ntc?!
|
|
|
|
|
dbgLog("would measure cold-junction?!");
|
|
|
|
|
/* muxer_set(23); // TODO: channel for ntc?! */
|
|
|
|
|
|
|
|
|
|
// first measure ntc offset?! maybe?
|
|
|
|
|
offset_measure_start(active_sensor);
|
|
|
|
|
while(!mcpadc_has_new_data()) _delay_ms(1);
|
|
|
|
|
mcpadc_get_data(); // first data after switch to trash
|
|
|
|
|
while(!mcpadc_has_new_data()) _delay_ms(1);
|
|
|
|
|
/* // first measure ntc offset?! maybe? */
|
|
|
|
|
/* offset_measure_start(active_sensor); */
|
|
|
|
|
/* while(!mcpadc_has_new_data()) _delay_ms(1); */
|
|
|
|
|
/* mcpadc_get_data(); // first data after switch to trash */
|
|
|
|
|
/* while(!mcpadc_has_new_data()) _delay_ms(1); */
|
|
|
|
|
|
|
|
|
|
data = mcpadc_get_data();
|
|
|
|
|
offset_measure_stop();
|
|
|
|
|
/* data = mcpadc_get_data(); */
|
|
|
|
|
/* offset_measure_stop(); */
|
|
|
|
|
|
|
|
|
|
// now measure temp-data
|
|
|
|
|
while(!mcpadc_has_new_data()) _delay_ms(1);
|
|
|
|
|
mcpadc_get_data(); // first data after switch to trash
|
|
|
|
|
while(!mcpadc_has_new_data()) _delay_ms(1);
|
|
|
|
|
/* // now measure temp-data */
|
|
|
|
|
/* while(!mcpadc_has_new_data()) _delay_ms(1); */
|
|
|
|
|
/* mcpadc_get_data(); // first data after switch to trash */
|
|
|
|
|
/* while(!mcpadc_has_new_data()) _delay_ms(1); */
|
|
|
|
|
|
|
|
|
|
data = mcpadc_get_data();
|
|
|
|
|
/* data = mcpadc_get_data(); */
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* SOFTTIMER(1,10) { */
|
|
|
|
|
/* if(mcpadc_has_new_data()) { */
|
|
|
|
|
/* int16_t data = mcpadc_get_data(); */
|
|
|
|
|
/* float f = filter_voltage_to_temp( */
|
|
|
|
|
/* ((float)data) * 0.000625 ); */
|
|
|
|
|
/* // total gain is 100 (50 from INA, 2 from ADC) */
|
|
|
|
|
/* // full signed range on ADC is +-2.048V */
|
|
|
|
|
/* // with 16bit, 1LSB is worth 0.0625mV */
|
|
|
|
|
/* // with the gain added in that's 0.000625mV */
|
|
|
|
|
|
|
|
|
|
/* filter_average_input(active_sensor, f); */
|
|
|
|
|
/* if(filter_average_done(active_sensor,16)){ */
|
|
|
|
|
/* float noise = filter_average_noise(active_sensor); */
|
|
|
|
|
/* float temp = filter_average_result(active_sensor); */
|
|
|
|
|
/* dbgLog("temp: %3.3f°C (lastval %i), noise: %e\n",temp, data, noise); */
|
|
|
|
|
/* } */
|
|
|
|
|
/* } */
|
|
|
|
|
/* } */
|
|
|
|
|
|
|
|
|
|
/* SOFTTIMER(3,4000){ */
|
|
|
|
|
/* static uint8_t toggle; */
|
|
|
|
|
/* if(toggle){ */
|
|
|
|
|
/* offset_measure_start(1); */
|
|
|
|
|
/* toggle=0; */
|
|
|
|
|
/* dbgLog("measuring offset\n"); */
|
|
|
|
|
/* } else { */
|
|
|
|
|
/* offset_measure_stop(); */
|
|
|
|
|
/* toggle=1; */
|
|
|
|
|
/* dbgLog("stopping offset-measuring\n"); */
|
|
|
|
|
/* } */
|
|
|
|
|
/* } */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|