我做的是一个通过信号发生器发出一个10Khz,占空比97% 的方波,通过改变信号发生器的电压值(100mv -- 3.3V),控制输入信号的幅度,单片机里面就是通过读AD值(12位),进行判断(判断电压幅度的大小,进行相应的输出),输出(DA)。我的判断程序如下:
__IO uint16_t min_s = 0x0040; //是一个电压的阈值.
while(1)
{
value = ADCDualConvertedValue[0]; //获得AD值,存到value里面去。
if(min_s < value) //判断当前的电压是否大于电压的最小值
{
value1 = value;
DAC_SetChannel1Data(DAC_Align_12b_R, value1); //输出
}
else
{
DAC_SetChannel1Data(DAC_Align_12b_R, value1); //输出上一次成立的值
}
}
通过上边的程序,判断,输出的结果跟我想象中的不一样 |