8334|18

73

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

向高手求救!PIC32单片机变更模块CN按键中断问题! [复制链接]

一下是我的一个小的测试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
#include
#include


#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);

}
顺便帮我看下我的中断处理程序里面的防止按键抖动的程序这样处理看可以不?

最新回复

不能进入中断程序不外乎以下几个问题:中断设置有问题;中断信号有问题;中断有进入了但处理不对,看不到处理结果.LZ自己慢慢排查吧,不要一味指望别人,尤其在别人无法了解你的真正意图的时候,呵呵  详情 回复 发表于 2010-3-27 16:45
点赞 关注
 

回复
举报

76

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
不了解PIC的具体设置,但是设备成输入模式还能当成中断用吗?至少其它的CPU是不行的,一个管脚的功能,输入、输出、中断、以及其它功能,都是分别使用的,不能同时使用这几样功能,最多是当设置成中断的时候可以直接读取当前的管脚状态,当成输入使用。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
我的是当按键按下时连接的RB2引脚变成低电平,利用CN变更模块检测到电平电话的时候就发生中断,故我吧B端口的引脚配置成输入引脚,TRISB = 1;AD1PCFG = 0xffff;这2句就算不要程序也没反应,我试过了。再者由于电平的变化不稳定,有跳变的过程,因此我需要做按键防抖动程序。哎,我刚刚进入嵌入式开发这个行业,很多不懂。尚在努力学习当中,可是很多时候错误都不知道发生在哪里。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
如果硬件上没有去抖功能而在软件上进行去抖,查询方式比中断更好吧。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
   帮顶个,楼主加油,慢慢求索。
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

6
 
PIC32据说是MIPS的核,不过我都不懂
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

7
 
怎么没人来呢?
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 
TRISB = 1;//这样把RB4对应口置成输出了。

另外,中断程序中那么多延时是不合理的。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

9
 
#7楼 得分:0回复于:2010-03-23 15:51:56TRISB = 1;//这样把RB4对应口置成输出了。

另外,中断程序中那么多延时是不合理的。
TRISB =0;才是配置成输出吧;延时我也知道不合理,可是我想防止按键抖动不用延时没办法,请教高手
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

10
 
在没有完全读完数据手册前请别自己设置积存器。
既然都#include 了,就直接用里面的函数来培植就行了。

另外,你的中断向量配置成什么了?很重要
 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

11
 
我是用里面的函数来配置的,那个TRISB = 1;
AD1PCFG = 0xffff;
可以去掉,一样的没反应。中断配置什么?那是配置成(_CHANGE_NOTICE_VECTOR)输入电平变化
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

12
 
学习一下。P32没玩过
 
 
 

回复

89

帖子

0

TA的资源

禁止访问

13
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

14
 
没人愿意帮我解决。。。。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

15
 
引用 13 楼 liyp254522896 的回复:

没人愿意帮我解决。。。。


  你的问题太有针对性,单一,大家没有时间看,也有可能没有用过,提问应该自己归纳出关键疑问。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

16
 
菜鸟该如何是好呀
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

17
 
没人来我自己回
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

18
 
..........
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

19
 
不能进入中断程序不外乎以下几个问题:中断设置有问题;中断信号有问题;中断有进入了但处理不对,看不到处理结果.LZ自己慢慢排查吧,不要一味指望别人,尤其在别人无法了解你的真正意图的时候,呵呵
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表