色偷偷偷久久伊人大杳蕉,色爽交视频免费观看,欧美扒开腿做爽爽爽a片,欧美孕交alscan巨交xxx,日日碰狠狠躁久久躁蜜桃

x
x
查看: 1638|回復(fù): 0
打印 上一主題 下一主題

【教程6】瘋殼·ARM功能手機(jī)-中斷實驗教程

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-8-10 13:51:39 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: ARM , 功能手機(jī) , 中斷 , 實驗教程 , NVIC
ARM功能手機(jī)
——瘋殼·開發(fā)板系列
中斷實驗教程   




    圖1

    第一節(jié)中斷硬件電路
    將P12、P13配置為中斷輸入口,P12和P13已通過排針引出,如下圖所示:




    圖2


    第二節(jié) 中斷
    2.1 中斷介紹
        芯片內(nèi)部有嵌套中斷向量控制器(NVIC,Nested Vectored Interrupt Controller),支持24個中斷,能夠中斷配置與處理異常代碼。當(dāng)發(fā)生一個中斷請求時,自動執(zhí)行對應(yīng)的中斷函數(shù),不需要軟件確定異常向量。中斷可以有4個不同的可編程的優(yōu)先級,NVIC自動處理嵌套中斷。對于安全關(guān)鍵系統(tǒng),有不可屏蔽中斷(NMI,Non maskable interrupt)輸入。
    DA14580內(nèi)部有一個鍵盤控制器,可以用于延時GPIO信號進(jìn)入的時間?梢詸z測所有的I/O口的電平變化。當(dāng)檢測到信號時,可以產(chǎn)生中斷(KEYBR_IRQ)。同時,另外有5個中斷(GPIOn_IRQ)可以被GPIO口觸發(fā)。
    2.2 寄存器介紹
    2.2.1 GPIO_IRQ0中斷源選擇寄存器


   
    圖3
    15:6位:保留不使用;
    5:0位:中斷源選擇,1~32分別對應(yīng)選擇P00~P37,其它值不選擇任何引腳;
    2.2.2 GPIO_IRQ1中斷源選擇寄存器

   
    圖4
    15:6位:保留不使用;
    5:0位:中斷源選擇,1~32分別對應(yīng)選擇P00~P37,其它值不選擇任何引腳;
    2.2.3 GPIO_IRQ2中斷源選擇寄存器

   
    圖5
    15:6位:保留不使用;
    5:0位:中斷源選擇,1~32分別對應(yīng)選擇P00~P37,其它值不選擇任何引腳;
    4.2.4 GPIO_IRQ3中斷源選擇寄存器

   
    圖6
    15:6位:保留不使用;
    5:0位:中斷源選擇,1~32分別對應(yīng)選擇P00~P37,其它值不選擇任何引腳;
    2.2.5 GPIO_IRQ4中斷源選擇寄存器

   
    圖7
    5:6位:保留不使用;
    5:0位:中斷源選擇,1~32分別對應(yīng)選擇P00~P37,其它值不選擇任何引腳;
    2.2.6 GPIO延時寄存器

   
    圖8
    15:14位:保留不使用;
    13位:使能鍵盤接口延時計數(shù);
    12位:使能GPIO IRQ4延時計數(shù);
    11位:使能GPIO IRQ3延時計數(shù);
    10位:使能GPIO IRQ2延時計數(shù);
    9位:使能GPIO IRQ1延時計數(shù);
    8位:使能GPIO IRQ0延時計數(shù);
    7:6位:保留不使用;
    5:0位:延時值,為N毫秒。
    2.2.7 GPIO中斷復(fù)位寄存器

   
    圖9
    15:6位:保留不使用;
    5位:對該位寫1,則復(fù)位KBRD中斷,讀取返回0;
    4位:對該位寫1,則復(fù)位GPIO4中斷,讀取返回0;
    3位:對該位寫1,則復(fù)位GPIO3中斷,讀取返回0;
    4位:對該位寫1,則復(fù)位GPIO2中斷,讀取返回0;
    1位:對該位寫1,則復(fù)位GPIO1中斷,讀取返回0;
    0位:對該位寫1,則復(fù)位GPIO0中斷,讀取返回0。
    2.2.8 GPIO中斷電平控制寄存器


   
    圖10
    15:14位:保留不使用;
    12位:在復(fù)位GPIO中斷4時不需要等待按鍵釋放,所以一個新的中斷會立刻產(chǎn)生;
    11位:在復(fù)位GPIO中斷3時不需要等待按鍵釋放,所以一個新的中斷會立刻產(chǎn)生;
    10位:在復(fù)位GPIO中斷2時不需要等待按鍵釋放,所以一個新的中斷會立刻產(chǎn)生;
    9位:在復(fù)位GPIO中斷1時不需要等待按鍵釋放,所以一個新的中斷會立刻產(chǎn)生;
    8位:在復(fù)位GPIO中斷0時不需要等待按鍵釋放,所以一個新的中斷會立刻產(chǎn)生;
    7:6位:保留不使用;
    4位:為0則表示輸入高電平產(chǎn)生GPIO中斷4,為1則表示輸入低電平產(chǎn)生GPIO中斷4;
    3位:為0則表示輸入高電平產(chǎn)生GPIO中斷3,為1則表示輸入低電平產(chǎn)生GPIO中斷3;
    2位:為0則表示輸入高電平產(chǎn)生GPIO中斷2,為1則表示輸入低電平產(chǎn)生GPIO中斷2;
    1位:為0則表示輸入高電平產(chǎn)生GPIO中斷1,為1則表示輸入低電平產(chǎn)生GPIO中斷1;
    0位:為0則表示輸入高電平產(chǎn)生GPIO中斷0,為1則表示輸入低電平產(chǎn)生GPIO中斷0;
    注:數(shù)據(jù)手冊中該寄存器中沒有標(biāo)注13位和5位,可能是勘誤。
    2.2.9 鍵盤中斷源選擇寄存器0

   
    圖11
    15位:為0則表示按鍵釋放不產(chǎn)生中斷,為1表示按鍵釋放也產(chǎn)生中斷;
    14位:為0則表示輸入高電平產(chǎn)生KBRD中斷,為1則表示輸入低電平產(chǎn)生KBRD中斷;
    13:8位:當(dāng)按鍵按下,在不等于0的規(guī)定時間之后,自動產(chǎn)生重復(fù)按鍵中斷,為0則禁止定時器;
    7位:使能P07產(chǎn)生鍵盤中斷;
    6位:使能P06產(chǎn)生鍵盤中斷;
    5位:使能P05產(chǎn)生鍵盤中斷;
    4位:使能P04產(chǎn)生鍵盤中斷;
    3位:使能P03產(chǎn)生鍵盤中斷;
    2位:使能P02產(chǎn)生鍵盤中斷;
    1位:使能P01產(chǎn)生鍵盤中斷;
    0位:使能P00產(chǎn)生鍵盤中斷。
    2.2.10 鍵盤中斷源選擇寄存器1

   
    圖12
    15位:使能P15產(chǎn)生鍵盤中斷;
    14位:使能P14產(chǎn)生鍵盤中斷;
    13位:使能P13產(chǎn)生鍵盤中斷;
    12位:使能P12產(chǎn)生鍵盤中斷;
    11位:使能P11產(chǎn)生鍵盤中斷;
    10位:使能P10產(chǎn)生鍵盤中斷;
    9位:使能P29產(chǎn)生鍵盤中斷;
    8位:使能P28產(chǎn)生鍵盤中斷。
    7位:使能P27產(chǎn)生鍵盤中斷;
    6位:使能P26產(chǎn)生鍵盤中斷;
    5位:使能P25產(chǎn)生鍵盤中斷;
    4位:使能P24產(chǎn)生鍵盤中斷;
    3位:使能P23產(chǎn)生鍵盤中斷;
    2位:使能P22產(chǎn)生鍵盤中斷;
    1位:使能P21產(chǎn)生鍵盤中斷;
    0位:使能P20產(chǎn)生鍵盤中斷。
    2.2.11 鍵盤中斷源選擇寄存器2

   
    圖13
    7位:使能P37產(chǎn)生鍵盤中斷;
    6位:使能P36產(chǎn)生鍵盤中斷;
    5位:使能P35產(chǎn)生鍵盤中斷;
    4位:使能P34產(chǎn)生鍵盤中斷;
    3位:使能P33產(chǎn)生鍵盤中斷;
    2位:使能P32產(chǎn)生鍵盤中斷;
    1位:使能P31產(chǎn)生鍵盤中斷;
    0位:使能P30產(chǎn)生鍵盤中斷。
    2.3 寄存器配置講解
    #define GPIO_IRQ0_IN_SEL_REG        (* ( volatile uint16*) 0x50001400)
    #define GPIO_IRQ1_IN_SEL_REG        (* ( volatile uint16*) 0x50001402)
    #define GPIO_IRQ2_IN_SEL_REG        (* ( volatile uint16*) 0x50001404)
    #define GPIO_IRQ3_IN_SEL_REG        (* ( volatile uint16*) 0x50001406)
    #define GPIO_IRQ4_IN_SEL_REG        (* ( volatile uint16*) 0x50001408)
    #define GPIO_DEBOUNCE_REG         (* ( volatile uint16*) 0x5000140C)
    #define GPIO_RESET_IRQ_REG          (* ( volatile uint16*) 0x5000140E)
    #define GPIO_INT_LEVEL_CTRL_REG     (* ( volatile uint16*) 0x50001410)
    #define KBRD_IRQ_IN_SEL0_REG        (* ( volatile uint16*) 0x50001412)
    #define KBRD_IRQ_IN_SEL1_REG        (* ( volatile uint16*) 0x50001414)
    #define KBRD_IRQ_IN_SEL2_REG         (* ( volatile uint16*) 0x50001416)
    例1:P02為GPIO中斷1的中斷源,延時20毫秒,高電平產(chǎn)生中斷,等待按鍵釋放,如下所示:
    GPIO_IRQ1_IN_SEL_REG =0x0003;
    GPIO_DEBOUNCE_REG =0x0114;
    GPIO_INT_LEVEL_CTRL_REG =0x0202;
    GPIO中斷1配置完成,在GPIO中斷1的中斷函數(shù)中需要復(fù)位中斷,需要添加語句GPIO_RESET_IRQ_REG =0x0002;這樣才能進(jìn)行下一次中斷。
    例2:P03,P12,P28為KBRD中斷源,低電平有效,釋放不產(chǎn)生中斷,不重復(fù)觸發(fā)中斷,延時30毫秒,如下所示:
    KBRD_IRQ_IN_SEL0_REG =0x4008;
    KBRD_IRQ_IN_SEL1_REG =0x1100;
    GPIO_DEBOUNCE_REG =0x201e;
    鍵盤中斷配置完成,在鍵盤中斷函數(shù)中需要復(fù)位中斷,需要添加語句GPIO_RESET_IRQ_REG =0x0020;這樣才能進(jìn)行下一次中斷。


    第三節(jié) 中斷實驗
    實驗需要使用的模塊有:手機(jī)開發(fā)板底板,Jlink調(diào)試工具,杜邦線、3.7V鋰電池或Mocro USB線。
    使用JLINK通過杜邦線連接手機(jī)藍(lán)牙位于手機(jī)主控底板,連接方式如下:
    (1)JLINK一端只需要使用杜邦線連接JLINK的SWC、SWD、GND三個引腳,如下圖所示:

   
    圖14
    (2)手機(jī)藍(lán)牙一端需要使用杜邦線連接上方右側(cè)的J3三個引腳,與JLINK的連接引腳一一對應(yīng),分別為SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下圖所示:

   
    圖15
    將JLINK插上電腦的USB接口,連接好之后給手機(jī)主控底板供電,詳細(xì)的介紹可以參考《如何上電》教程,路徑為:..\WT_Mobile\0.從這里開始\0.開機(jī)測試。
    打開中斷實驗的Keil工程blinky.uvproj,位于目錄:
    ..\WT_Mobile\1.初級教程\DA14580\4_初級_中斷\projects\target_apps\peripheral_examples\interrupt\Keil_5,如下圖所示:

   
    圖16
    在KEIL中編譯源代碼,點擊DEBUG,然后點擊全速運行,如下圖所示:



   
    圖17
    全速運行之后,將杜邦線的一頭接在3.3V引腳上,另一頭碰一下P13引腳,即可進(jìn)入P13對應(yīng)的外部中斷,執(zhí)行中斷內(nèi)的程序(點亮LED),碰一下P12引腳,則進(jìn)入P12對應(yīng)的外部中斷,執(zhí)行中斷中的程序(關(guān)閉LED)。注意:因為中斷觸發(fā)方式為邊沿觸發(fā),碰上之后再斷開才有效。


如需定制開發(fā),請通過官網(wǎng)“瘋殼”網(wǎng)頁底部的“聯(lián)系我們”進(jìn)行聯(lián)系   

    文件下載請點擊: 中斷教程.pdf (1.09 MB)


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表