程序源码:
每次获取值时 取20次然后去平均值:
Get_Adc_Average(ADC_CHANNEL_5,20);
每取一次值要延迟5ms:
u16 Get_Adc_Average(u32 ch,u8 times)
{
u32 temp_val=0;
u8 t;
for(t=0;t<times;t++)
{
temp_val+=Get_Adc(ch);
delay_ms(5); //延迟5ms
}
return temp_val/times;
}
如果将次数改为一次那么获取的值就或在 0和1023 直接跳
(PA5什么都不接)
那么问题来了:
ADC 频率在27M情况下,480个周期 ,分辨率12位,这个值不觉得很奇怪吗? @八度空间 @yklstudent @Huangshuqian
难道每次AD 转换都要连续采多个数据,然后取平均值,每次取还要延迟一段时间?
如果需要1ms 采100次呢?
一周热门 更多>