You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
628 B

15 years ago
#include "muxer.h"
#include <avr/io.h>
void muxer_init(){
DDRC |= (_BV(0)|_BV(1)|_BV(2)|_BV(3)); // conf as outputs
PORTC |= _BV(3); // inhibit
}
void muxer_set(uint8_t channel){
PORTC |= _BV(3); // engage inhibit
PORTC &= ~(0x07); //mask
PORTC |= channel & 0x07; //set
PORTC &= ~(_BV(3)); // disengage inhibit
//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;
}