注册 登录
查看: 362|回复: 3

[鹰眼] 为什么中断近进去啊

[复制链接]
发表于 2014-6-5 20:59:27 | 显示全部楼层 |阅读模式
void main(){
disable_irq(PORTA_IRQn);
port_init(PTA6, IRQ_RISING | PF | ALT1 | PULLUP );
port_init(PTA5, IRQ_RISING | PF | ALT1 | PULLUP );
set_vector_handler(PORTA_VECTORn ,PORTA_IRQHandler); }

void PORTA_IRQHandler()
{
    uint8  n = 0;    //引脚号
    uint32 flag = PORTA_ISFR;
    PORTA_ISFR  = ~0;  
   
    n = 5;                                              //场中断
    if(flag & (1 << n))                                 //PTA5触发中断
    {
     Line++; }
}

这程序有问题么,求大神解答。
回复

使用道具 举报

发表于 2014-6-6 00:30:59 | 显示全部楼层
本帖最后由 晨曦の光 于 2014-6-6 00:35 编辑

把PORTA_ISFR赋值给flag获得的应该是寄存器的地址,想判断ISFR寄存器里面第五位是否被置1直接if(PORTA_ISFR&(1<<5));就可以了,清标志位放到判断之后
回复 支持 反对

使用道具 举报

发表于 2014-6-6 09:10:31 | 显示全部楼层
还有,配置好后你没有enable_irq(PORTA_IRQn);
回复 支持 反对

使用道具 举报

发表于 2014-7-9 19:35:15 | 显示全部楼层
请问一下现在你的中断能进了么???求教呀!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回列表 返回顶部