完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用下面的调用来启用一个数据就绪中断,当转换的数据可从AN2.PLBIAADCHSUAPLANDATABASEADY可中断(DRVAI ADCXIDID1,ADCHSH类12AN AN2)获得时,每个250MS触发采样。自己的工作是完美的。但是,我不需要调用PLBIAdAdsSyApple的RealPultGET(),因为我使用了一个比较器。如果我删除了对PiBLADADCHSUPPLANSFETRESUTGET()的调用,我会得到持续的中断。有人能解释发生了什么吗?注意:我尝试使用PLBIADADCHSZDigalSalabor可中断(DrvayAdcSIDID1,AdssxDigialSala比较器1);而不是PLIBAYADCHSUPPLATATEDATA ADYY可中断(DRVAI ADCXIDID1,ADCHSH类12FAN2);这将是一个更好的选项来限制中断的数量(如果它工作了),但我没有得到一个S。插入中断。
以上来自于百度翻译 以下为原文 I'm using the following call to enable a data ready interrupt when converted data is available from AN2. PLIB_ADCHS_AnalogInputDataReadyInterruptEnable(DRV_ADC_ID_1, ADCHS_CLASS12_AN2); Sampling is triggered every 250mS. My interrupt handler is based upon a HARMony example (below), this function as shown works perfectly. void IntHandlerDrvAdc(void) { uint32_t result; bool event; if( PLIB_ADCHS_AnalogInputDataIsReady(DRV_ADC_ID_1, ADCHS_AN2) ) { result = PLIB_ADCHS_AnalogInputResultGet(DRV_ADC_ID_1,ADCHS_AN2 ); //#### THIS IS NEEDED ??? if( PLIB_ADCHS_DigitalComparatorEventHasOccurred( DRV_ADC_ID_1, ADCHS_DIGITAL_COMPARATOR_1 ) ) { // Do something event = true; } } /* Clear ADC Interrupt Flag */ PLIB_INT_SourceFlagClear(INT_ID_0, INT_SOURCE_ADC_1); } However, I don't need the call to PLIB_ADCHS_AnalogInputResultGet() because I'm using a comparator. If I remove the call to PLIB_ADCHS_AnalogInputResultGet() I get constant interrupts. Can anyone explain what is happening? Note. I tried using PLIB_ADCHS_DigitalComparatorInterruptEnable( DRV_ADC_ID_1, ADCHS_DIGITAL_COMPARATOR_1 ); instead of PLIB_ADCHS_AnalogInputDataReadyInterruptEnable(DRV_ADC_ID_1, ADCHS_CLASS12_AN2); This would be a better option in limiting the number of interrupts (if it worked), but I didn't get a single interrupt. |
|
相关推荐
4个回答
|
|
它看起来像太多的抽象,不知道发生了什么。我有一些类似的原因是不读频道,所以它立即被中断。
以上来自于百度翻译 以下为原文 It looks like too many abstractions to know what is really happening. I had something similar caused by not reading the channels, so it immediately re interrupted. |
|
|
|
ADC就绪位仅在从ADC寄存器读取数据时清除?
以上来自于百度翻译 以下为原文 The ADC ready bit is only cleared when the data is read from the ADC register? |
|
|
|
如上所述。您必须读取值以清除中断。
以上来自于百度翻译 以下为原文 As above. You have to read the value to clear the interrupt. |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
5178 浏览 9 评论
2003 浏览 8 评论
1931 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3177 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2228 浏览 5 评论
738浏览 1评论
622浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
509浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
636浏览 0评论
533浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 22:58 , Processed in 1.235056 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号