adc.h 974 B

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef ADC_H_
  2. #include "ti/driverlib/dl_i2c.h"
  3. #include "ti_msp_dl_config.h"
  4. #define ADC_TARGET_BASE_ADDRESS (0x68)
  5. #define ADC_VREF_MV (2048)
  6. //Maximum packet sizes
  7. #define I2C_TX_MAX_PACKET_SIZE (16)
  8. #define I2C_RX_MAX_PACKET_SIZE (16)
  9. //Flag for READ and WRITE
  10. extern volatile bool gRxComplete;
  11. extern volatile bool gTxComplete;
  12. extern uint8_t gTxPacket[I2C_TX_MAX_PACKET_SIZE];
  13. extern uint8_t gRxPacket[I2C_RX_MAX_PACKET_SIZE];
  14. /*Counters for Tx and Rx length and bytes sent*/
  15. extern uint32_t gTxADClen, gTxADCcount;
  16. extern uint32_t gRxADClen, gRxADCcount;
  17. typedef struct{
  18. uint8_t channel;
  19. uint8_t resolution;
  20. bool continuous;
  21. uint8_t gain;
  22. } ADC_PARAMS;
  23. uint8_t ADC_ConstructConfigBytes(ADC_PARAMS params);
  24. void ADC_SetConfigurationBytes(ADC_PARAMS params);
  25. int16_t ADC_ReadData(uint8_t slot_id, ADC_PARAMS params);
  26. uint16_t ADC_ConvertToVoltage(int16_t adc_value, ADC_PARAMS params);
  27. void Battery_UpdateCurrentVoltage(ADC_PARAMS params);
  28. #endif