上海妇科疾病研究所 上海女性不孕医院 上海引产医院 无痛引产痛不痛 上海人流医院 白癜风治疗医院 上海小儿脑瘫医院 上海女子医院
Blackfin的技术文章和教学视频连载8:GPIO和中断-2-Blackfin-技术中心-国内专业ADI仿真器,Blackfin开发板,DSP芯片,软件算法,解决方案提供商-北京四维卓信电子有限公司
用户名: 密码:
主页 设为首页 加入收藏
      产品中心       技术中心       下载中心        社区新闻        诚聘英才       大学计划        关于我们       技术论坛
  您的当前位置:ADSP开源社区 >> 技术中心 >> Blackfin 今天是:
技术中心  
SigmaDSP
SHARC
A2B音频总线
Blackfin
ADI操作系统
ADSP-218X
TigerSAHRC
ADI DSP仿真器
产品导航
ADI DSP仿真器
SigmaDSP开发板
ADI A2B总线开发板
SHARC DSP开发板
销售网络
Blackfin  
Blackfin的技术文章和教学视频连载8:GPIO和中断-2
[ 作者:OP ] [ 来源:ADSP开源社区 ] [ 发布时间:2014-8-8 ]

    接上一篇,继续来整Blackfin的IO跟中断!

 
    ADSP-BF53x 的16 个PF 接口都可以做为外部中断来使用。要使用PF 的外部中断,需要为PF 脚选择一个中断源,设置中断触发方式,为中断设置一个中断优先级,并且使能中断。
 
    FIO_MASKA_D 和FIO_MASKB_D:用来为PF 管脚设置中断源,ADSP-BF53x 共有PFA 和PFB 两个中断源,通过选择配置这两个寄存器,使用不同的中断源。
 
    SIC_IARx:设置中断优先等级。每个中断源都有一个默认的优先等级,如不对该寄存器配置,则可以使用默认的中断优先等级配置中断源。
 
 
 
 
    从表中可以看出 PF 管脚相关的中断源PFA 和PFB 位于SIC_IAR2,其默认配置值都为5,根据其配置值,通过下表获知其对应的中断等级为IVG12,如将SIC_IAR2 配置值改为下表中的数值,则中断等级变为该数值对应的中断等级。
 
 
    SIC_IMASK:中断屏蔽寄存器,使能中断使用。
    函数:register_handler(ik_ivg12, FlagA_ISR);
    中断等级注册函数,该函数在头文件“exception.h”中定义,定义该头文件后直接可以使用,其功能是告知中断管理器定义的中断标识符为FlagA_ISR 和中断等级为12 级。
    EX_INTERRUPT_HANDLER(FlagA_ISR);
    中断函数,该函数在头文件“exception.h”中定义,当触发中断后,会进入该函数执行。
 
    接口寄存器说明:
    SIC_IARx:中断等级设置寄存器
    SIC_IMASK:中断屏蔽寄存器
 
    例子代码分析:
 
PF 口设置使用外部中断:
*pFIO_INEN |= PF0|PF1; //设置PF0,PF1 输入使能
*pFIO_DIR &=~(PF0|PF1); //设置PF0,PF1 为输入接口
*pFIO_EDGE |= PF0|PF1; //设置为沿触发
*pFIO_MASKA_D |= PF0|PF1; //使用中断源为PFA,使能PF 外部中断
配置外部中断:
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xffffffff;
*pSIC_IAR2 = 0xffff5fff; //设置中断等级参数为5
register_handler(ik_ivg12, FlagA_ISR); //告知中断管理器使用中断等级为12,中断标志为 FlagA_ISR
*pSIC_IMASK = 0x00080000; //使能外部中断
中断函数:
EX_INTERRUPT_HANDLER(FlagA_ISR) //设置中断函数标志为FlagA_ISR
{
if(*pFIO_FLAG_D == PF0) //判断是否为PF0 中断
{
printf("interrupt is PF0!\n");
}
else if(*pFIO_FLAG_D == PF1) //判断是否为PF1 中断
{
printf("interrupt is PF1!\n");
}
*pFIO_FLAG_C = PF0|PF1; //清除中断标志
}
    代码实现了通过 PF0 和PF1 接口作为外部中断信号触发管脚,当有下降沿出发时进入中断函数,在中断函数中判断是哪一个PF 脚设置了中断,打印出中断PF 脚信息。运行代码后,利用接地的导线触发 PF0 和PF1 管脚,会进入相应的中断,打印出中断信息。
 
源码下载: 链接: http://pan.baidu.com/s/1gdswdXL 密码: kl1f
 
视频教程奉送,GPIO与中断的这2章视频
 
 
清晰版的视频下载: 链接: http://pan.baidu.com/s/1mgke0AW 密码: aid7
 
    下一章准备写一下PLL和EBIU,都是外设,索性这几章就把Blackfin的通用外设都讲完吧。
联系我们 | 关于我们 | 免责声明 | 诚征英才 | 友情链接
Copyright 2019 All rights reserved  本网页版权属Open ADSP所有
北京海淀区中关村大街32号新中发市场3659 邮编100100
电话 18611096839 
粤ICP备14035876号-1