打印
[AVR单片机]

ATMega644p的pin change interrupt代码

[复制链接]
3577|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

使用特权

评论回复
5
xing02100| | 2015-10-21 22:30 | 只看该作者
怎么解决啊?求助!

使用特权

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

本版积分规则

85

主题

1601

帖子

2

粉丝