注册 登录
查看: 953|回复: 2

[鹰眼] 摄像头的程序看不懂……

[复制链接]
发表于 2014-1-12 14:39:36 | 显示全部楼层 |阅读模式
void PORTA_IRQHandler()
{
    uint8  n = 0;    //引脚号
    uint32 flag = PORTA_ISFR;            //#define PORTA_ISFR     PORT_ISFR_REG(PORTA_BASE_PTR)                        
    PORTA_ISFR  = ~0;  

    n = 29;                              //场中断
    if(flag & (1 << n))                  //PTA29触发中断
    {
        camera_vsync();
    }

}

红色部分:触发场中断的条件为什么要这样写呢?(1<<n)是把1左移29位的意思吗?这和鹰眼产生的场中断有什么关系吗?

如果既有场中断,又有行中断,都用PORTA_ISFR接受中断,怎么区分它们谁是场中断谁是行中断呢?
回复

使用道具 举报

发表于 2014-1-13 08:48:39 | 显示全部楼层
看一下寄存器 PORTA_ISFR 的说明吧

就是通过状态标志位 来区分是行中断还是场中断:
  1.     n = 29;                              //场中断
  2.     if(flag & (1 << n))                  //PTA29触发中断
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-13 09:43:37 | 显示全部楼层
隗英秀 发表于 2014-1-13 08:48
看一下寄存器 PORTA_ISFR 的说明吧

就是通过状态标志位 来区分是行中断还是场中断:

懂了~谢谢~
回复 支持 反对

使用道具 举报

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

本版积分规则

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