说说感受,比第一批的难一些,一个while循环内采集的外设也增多了(延时增加了),写的时候注意分时采样就好了,另外PCF8591在连续读取时是先开始转换后再读值,所以连续分时读取0x01光敏电阻和0x03电位器时得读2次。第一次转换,第二次再读值。如伪代码:
void CatchAdc(){
if(ADF){
Cons=~Cons;
ReadAdc(0x03);//电位器
if(!Cons){
ADF=~ADF;
ad=ReadAdc(0x03)*5/255;//电位器
}
}
else {
Cons=~Cons;
ReadAdc(0x01); //光敏电阻
if(!Cons){
ADF=~ADF;
ad2= ReadAdc(0x01)*5/255;//光敏电阻
}
}
}
附上我做的源码(可能有不足)
链接:https://pan.baidu.com/s/1Rc704xeWbiFRR2AnIUyHjw
提取码:yzh1

这篇博客探讨了在微控制器编程中如何处理复杂的while循环内外设采样,特别是涉及PCF8591芯片的连续读取问题。作者指出在连续读取光敏电阻和电位器时需要注意转换与读值的时机,并提供了一段包含分时采样和PCF8591读取的伪代码。博客还附带了实现代码链接供读者参考。

被折叠的 条评论
为什么被折叠?



