[AVR单片机] ATMega644p的pin change interrupt代码

[复制链接]
4355|4
 楼主| mxh0506 发表于 2008-11-5 12:32 | 显示全部楼层 |阅读模式
// 初始化部分
// Pin change interrupt
// PCINT20 enabled, other PCINTs disabled
PCIFR = 0x0f;        // clear all pin change interrupt flags
PCICR = (1<<PCIE2);        // PCINT23:16 enabled
PCMSK3 = 0;
PCMSK2 = (1<<PCINT20);    // PCINT20 enabled
PCMSK1 = 0;
PCMSK0 = 0;
...
sei();    // enable interrupts globally
...

// 中断服务程序
#pragma vector=PCINT2_vect
__interrupt void irqPCInt2(void)
{
    // PCIF2 bit in the PCIFR register is automatically cleared when interrupt service routine is executed
    
    static BOOL bDebug;
    if(bDebug){
        DEBUG_LO;
        bDebug = 0;
    }else{
        DEBUG_HI;
        bDebug = 1;
    }
}
 楼主| mxh0506 发表于 2008-11-5 12:37 | 显示全部楼层

实际烧到板子上运行时,却进不去PCINT2中断

而其它中断(T0溢出串行收发等)都正常
苦于试验板只有一块,不太容易确定是否是硬件问题.
只是查了查手册中的ERRATA,没发现有用的信息.
各位给点建议吧
 楼主| mxh0506 发表于 2008-11-5 14:22 | 显示全部楼层

已经解决了

是程序的其它部分有问题
xing02100 发表于 2015-10-21 16:22 | 显示全部楼层
是什么问题啊,我也遇到了类似的问题。能否将解决方法告诉我,邮箱:xing02100@sina.com
xing02100 发表于 2015-10-21 22:30 来自手机 | 显示全部楼层
怎么解决啊?求助!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

1601

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部