電子時鐘制作(瑞薩RA)(7)----按鍵修改數(shù)碼管時間
概述
前幾節(jié)課程已經(jīng)單獨驅動了數(shù)碼管和RTC,同時已經(jīng)整合成了能夠用數(shù)碼管顯示具體時間,但是無法修改時間,這節(jié)就來配置使用按鍵修改具體的日期。
硬件準備
首先需要準備一個開發(fā)板,這里我準備的是芯片型號R7FA2E1A72DFL的開發(fā)板:

?

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

配置按鍵管腳
這里的按鍵對應管腳如下所示。?

配置管腳為輸入模式,同時加個上拉,這樣默認電平為高電平,按鍵按下對應管腳為低電平。?

配置蜂鳴器管腳(先不配置)
這里的蜂鳴器對應管腳如下所示。?

配置P012管腳為輸出模式,這樣默認電平為低電平,需要蜂鳴器響可以設置為高電平。?

可以在開啟時候蜂鳴器響一下進行提示。
定義蜂鳴器交替鳴叫,這樣可以在鬧鐘到了的時候進行提示或者功能修改時候進行提示。
按鍵設置
可以用R_IOPORT_PinRead()函數(shù)進行讀取IO口電平狀態(tài),該函數(shù)只能讀取一個端口的電平。 定義變量保存按鍵狀態(tài)。

定義主程序的while循環(huán)為10ms執(zhí)行一次,方便按鍵的讀取以及時間設置。
在timer_smg.c中添加變量的定義。

?設置按sw1按鍵下1s進入下個模式,sw2進行時間小時和分鐘的向下修改,sw3進行時間小時和分鐘的向上修改。
在timer_smg.c中添加該函數(shù)。?

?同時需要在在timer_smg.h中聲明。

由于需要修改我們的RTC時鐘數(shù)值,需要引入定義RTC的結構體。

修改完畢之后可以在定時器種進行數(shù)碼管閃爍來提示用戶。
初始化完畢的時候我們需要將時間數(shù)據(jù)保存下來。

?在主程序中,每當秒數(shù)為0時候,保存分鐘和小時的數(shù)據(jù)到min與hour,方便在設置時間的時候進行讀取以及設置完畢時間之后更新到RTC里面。

?在主程序中加入按鍵處理函數(shù)。

主程序
timer_smg.c
timer_smg.h