向高手求救!PIC32单片机变更模块CN按键中断问题!

2019-03-25 19:46发布

一下是我的一个小的测试CN按键中断模块的测试代码,问题是我在按键前面板的按键时中断没反应,没发生中断,程序不能进入中断处理程序,不知道是不是我的main函数里面的中断初始化有问题,请高手指点。我的按键连接的是 RB2引脚,配置成输入,CN4。
贴上代码,向高手求救:
#pragma config POSCMOD = XT, FNOSC = PRIPLL
#pragma config FPLLIDIV = DIV_2, FPLLMUL =  MUL_18, FPLLODIV = DIV_1
#pragma config FPBDIV= DIV_2,FWDTEN = OFF,CP =OFF,BWP =OFF

#include <p32xxxx.h>
#include<plib.h>
#include <stdio.h>


#define delayms(x)
        {
                int i;
                i = x*10;
                while((--i) != 0);                                
        }


static int count =0;

void __ISR(_CHANGE_NOTICE_VECTOR, ipl1) CNIntHandler( void )
{
        int i =0;
        if(!_RB2)
        {//延时检测跳变前沿
                do
                {
                        delayms(5);
                        if(!_RB2)
                                i++;
                        else
                                i = 0;
                }
                while(i < 10);
               
                while(!_RB2);
                //延时检测跳变后沿
                do
                {
                        delayms(5);
                        if(_RB2)
                                i++;
                        else
                                i = 0;
                }
                while(i < 10);
                count++;
        }       
        mCNClearIntFlag();
}

int main(void)
{

        TRISB = 1;
        AD1PCFG = 0xffff;

        CNENbits.CNEN4 =1;
        CNCONbits.ON =1;
        INTEnableSystemSingleVectoredInt();
        mCNSetIntPriority( 1);
       
        mCNIntEnable( 1);
        while(1);

}
顺便帮我看下我的中断处理程序里面的防止按键抖动的程序这样处理看可以不? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
金凤水厂
1楼-- · 2019-03-26 22:40
TRISB = 1;//这样把RB4对应口置成输出了。

另外,中断程序中那么多延时是不合理的。
yinshulong
2楼-- · 2019-03-27 01:23
#7楼 得分:0回复于:2010-03-23 15:51:56TRISB = 1;//这样把RB4对应口置成输出了。

另外,中断程序中那么多延时是不合理的。
TRISB =0;才是配置成输出吧;延时我也知道不合理,可是我想防止按键抖动不用延时没办法,请教高手
kiney
3楼-- · 2019-03-27 06:58
在没有完全读完数据手册前请别自己设置积存器。
既然都#include <plib.h>了,就直接用里面的函数来培植就行了。

另外,你的中断向量配置成什么了?很重要
酒壶
4楼-- · 2019-03-27 11:12
 精彩回答 2  元偷偷看……
Justin.YC
5楼-- · 2019-03-27 12:40
学习一下。P32没玩过
wu123dd
6楼-- · 2019-03-27 17:55
没人愿意帮我解决。。。。

一周热门 更多>