【CH579M-R1】+A/D采集与传感器使用及数值显示(1)
[复制链接]
本帖最后由 jinglixixi 于 2020-9-20 09:10 编辑
CH579M 具有14个通道的12位ADC模数转换器,并支持14通道触摸按键。此外,还有一个内部电池检测通道和一个内部温度传感器检测通道。其中的电池检测通道适用于低功耗产品的电源管理和报警,而温度传感器检测通道也是一种维护低功耗产品可靠工作的主要手段。
由于所用的是12位ADC模数转换器,故其采样的数值范围是0~4095。
通过对例程的验证,其运行结果如图1所示。
图1 运行结果
由运行结果可知,它能够读取到ChipID、指定单通道的采样值、指定差分通道的采样值、指定触摸按键通道的采样值及使用中断方式进行采样。
为更好地感知外部世界的变化,在实际应用中有多种传感器被广泛使用。而传感器主要有3类,即模拟信号型、数字信号型及脉冲信号型。其中数字信号型的特点是直接获得数字结果,无需进行数值标度变换;而模拟信号型,则获得的是模拟信号需要进行数值变换及线性处理等。
在按图2所示,外接电位器的情况下可观察信号变换的结果。
图2 电位器模拟信号源
图3 电位器提供模拟信号
图4 PA0通道9采样
图5 PA5通道1采样
数据采集主程序:
int main()
{
UINT8 i;
signed short RoughCalib_Value=0;
DebugInit();
PRINT( "\n2.Single channel sampling...\n");
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_Floating); //GPIO_Pin_0
ADC_ExtSingleChSampInit( SampleFreq_3_2, ADC_PGA_0 );
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_Floating);
RoughCalib_Value = ADC_DataCalib_Rough();
PRINT("=%d \n", RoughCalib_Value);
while(1)
{
ADC_ChannelCfg(1 ); // ADC_ChannelCfg( 9 )
abcBuff = ADC_ExcutSingleConver() + RoughCalib_Value;
ADC_DataCalib_Fine( &abcBuff, ADC_PGA_0 );
PRINT("%d ", abcBuff);
mDelaymS(500);
}
}
|