offset-compensation test (not yet working)

master
Paul Goeser 15 years ago committed by Dario Ernst
parent 1a824d85dd
commit 78a17d36ed

@ -26,6 +26,8 @@ void baz() {
* - multiplexer: * - multiplexer:
* C3: inhibit * C3: inhibit
* C0-C2: muxer select * C0-C2: muxer select
* - offset measurement
* D0-D3 offset compensation
* *
* *
* amp 0 is on muxer channel 2 * amp 0 is on muxer channel 2
@ -47,6 +49,7 @@ void hardinit() {
spi_init(); spi_init();
muxer_init(); muxer_init();
offset_measure_init();
i2c_init(); i2c_init();
@ -96,6 +99,19 @@ int __attribute__((noreturn)) main(void) {
dbgLog("temp: %6li (%li µV, %li mK)\n",temp,nV/1000, mK); dbgLog("temp: %6li (%li µV, %li mK)\n",temp,nV/1000, mK);
} }
SOFTTIMER(3,4000){
static uint8_t toggle;
if(toggle){
offset_measure_start(0);
toggle=0;
dbgLog("measuring offset\n");
} else {
offset_measure_stop();
toggle=1;
dbgLog("stopping offset-measuring\n");
}
}
} }
} }

@ -14,3 +14,19 @@ void muxer_set(uint8_t channel){
//TODO: delays, check everything, mask in register //TODO: delays, check everything, mask in register
} }
void offset_measure_init(){
DDRD |= 0x0f; // first 4 pins as output
PORTD = 0x00; // turn everything off
}
void offset_measure_start(uint8_t channel){
if(channel >3){
return;
}
PORTD = (1<<channel);
}
void offset_measure_stop(){
PORTD = 0;
}

@ -4,3 +4,7 @@
void muxer_init(); void muxer_init();
void muxer_set(uint8_t channel); void muxer_set(uint8_t channel);
void offset_measure_init();
void offset_measure_start(uint8_t channel);
void offset_measure_stop();

Loading…
Cancel
Save