上海婦科疾病研究所 上海女性不孕醫(yī)院 上海引產(chǎn)醫(yī)院 無痛引產(chǎn)痛不痛 上海人流醫(yī)院 白癜風(fēng)治療醫(yī)院 上海小兒腦癱醫(yī)院 上海女子醫(yī)院
小说排行榜,盗墓笔记

国产精品无码毛片AV_亚洲毛片精品在线_全球黄色短视频在线免费观看_亚洲一区二区爱av_成年人免费观看网址_欧美美女性爱喷水网址_亚洲毛片av无码不卡_国产无码视频在线观看_高清国语自产拍在线播放_女人午夜免费黄片

用戶名: 密碼:
主頁 設(shè)為首頁 加入收藏
      產(chǎn)品中心       技術(shù)中心       下載中心        社區(qū)新聞        誠聘英才       大學(xué)計劃        關(guān)于我們       技術(shù)論壇
  您的當(dāng)前位置:ADSP開源社區(qū) >> 技術(shù)中心 >> Blackfin 今天是:
技術(shù)中心  
SigmaDSP
SHARC
A2B音頻總線
Blackfin
ADI操作系統(tǒng)
ADSP-218X
TigerSAHRC
ADI DSP仿真器
產(chǎn)品導(dǎo)航
ADI DSP仿真器
SigmaDSP開發(fā)板
ADI A2B總線開發(fā)板
SHARC DSP開發(fā)板
銷售網(wǎng)絡(luò)
Blackfin  
Blackfin的技術(shù)文章和教學(xué)視頻連載8:GPIO和中斷-2
[ 作者:OP ] [ 來源:ADSP開源社區(qū) ] [ 發(fā)布時間:2014-8-8 ]

    接上一篇,繼續(xù)來整Blackfin的IO跟中斷!

 
    ADSP-BF53x 的16 個PF 接口都可以做為外部中斷來使用。要使用PF 的外部中斷,需要為PF 腳選擇一個中斷源,設(shè)置中斷觸發(fā)方式,為中斷設(shè)置一個中斷優(yōu)先級,并且使能中斷。
 
    FIO_MASKA_D 和FIO_MASKB_D:用來為PF 管腳設(shè)置中斷源,ADSP-BF53x 共有PFA 和PFB 兩個中斷源,通過選擇配置這兩個寄存器,使用不同的中斷源。
 
    SIC_IARx:設(shè)置中斷優(yōu)先等級。每個中斷源都有一個默認(rèn)的優(yōu)先等級,如不對該寄存器配置,則可以使用默認(rèn)的中斷優(yōu)先等級配置中斷源。
 
 
 
 
    從表中可以看出 PF 管腳相關(guān)的中斷源PFA 和PFB 位于SIC_IAR2,其默認(rèn)配置值都為5,根據(jù)其配置值,通過下表獲知其對應(yīng)的中斷等級為IVG12,如將SIC_IAR2 配置值改為下表中的數(shù)值,則中斷等級變?yōu)樵摂?shù)值對應(yīng)的中斷等級。
 
 
    SIC_IMASK:中斷屏蔽寄存器,使能中斷使用。
    函數(shù):register_handler(ik_ivg12, FlagA_ISR);
    中斷等級注冊函數(shù),該函數(shù)在頭文件“exception.h”中定義,定義該頭文件后直接可以使用,其功能是告知中斷管理器定義的中斷標(biāo)識符為FlagA_ISR 和中斷等級為12 級。
    EX_INTERRUPT_HANDLER(FlagA_ISR);
    中斷函數(shù),該函數(shù)在頭文件“exception.h”中定義,當(dāng)觸發(fā)中斷后,會進(jìn)入該函數(shù)執(zhí)行。
 
    接口寄存器說明:
    SIC_IARx:中斷等級設(shè)置寄存器
    SIC_IMASK:中斷屏蔽寄存器
 
    例子代碼分析:
 
PF 口設(shè)置使用外部中斷:
*pFIO_INEN |= PF0|PF1; //設(shè)置PF0,PF1 輸入使能
*pFIO_DIR &=~(PF0|PF1); //設(shè)置PF0,PF1 為輸入接口
*pFIO_EDGE |= PF0|PF1; //設(shè)置為沿觸發(fā)
*pFIO_MASKA_D |= PF0|PF1; //使用中斷源為PFA,使能PF 外部中斷
配置外部中斷:
*pSIC_IAR0 = 0xffffffff;
*pSIC_IAR1 = 0xffffffff;
*pSIC_IAR2 = 0xffff5fff; //設(shè)置中斷等級參數(shù)為5
register_handler(ik_ivg12, FlagA_ISR); //告知中斷管理器使用中斷等級為12,中斷標(biāo)志為 FlagA_ISR
*pSIC_IMASK = 0x00080000; //使能外部中斷
中斷函數(shù):
EX_INTERRUPT_HANDLER(FlagA_ISR) //設(shè)置中斷函數(shù)標(biāo)志為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; //清除中斷標(biāo)志
}
    代碼實現(xiàn)了通過 PF0 和PF1 接口作為外部中斷信號觸發(fā)管腳,當(dāng)有下降沿出發(fā)時進(jìn)入中斷函數(shù),在中斷函數(shù)中判斷是哪一個PF 腳設(shè)置了中斷,打印出中斷PF 腳信息。運行代碼后,利用接地的導(dǎo)線觸發(fā) PF0 和PF1 管腳,會進(jìn)入相應(yīng)的中斷,打印出中斷信息。
 
源碼下載: 鏈接: http://pan.baidu.com/s/1gdswdXL 密碼: kl1f
 
視頻教程奉送,GPIO與中斷的這2章視頻
 
 
清晰版的視頻下載: 鏈接: http://pan.baidu.com/s/1mgke0AW 密碼: aid7
 
    下一章準(zhǔn)備寫一下PLL和EBIU,都是外設(shè),索性這幾章就把Blackfin的通用外設(shè)都講完吧。
聯(lián)系我們 | 關(guān)于我們 | 免責(zé)聲明 | 誠征英才 | 友情鏈接
Copyright 2019 All rights reserved  本網(wǎng)頁版權(quán)屬Open ADSP所有
北京海淀區(qū)中關(guān)村大街32號新中發(fā)市場3659 郵編100100
電話 18611096839 
粵ICP備14035876號-1