diff --git a/DSTAT-temp/src/ads1255.c b/DSTAT-temp/src/ads1255.c index ce485fb927e0ffafab3e6a1047a3e5141248ee03..8c8e5f5e9e0c6d49e1b5467c34efc51512c6e989 100644 --- a/DSTAT-temp/src/ads1255.c +++ b/DSTAT-temp/src/ads1255.c @@ -10,10 +10,6 @@ uint8_t buffer_iter = 0; -//Public variable definitions -int32_t overcurrent_threshold = ADS_DEFAULT_OVERCURRENT_THRESHOLD; -int32_t undercurrent_threshold = ADS_DEFAULT_UNDERCURRENT_THRESHOLD; - struct usart_spi_device spi_device_conf = { .id = IOPORT_CREATE_PIN(PORTE, 4) }; @@ -131,67 +127,6 @@ void ads1255_rdatac(void){ return; } -int32_t ads1255_single_read(void){ - union{ - uint8_t uint[4]; - int32_t int32; - } input_buffer; - - usart_spi_select_device(&USARTE1, &spi_device_conf); - // while (ioport_pin_is_high(IOPORT_CREATE_PIN(PORTD, 5))); - while (arch_ioport_get_pin_level(IOPORT_CREATE_PIN(PORTD, 5))); - usart_spi_transmit(&USARTE1, ADS_RDATA); - delay_us(6.5); - for (int i = 2; i >= 0; --i) - { - while (usart_data_register_is_empty(&USARTE1) == false); - usart_put(&USARTE1, CONFIG_USART_SPI_DUMMY); - while (usart_rx_is_complete(&USARTE1) == false); - input_buffer.uint[i] = usart_get(&USARTE1); - } - while (!usart_tx_is_complete(&USARTE1)); - usart_clear_tx_complete(&USARTE1); - - usart_spi_deselect_device(&USARTE1, &spi_device_conf); - - ads1255_standby(); - - if (input_buffer.uint[2] > 0x7F) - input_buffer.uint[3] = 0xFF; - else - input_buffer.uint[3] = 0x0; - - #ifdef ADS1255_DBG - printf(logstr1, "ADS1255 result=%li\n\r",input_buffer.int32); - #endif - - if (abs(input_buffer.int32) > overcurrent_threshold) - { - over_under[buffer_iter] = 1; - if (buffer_iter == (ADS_OVER_UNDER_SAMPLES - 1)) - buffer_iter = 0; - else - buffer_iter++; - } - else if (abs(input_buffer.int32) < undercurrent_threshold) - { - over_under[buffer_iter] = -1; - if (buffer_iter == (ADS_OVER_UNDER_SAMPLES - 1)) - buffer_iter = 0; - else - buffer_iter++; - } - else - { - over_under[buffer_iter] = 0; - if (buffer_iter == (ADS_OVER_UNDER_SAMPLES - 1)) - buffer_iter = 0; - else - buffer_iter++; - } - return input_buffer.int32; -} - int16_t ads1255_read_fast(void){ union{ uint8_t uint[2]; @@ -244,63 +179,6 @@ int16_t ads1255_read_fast_single(void){ return input_buffer.int16; } -int32_t ads1255_read(void){ - - union{ - uint8_t uint[4]; - int32_t int32; - } input_buffer; - - usart_spi_select_device(&USARTE1, &spi_device_conf); - for (int i = 2; i >= 0; --i) - { -// while (usart_data_register_is_empty(&USARTE1) == false); -// usart_put(&USARTE1, CONFIG_USART_SPI_DUMMY); -// while (usart_rx_is_complete(&USARTE1) == false); -// input_buffer.uint[i] = usart_get(&USARTE1); - usart_spi_read_packet(&USARTE1, (uint8_t*)&input_buffer.uint, 3); - } -// while (!usart_tx_is_complete(&USARTE1)); -// usart_clear_tx_complete(&USARTE1); - - usart_spi_deselect_device(&USARTE1, &spi_device_conf); - - if (input_buffer.uint[2] > 0x7F) - input_buffer.uint[3] = 0xFF; - else - input_buffer.uint[3] = 0x0; - - #ifdef ADS1255_DBG - printf("ADS1255 result=%li\n\r", input_buffer.int32); - #endif - - if (abs(input_buffer.int32) > overcurrent_threshold) - { - over_under[buffer_iter] = 1; - if (buffer_iter == (ADS_OVER_UNDER_SAMPLES - 1)) - buffer_iter = 0; - else - buffer_iter++; - } - else if (abs(input_buffer.int32) < undercurrent_threshold) - { - over_under[buffer_iter] = -1; - if (buffer_iter == (ADS_OVER_UNDER_SAMPLES - 1)) - buffer_iter = 0; - else - buffer_iter++; - } - else - { - over_under[buffer_iter] = 0; - if (buffer_iter == (ADS_OVER_UNDER_SAMPLES - 1)) - buffer_iter = 0; - else - buffer_iter++; - } - return input_buffer.int32; -} - int32_t ads1255_read_fast24(void){ union{ diff --git a/DSTAT-temp/src/ads1255.h b/DSTAT-temp/src/ads1255.h index b07b46a2ab942e978aff939d97709560fa807191..7755d0aa416ee18822761d3b4e2c84748b473da1 100644 --- a/DSTAT-temp/src/ads1255.h +++ b/DSTAT-temp/src/ads1255.h @@ -59,19 +59,9 @@ #define ADS_BUFF_OFF 0b0000 //0x0 #define ADS_BUFF_ON 0b0010 //0x2 -#define ADS_DEFAULT_OVERCURRENT_THRESHOLD 6000000L -#define ADS_DEFAULT_UNDERCURRENT_THRESHOLD 200000L -#define ADS_OVER_UNDER_SAMPLES 3 - -int8_t over_under[ADS_OVER_UNDER_SAMPLES]; -extern int32_t overcurrent_threshold; -extern int32_t undercurrent_threshold; - void ads1255_sync(void); void ads1255_init_pins(void); void ads1255_init_module(void); -int32_t ads1255_single_read(void); -int32_t ads1255_read(void); int16_t ads1255_read_fast(void); int16_t ads1255_read_fast_single(void); int32_t ads1255_read_fast24(void);