diff --git a/firmware/masterchip/spi_config.h b/firmware/masterchip/spi_config.h index 87fb170..a5e28c2 100644 --- a/firmware/masterchip/spi_config.h +++ b/firmware/masterchip/spi_config.h @@ -1,5 +1,5 @@ -#define SPI_BAUDRATE 40000 +#define SPI_BAUDRATE 20000 #define SPI_MASTER #define SPI_SS_PORT D #define SPI_SS_PIN 7 diff --git a/firmware/slavechip/filter.c b/firmware/slavechip/filter.c index b4dd7a0..40dfcf0 100644 --- a/firmware/slavechip/filter.c +++ b/firmware/slavechip/filter.c @@ -14,7 +14,6 @@ float avg_noise[CHANNELCOUNT]; void process_thermocouple_value(int16_t raw_data, uint8_t channel){ - printf("procthermval, val %i, chan %i\n",raw_data,channel); // This function does everything that needs to be done to raw adc values float a = raw_data; a -= sensordata[channel].offset; @@ -26,7 +25,7 @@ void process_thermocouple_value(int16_t raw_data, uint8_t channel){ uint16_t result = filter_float_to_fixpoint(a); sensordata[channel].temperature = result; - printf("temperature: %i.%2i\n",result/100,result%100); + printf("temperature: %i.%2i (val %i)\n",result/100,result%100,raw_data); } void process_offset_value(int16_t raw_data, uint8_t channel){ diff --git a/firmware/slavechip/main.c b/firmware/slavechip/main.c index 6591d16..22da8e2 100644 --- a/firmware/slavechip/main.c +++ b/firmware/slavechip/main.c @@ -47,7 +47,9 @@ void softinit() { stdout = &mystdout; printf("======= starting logging\n"); mcpadc_init(ADC_GAIN_2|ADC_CONV_CONT|ADC_BITS_16); - offset_init(); +// offset_init(); + sensordata[0].offset = -400; + sensordata[1].offset = +478; } @@ -60,25 +62,22 @@ int __attribute__((noreturn)) main(void) { int16_t data; for(;;){ - printf("====== loop iteration\n"); - - // measure temps 5*2 times - for(uint8_t i=0; i<1; i++) { - printf("====== now measuring temps\n"); + for(uint8_t i=0; i<5; i++) { for(uint8_t active_sensor=0; active_sensor<2; active_sensor++) { // only measuring two probes atm - printf("=== active sensor: %i\n",active_sensor); + // printf("=== active sensor: %i\n",active_sensor); muxer_set(active_sensor); + for(uint8_t j=0; j<4; ++j){ + while(!mcpadc_has_new_data()) _delay_ms(10); + mcpadc_get_data(); // first data after switch to trash + } while(!mcpadc_has_new_data()) _delay_ms(10); - mcpadc_get_data(); // first data after switch to trash - while(!mcpadc_has_new_data()) _delay_ms(10); - _delay_ms(1000); data = mcpadc_get_data(); process_thermocouple_value(data,active_sensor); } } - +/* // measure 2 offsets for(uint8_t active_sensor=0; active_sensor<2; active_sensor++) if(offset_measure[active_sensor]) { @@ -95,15 +94,15 @@ int __attribute__((noreturn)) main(void) { offset_count[active_sensor]++; } } - +*/ // measure ambient printf("====== now measuring ambient\n"); muxer_set(4); - _delay_ms(300); - while(!mcpadc_has_new_data()) _delay_ms(10); - mcpadc_get_data(); // first data after switch to trash while(!mcpadc_has_new_data()) _delay_ms(10); mcpadc_get_data(); // first data after switch to trash + // while(!mcpadc_has_new_data()) _delay_ms(10); + // mcpadc_get_data(); // first data after switch to trash + _delay_ms(100); while(!mcpadc_has_new_data()) _delay_ms(10); data = mcpadc_get_data(); process_ambient_value(data);