diff --git a/DSTAT-temp/src/ads1255.c b/DSTAT-temp/src/ads1255.c index 80bfd51504cc1d359a40d8b25dbdcf97723ebeb9..de5627b223fadb3327dd15c30d391efd084f7e77 100644 --- a/DSTAT-temp/src/ads1255.c +++ b/DSTAT-temp/src/ads1255.c @@ -107,6 +107,24 @@ void ads1255_setup(uint8_t buff, uint8_t rate, uint8_t pga){ return; } +void ads1255_mux(uint8_t channel){ + #if BOARD_VER_MAJOR == 1 && BOARD_VER_MINOR == 2 + uint8_t command_buffer[6] = {0x51,0x03,channel}; // write reg 1, write 1 register, MUX AIN0 + + usart_spi_select_device(&USARTE1, &spi_device_conf); + usart_spi_transmit(&USARTE1, ADS_SDATAC); + usart_spi_write_packet(&USARTE1, (uint8_t*)&command_buffer, 3); + usart_spi_transmit(&USARTE1, ADS_SYNC); + usart_spi_transmit(&USARTE1, ADS_SELFCAL); + while (arch_ioport_get_pin_level(IOPORT_CREATE_PIN(PORTD, 5))) + ; + usart_spi_deselect_device(&USARTE1, &spi_device_conf); + + return; + #endif + +} + void ads1255_standby(void){ usart_spi_select_device(&USARTE1, &spi_device_conf); usart_spi_transmit(&USARTE1, ADS_STANDBY); diff --git a/DSTAT-temp/src/ads1255.h b/DSTAT-temp/src/ads1255.h index 7755d0aa416ee18822761d3b4e2c84748b473da1..f01d2d59895fd6a926af2332ffccf87d10a40f56 100644 --- a/DSTAT-temp/src/ads1255.h +++ b/DSTAT-temp/src/ads1255.h @@ -59,6 +59,9 @@ #define ADS_BUFF_OFF 0b0000 //0x0 #define ADS_BUFF_ON 0b0010 //0x2 +#define ADS_MUX_VOLT 0x08 +#define ADS_MUX_POT 0x18 + void ads1255_sync(void); void ads1255_init_pins(void); void ads1255_init_module(void); @@ -68,6 +71,7 @@ int32_t ads1255_read_fast24(void); void ads1255_reg_read(uint8_t address); void ads1255_reset(void); void ads1255_setup(uint8_t buff, uint8_t rate, uint8_t pga); +void ads1255_mux(uint8_t channel); void ads1255_standby(void); void ads1255_wakeup(void); void ads1255_rdatac(void);