查看: 1974|回復: 0
打印 上一主題 下一主題

【開(kāi)發(fā)教程8】ARM功能手機-定時(shí)器實(shí)驗教程

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2022-6-20 19:08:38 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
定時(shí)器實(shí)驗教程
——瘋殼·開(kāi)發(fā)板系列



    圖1


    8LED硬件電路

        板子中有一個(gè)可控LED,接在DA14580的P24引腳,LED串聯(lián)1K的限流電阻,如下圖所示:

   
    圖2

    第二節 Timer寄存器

    2.1 Timer介紹

    軟件定時(shí)器模塊包含兩個(gè)定時(shí)器模塊,它們可以通過(guò)軟件控制、編程并用于各種任務(wù)。
    2.1.1 Timer0

    定時(shí)器0有16位的通用定時(shí)器;可以產(chǎn)生兩路脈寬調制信號;可編程的輸出頻率;可編程的占空比;可編程的軟件中斷。
    2.1.2 Timer2

    定時(shí)器2有14位的通用定時(shí)器;可以產(chǎn)生3路脈寬調制信號;輸入時(shí)鐘頻率為16MHz;可編程的輸入頻率;占空比可調;用于白色LED的亮度控制。

    2.2 寄存器介紹
    2.2.1 定時(shí)器0控制寄存器


    圖3
    15:4位:保留不使用;
    3位:PWM模式選擇,’0’表示PWM信號為高時(shí)輸出’1’,’1’表示PWM信號為高時(shí)輸出快時(shí)鐘信號的二分頻,則輸出頻率范圍為1~8MHz;
    2位:定時(shí)器0的時(shí)鐘分頻,為’1’使用選擇的時(shí)鐘源頻率,為’0’使用選擇的時(shí)鐘源進(jìn)行10分頻,注意這個(gè)值適用于計數寄存器;
    1位:時(shí)鐘源選擇,’1’使用快時(shí)鐘(16、8、4、2MHz),’0’使用慢時(shí)鐘(32KHz);
    0位:定時(shí)器0控制位,’0’表示定時(shí)器0關(guān)閉并處于復位狀態(tài),’1’定時(shí)器0運行。

    2.2.2 定時(shí)器0計數控制寄存器

   
    圖4
    定時(shí)器0計數重新裝載值,如果讀取該寄存器則返回當前計數器的值。
    2.2.3 定時(shí)器0高電平重新裝載值

   
    圖5
    定時(shí)器0高電平重新裝載值,如果讀取該寄存器則返回定時(shí)器0的計數值。
    2.2.4 定時(shí)器0低電平重新裝載值

   
    圖6
    定時(shí)器0低電平重新裝載值,如果讀取該寄存器則返回定時(shí)器0的計數值。
    2.2.5 PWM2占空比

   
    圖7
    PWM2信號的占空比。
    2.2.6 PWM3占空比

   
    圖8
    PWM3信號的占空比。
    2.2.7 PWM4占空比

   
    圖9
    PWM4信號的占空比。
    2.2.8 PWM2,3,4的頻率

   
    圖10
    PWM2、3、4信號的頻率,三個(gè)信號頻率相同。

    2.2.9 PWM2,3,4控制寄存器

  
    圖11
    2位:硬件暫停使能,為’1’則硬件可以停止PWM2、3、4。
    1位:軟件暫停使能,為’1’則PWM2、3、4暫停。
    0位:PWM信號使能,為’1’則PWM2、3、4使能。

    2.3 寄存器配置講解
    #define CLK_PER_REG             (* ( volatile uint16*)0x50000004)
    #define TIMER0_CTRL_REG         (* ( volatile uint16*)0x50003400)
    #define TIMER0_ON_REG           (* ( volatile uint16*)0x50003402)
    #define TIMER0_RELOAD_M_REG     (* ( volatile uint16*)0x50003404)
    #define TIMER0_RELOAD_N_REG      (* ( volatile uint16*)0x50003406)
    #define PWM2_DUTY_CYCLE          (* ( volatile uint16*)0x50003408)
    #define PWM3_DUTY_CYCLE          (* ( volatile uint16*)0x5000340A)
    #define PWM4_DUTY_CYCLE          (* ( volatile uint16*)0x5000340C)
    #define TRIPLE_PWM_FREQUENCY     (* ( volatile uint16*)0x5000340E)
    #define TRIPLE_PWM_CTRL_REG       (* ( volatile uint16*)0x50003410)
    啟動(dòng)Timer0模塊的時(shí)鐘:CLK_PER_REG |= 0x0008;
    定時(shí)器0初始化,選擇高頻時(shí)鐘,正常PWM模式,無(wú)分頻,則TIMER0_CTRL_REG = 0X0E;
    設置計數值為1000,高電平為500,低電平為200,則TIMER0_ON_REG=1000; TIMER0_RELOAD_M_REG=500; TIMER0_RELOAD_N_REG=200;
    開(kāi)定時(shí)器中斷NVIC_SetPriority (SWTIM_IRQn, 254); NVIC_EnableIRQ(SWTIM_IRQn);
    啟動(dòng)定時(shí)器TIMER0_CTRL_REG = (TIMER0_CTRL_REG|0x01);



    第三節 定時(shí)器實(shí)驗

    實(shí)驗需要使用的模塊有:手機開(kāi)發(fā)板底板,Jlink調試工具,杜邦線(xiàn)、3.7V鋰電池或Mocro USB線(xiàn)。
    使用JLINK通過(guò)杜邦線(xiàn)連接手機藍牙位于手機主控底板,連接方式如下:
    (1)JLINK一端只需要使用杜邦線(xiàn)連接JLINK的SWC、SWD、GND三個(gè)引腳,如下圖所示:


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


   圖13
    將JLINK插上電腦的USB接口,連接好之后給手機主控底板供電,詳細的介紹可以參考《如何上電》教程,路徑為:..\WT_Mobile\0.從這里開(kāi)始\0.開(kāi)機測試。
    打開(kāi)定時(shí)器實(shí)驗的Keil工程timer0_general.uvproj,位于目錄:
    ..\WT_Mobile\1.初級教程\DA14580\3_初級_定時(shí)器\projects\target_apps\peripheral_examples\timer0\timer0_general\Keil_5。如下圖所示:

   
    圖14
    使用手環(huán)調試下載線(xiàn)連接好Jlink,編譯,點(diǎn)擊DEBUG,然后點(diǎn)擊全速運行,則可以看到藍色LED閃爍,如下圖所示:





    圖15


    配套資料::http://www.fengke.club
    套件地址:http://shop115904315.taobao.com/
    文件下載請點(diǎn)擊: Timer教程.pdf (750.77 KB)


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

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页