完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
你好,PIC Guur'SI正在尝试改变通知中断工作在PIC32 MX470F512L设备上,我有点问题。我不认为ISR被正确调用。程序功能很简单:1)在端口D配置PIN 0和1,输出引脚1高2)I配置端口D上的PIN 6作为输入,然后将其配置为接收中断。步骤2,从我所理解的要求,我改变总共7个寄存器(tiS,CNPU,CN)。CON,CNEN,IFS1,IPC8和IEC,我已经做了。但是,我不认为ISR实际上是被调用的。为了延迟,我做了一个Debug函数(dB())。谢谢你的时间!包含:“CONFIG.H”//****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************PIN 0低/ /测试“显示”TrISDITS.TrISD1=0;LabdBist.LaDd1=1;//-----输入配置------------TrISDITS.TrISD6=1;//SET引脚6(SW1)作为输入CNPUBITS.CNPUD6=1;/ /启用内部上拉电阻CNCONDITS.ON=1;//CNCOND=32768;/ /允许对所选CN-PI中断。NN CNDNITS.CNIDE6=1;//启用PIN 6 IFS1BIT.CNDIF=0的更改通知;/ /清除中断标志IPC8BITS.CNIP=7;IEC1BIT.CNDY=1;定义**-------------------------------------DB,DeBung延迟函数。-------------------------------*/ValueDB(int延迟){int i=0;对于(i=0;i & lt;延迟;i++);}//***************中断例程***************空ixr(αchange change EnguleEx向量,iPL7SRS).CN中断(空隙){IFS1BIT.CNDIF=0;DB(100);IF(PORTD)位。RD6==0){LaLDBIT.LATD0=1;}
以上来自于百度翻译 以下为原文 Hello PIC Guru's I'm trying to get a change notification interrupt to work on the PIC32mx470f512L device, and I'm having a bit of an issue. I don't think the ISR is being called correctly. The Program function is simple: 1) I configure pin 0 and 1 on port D as out put, and turn pin 1 high 2) I configure pin 6 on PORT D as an input, and then configure it to receive interrupts. Step 2, from what I understand requires that I change a total of 7 registers (TRIS,CNPU,CNCON,CNEN,IFS1,IPC8, and IEC), which I have done. However, I don't think the ISR is actually being called. I made a debounce function (dB()) for a delay. Thanks for your time! #include #include #include "config.h" //****************** Function Prototypes *********************************** void dB( int delay); int main(void) { //--------Output Config -------------------- TRISDbits.TRISD0 = 0; // Set pin 0 as output LATDbits.LATD0 = 0; //set pin 0 low //test "display" TRISDbits.TRISD1 = 0; LATDbits.LATD1 = 1; //------- Input Config -------------------- TRISDbits.TRISD6 = 1; //set pin 6 (SW1) as input CNPUDbits.CNPUD6 = 1; //enable internal pull up resistor CNCONDbits.ON = 1;//CNCOND = 32768; // enable interrupts for the selected CN pin CNENDbits.CNIED6 = 1; // enable change notification on pin 6 IFS1bits.CNDIF = 0; // clearing interrupt flag IPC8bits.CNIP = 7; IEC1bits.CNDIE = 1; // enabling interrupt control register //************** Main Code ************************************ while(1){ } } //********************** Function Definitions ****************************** /*------------------------------------------------------------------- * dB, debounce delay function. -------------------------------------------------------------------*/ void dB( int delay){ int i = 0; for(i = 0; i //*********************** Interrupt Routines ************************ void __ISR(_CHANGE_NOTICE_VECTOR, IPL7SRS) _CNInterrupt(void){ IFS1bits.CNDIF = 0; dB(100); if(PORTDbits.RD6 == 0){ LATDbits.LATD0 = 1; } |
|
相关推荐
1个回答
|
|
您还需要在CPU内核中启用多矢量中断。(PS在发布代码时请使用代码标签!)
以上来自于百度翻译 以下为原文 You need to enable multi-vectored interrupts in the CPU core as well. (ps. Please use code tags when posting code!) |
|
|
|
只有小组成员才能发言,加入小组>>
5257 浏览 9 评论
2038 浏览 8 评论
1958 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3219 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2269 浏览 5 评论
796浏览 1评论
689浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
620浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
687浏览 0评论
587浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 07:31 , Processed in 1.431746 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号