Android MTK 内核ADC获取IO口电压:
1、 函数解释
(1)该函数第一个参数是ADC通道选择,查看硬件原理图就知道;
(2)第二个参数是一个数组指针,用来存放ADC采样得到的原始数据;
(3)最后一个参数是采样频率,设置成NULL即可;
(4)如此得到ADC的原始采样数据后通过下面计算公式就可以得到电压值:adcVol=data[0]*1000+data[1]*10; //单位:mV
2、代码示例
//引用声明
extern int IMM_GetOneChannelValue(int dwChannel, int data[4], int* rawdata);
//通过adc获取模式返回参数
static int get_boot_mode_by_adc(void)
{
int adc_data[4];
int adcVol=0;
//获取data值//ADC3通道
IMM_GetOneChannelValue(3,adc_data,NULL);
adcVol = adc_data[0]*1000+adc_data[1]*10;
printk("[BOOT_MODE] %s adcVol = %d mV,\n",__func__,adcVol);
//是否大于0.8V
if (adcVol > 800)
{
return 1;
}
return 0;
}