大家好,
我是新的PSoC 4 BLE和蓝牙一般,因为我们将使用未来的产品从柏树,我想尽可能多地学习。在我做的第一个测试项目中,为了测量板的一些参数,我遇到了一个关于ADC SEQ的问题。我不能把代码放在这里(即使是测试代码),因为版权问题,但我会解释这个项目,以及我如何得出问题是ADC的问题。
该项目的核心是从应用笔记AN92584:HTTP://www. CyPress。
在设计(CysCH)中,我有以下几个方面:一个RTC,一个用于LED(SW)的引脚,ADC SAR,当然还有BLE。
BLE是外围服务器,具有自定义服务,具有80字符值的大特性。
RTC:被配置为在每32秒产生一个中断,并使用WCO Low Powerand定时器2 WDT2。
ADC SAR:有4个输入引脚设置为(P3.0,P3.1,P3.2,P3.3)设置为高阻抗模拟,VRef是内部1.024伏,单端负极设置为Vref,自由运行,时钟频率1KHz所有使用CLCK,注入不检查启用。
应用程序应该如下:init ADC,并且禁用ADC的IRQ,init RTC;进程BLE事件更新BLE和通知的特性,并且作为AN92584的运行部分的代码如下:
ADCYSTART转换();
ADCI ISEN转换(ADCJAWI
tiTH-FORY结果);
AdcTestCurror();
然后读取所有4个ADC通道,处理这些值,并在可能的情况下进入深度睡眠(取决于BLE)。每当RTC经过(32秒)时,执行上述3行代码+ ADC的读取和处理值。
我观察到ADC在ISDN转换时阻塞,并且从未退出。为什么?我希望你能解释一下我的所作所为。这是一个最好的做法,启动和停止ADC后,每个转换+禁用其中断?模拟是否正确设置了引脚?
在所有示例中,我看到前2行代码在无限循环之前执行,然后只调用get结果,但是我不需要让ADC转换所有的时间,而只需要在32秒。如果我使用触发器模式,也许有人可以解释如何?
我还想提到的是,在没有ADC的情况下,代码被测试了,它运行良好,我可以读取特性(当然,如果ADC不工作,我看不到它是否被正确地修改),它就可以正确地进入休眠模式。RTC在32秒内正确地发送中断。
非常感谢你,希望我的文字清晰明了!