diff --git a/firmware/slavechip/main.c b/firmware/slavechip/main.c index a9b407d..abbe6d9 100644 --- a/firmware/slavechip/main.c +++ b/firmware/slavechip/main.c @@ -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"); */ - /* } */ - /* } */ - + } }