打印

关于PIC电平中断的问题

[复制链接]
2621|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DFH|  楼主 | 2015-8-28 10:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我用的是PIC12F1822 我做一个通过检查RA4端口的电平变化       中断控制灯亮灭,程序一运行到      IOCIE = 1; //使能电平中断    的时候就进入中断,好奇怪的是,不管我有没有电平变化,都会进入中断,而且就算是有电平变化的时候(这个电平不用考虑,RA4一直都是有脉冲电平送到,高低电平),进入中断,电平中断的标志位也没有发生改变  调试了好多遍 找不到问题所在,前来求助。 我看手册里面说的好简单  怎么就是不能成功呢 求助
__CONFIG(FOSC_INTOSC&WDTE_ON&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_ON&BOREN_OFF&CLKOUTEN_OFF&IESO_OFF&FCMEN_OFF);//这个要放到上一行去
__CONFIG(PLLEN_OFF&LVP_OFF) ;

#define LED                LATAbits.LATA0
int NUM = 0;


void interrupt ap(void)
{
        //外部中断函数
        if(1 == IOCIF)
        {
                IOCAF = 0;
                LED = 1;
                //NUM++;       
        }

}
void ap_an_init(void)
{
        GIE = 1;  //开始总中断
        PEIE = 1;        //开始外部中断

        IOCAF = 0; //清零中断标志位
        IOCAP4 = 1;        //上升源触发使能
        IOCAN4 = 1;                       
        IOCIE = 1; //使能电平中断       调试的时候 到这个位置就进入中断了  但是中断标志位没有发生改变 不知道是不是配置问题  
}       

int main(void)
{

    TRISA = 0x10;
    ANSELA = 0X10;
    WPUA4 = 1;
    LED =0;

     ap_an_init();
    //主体功能
    while(1)
    {
                ;
     }
     return 0;

}

沙发
NE5532| | 2015-8-28 13:44 | 只看该作者
在中断服务函数里把其他中断标志送出来看,有多少个标志在。

使用特权

评论回复
板凳
DFH|  楼主 | 2015-8-28 14:08 | 只看该作者
NE5532 发表于 2015-8-28 13:44
在中断服务函数里把其他中断标志送出来看,有多少个标志在。

恩   你想看的是这图吗                        程序执行到               IOCIE = 1; //使能电平中断          的时候  跳到了中断函数里面  然后一直死循环了  电平中断标志位没反应  不知道怎么搞的

捕获.PNG (18.96 KB )

程序一直在中断里面

程序一直在中断里面

使用特权

评论回复
地板
DFH|  楼主 | 2015-8-28 14:11 | 只看该作者
NE5532 发表于 2015-8-28 13:44
在中断服务函数里把其他中断标志送出来看,有多少个标志在。

程序我改了一下   把上升触发中断给关了  留下 下降触发中断

使用特权

评论回复
5
StevenLau2008| | 2015-9-7 13:49 | 只看该作者

Microchip:

TEL:13148736025
QQ:359920019

使用特权

评论回复
6
hwt1990114| | 2015-9-11 16:53 | 只看该作者
用的是电平边沿中断吗,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

DFH

7

主题

40

帖子

0

粉丝