打印

PIC16F690 INT中断进不去,相关问题请教

[复制链接]
2975|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我是土匪|  楼主 | 2011-3-15 11:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC16F690 RA2引脚设置为INT中断,外部信号发生器发出方波到RA2,触发中断后RB4-RB7触发相关动作。方波频率1K-100K均试过,用示波器检测到信号发送到RA2引脚。
发现没有进入中断函数,检查过寄存器设置仍未找到原因,先将完整代码贴出,请大家指教。

#include <pic.h>

__CONFIG(0X0f4);
#define LED  RC7    //定义LED端口
/**************************************************
函数说明:CPU相关初始化
***************************************************/
void Init_CPU(void)
{
    OPTION = 0X40;  //端口若弱上拉
    OSCCON = 0x71;  //内部振荡,4M
    INTCON = 0Xd0;  //允许RA2/INT中断和中断总开关

    //下面为led端口初始化
    TRISC = 0x00;   //LED端口设置为输出
    LED = 0;        //关闭,LED
//关闭模拟功能
    ANSEL = 0X00;
    ANSELH = 0X00;

    //端口输入初始化,接方波
    TRISA |= 0x04;  //RA2为输入端口
   
    //端口输出初始化:为IO动作准备
    TRISB = 0x00;   //RB4 RB5 RB6 RB7为输出
    PORTB = 0XC0;
}
/*******************************************************************************
函数说明:主函数,根据中断所发生的上升沿次数,A-D端口输出不同脉冲,以驱动步进电机
********************************************************************************/
void main(void)
{
    Init_CPU();

    while(1)
    {
//      LED = ~LED;
        delay_ms(100);
    }
}
/************************************************************************
中断服务函数:LED部分仅仅为了验证是否进入中断
*************************************************************************/
void interrupt INT(void)
{
    static char clk = 0;
    static char num = 0;
//for  test
    if(num ++ == 50)
    {
        LED = ~LED;
        num = 0;
    }

    if(INTF && INTE)
    {
        INTF = 0;

        switch(clk)
        {
                case 0:        RB4 = 1;
                                RB6 = 0;
                                clk = 1;
                                    break;
                    case 1:       
                                RB5 = 1;               
                                RB7 = 0;
                                         clk = 2;
                                    break;
                    case 2:       
                                RB4 = 0;
                                RB6 = 1;
                                clk = 3;
                                    break;
                    case 3:       
                                RB5 = 0;               
                                RB7 = 1;
                                       
                                clk = 0;
                                    break;
                default:break;       
            }
    }
}
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:抢钱、抢粮、抢女人! https://shop105961755.taobao.com/index.htm?spm=2013.1.w5002-3338070316.2.f652157E8BRIA

226

主题

1761

帖子

30

粉丝