31c691c7c5
1. 預設 spi2 為 mode 0, 當 ads8691 初始化完成後, 將 spi2 切為 mode 2 2. 承上, 所以 adc driver 要比 dac driver 更早初始化 3. 將來會將 spi mode 整合 spi transfer, 雖然週邊共用 spi 但是可以每個週邊使用自己的 mode 4. 當調整增益, 更改輸出格式, 切換輸入來源時會把 m_flush_data 設為 1, 在讀 ad 值時會先預讀一次更新量測的結果
45 lines
713 B
C
45 lines
713 B
C
#include "adc_drv.h"
|
|
|
|
#if (DEF_ELITE_MODEL == DEF_ELITE_EDC_20)
|
|
extern adc_drv_if_t ads8691;
|
|
static adc_drv_if_t *p_inst = &ads8691;
|
|
#else
|
|
static adc_drv_if_t *p_inst = NULL;
|
|
#endif
|
|
|
|
int adc_init(void)
|
|
{
|
|
if (p_inst == NULL)
|
|
{
|
|
return ADC_DRV_ERROR;
|
|
}
|
|
return p_inst->init();
|
|
}
|
|
|
|
int adc_reset(void)
|
|
{
|
|
if (p_inst == NULL)
|
|
{
|
|
return ADC_DRV_ERROR;
|
|
}
|
|
return p_inst->reset();
|
|
}
|
|
|
|
int adc_gain(adc_gain_t gain)
|
|
{
|
|
if (p_inst == NULL)
|
|
{
|
|
return ADC_DRV_ERROR;
|
|
}
|
|
return p_inst->gain(gain);
|
|
}
|
|
|
|
int adc_read(uint32_t channel, int32_t *adc_val)
|
|
{
|
|
if (p_inst == NULL)
|
|
{
|
|
return ADC_DRV_ERROR;
|
|
}
|
|
return p_inst->read(channel, adc_val);
|
|
}
|