電子時(shí)鐘制作(瑞薩RA)(5)----定時(shí)器驅(qū)動(dòng)數(shù)碼管
概述
要想讓每個(gè)數(shù)碼管顯示不同的數(shù)字,但是數(shù)碼管必須依次地被持續(xù)驅(qū)動(dòng),數(shù)碼管之間的刷新速度應(yīng)該足夠快,這樣就看不出來(lái)數(shù)碼管之間在閃爍。刷新頻率可以設(shè)置為2ms刷新一次,這樣人眼就看不出閃爍了。
硬件準(zhǔn)備
首先需要準(zhǔn)備一個(gè)開(kāi)發(fā)板,這里我準(zhǔn)備的是芯片型號(hào)R7FA2E1A72DFL的開(kāi)發(fā)板:

?

視頻教程
https://www.bilibili.com/video/BV1su411L7bQ/

選擇定時(shí)器
RA MCU 有兩個(gè)定時(shí)器外設(shè):通用 PWM 定時(shí)器 (GPT) 和異步通用定時(shí)器 (AGT)。在它們之間進(jìn)行選擇時(shí),請(qǐng)考慮以下因素

?時(shí)鐘源在這設(shè)置的是PCKLD 48M 。 可以通過(guò)修改該頻率來(lái)修改占空比頻率。

定時(shí)器做計(jì)數(shù)器配置
點(diǎn)擊Stacks->New Stack->Timers->Timer, General PWM (r_gpt)。?

設(shè)置定時(shí)器制作計(jì)數(shù)器配置,例如2ms產(chǎn)生一個(gè)中斷,由于不需要對(duì)上升沿和下降沿進(jìn)行捕獲,故只需配置為計(jì)數(shù)模式即可。 設(shè)置2ms刷新一次數(shù)碼管。 頻率=時(shí)鐘源/period,若設(shè)置計(jì)數(shù)時(shí)間為2ms一次,頻率為500Hz,則period=48M/500=96000?

?配置完畢之后需要在主程序中開(kāi)啟定時(shí)器以及開(kāi)始計(jì)數(shù)。

定時(shí)器回調(diào)函數(shù)
可以觸發(fā)進(jìn)入回調(diào)函數(shù)的事件如下所示,我們主要選擇溢出事件TIMER_EVENT_CYCLE_END。?

?首先定義變量顯示數(shù)值。

?新建timer_smg.c和timer_smg.h文件。 在回調(diào)函數(shù)中添加如下代碼,每隔2ms刷新一次數(shù)碼管,4個(gè)數(shù)字與一個(gè)冒號(hào),一共要刷新5次。
timer_smg.c
timer_smg.h
演示效果

主程序