/*
名稱:S3C2440學習之GPIO按鍵控制LED燈
說明:這是實驗2440GPIO的輸入功能。基本的流程和51單片機開發(fā)的差不多。都是對GPIO端口寄存器的控制不同的是,51單片機可以直接對進行位控制,而2440中GPIO只能對32位的寄存器進行寫入或者讀出。這樣的話,對于有些邏輯操作要稍微復雜點。還有個不同的是,無論是STM32還是51在進行IO按鍵輸入的時候,都需要進行按鍵消抖,在這里卻沒又體現(xiàn)出來按鍵消抖,這是為什么呢?據(jù)我了解是這樣,在進行51和STM32實驗的時候,按鍵控制的是數(shù)碼管(數(shù)字增加,降低),所以按鍵的機械抖動會給數(shù)碼管數(shù)字的變化帶來顯著的影響。在這里是按鍵控制led燈的亮和滅,雖然仍然存在機械抖動,但是由于led只有兩種狀態(tài),而且機械抖動只有幾十毫秒,使得人眼分辨不出來了感覺是沒影響一樣。
*/
#define GPFCON (*(volatile unsigned long *)0x56000050)
#define GPFDAT (*(volatile unsigned long *)0x56000054)
#define GPGCON (*(volatile unsigned long *)0x56000060)
#define GPGDAT (*(volatile unsigned long *)0x56000064)
/*
* LED1,LED2,LED4對應(yīng)GPF4、GPF5、GPF6
*/
#define GPF4_out (1<<(4*2))
#define GPF5_out (1<<(5*2))
#define GPF6_out (1<<(6*2))
#define GPF4_msk (3<<(4*2))
#define GPF5_msk (3<<(5*2))
#define GPF6_msk (3<<(6*2))
/*
* S2,S3,S4對應(yīng)GPF0、GPF2、GPG3
*/
#define GPF0_in (0<<(0*2))
#define GPF2_in (0<<(2*2))
#define GPG3_in (0<<(3*2))
#define GPF0_msk (3<<(0*2))
#define GPF2_msk (3<<(2*2))
#define GPG3_msk (3<<(3*2))
int main()
{
unsigned long dwDat;
// LED1,LED2,LED4對應(yīng)的3根引腳設(shè)為輸出
GPFCON &= ~(GPF4_msk | GPF5_msk | GPF6_msk);
GPFCON |= GPF4_out | GPF5_out | GPF6_out;
// S2,S3對應(yīng)的2根引腳設(shè)為輸入
GPFCON &= ~(GPF0_msk | GPF2_msk);
GPFCON |= GPF0_in | GPF2_in;
// S4對應(yīng)的引腳設(shè)為輸入
GPGCON &= ~GPG3_msk;
GPGCON |= GPG3_in;
while(1)
{
//若Kn為0(表示按下),則令LEDn為0(表示點亮)
dwDat = GPFDAT; // 讀取GPF管腳電平狀態(tài)
if (dwDat & (1<<0)) // S2沒有按下
GPFDAT |= (1<<4); // LED1熄滅
else
GPFDAT &= ~(1<<4); // LED1點亮
if (dwDat & (1<<2)) // S3沒有按下
GPFDAT |= (1<<5); // LED2熄滅
else
GPFDAT &= ~(1<<5); // LED2點亮
dwDat = GPGDAT; // 讀取GPG管腳電平狀態(tài)
if (dwDat & (1<<3)) // S4沒有按下
GPFDAT |= (1<<6); // LED3熄滅
else
GPFDAT &= ~(1<<6); // LED3點亮
}
return 0;
}
上一篇:STM32定時器之控制LED燈循環(huán)顯示
下一篇:ARM學習之時鐘體系結(jié)構(gòu)
推薦閱讀
史海拾趣
設(shè)計資源 培訓 開發(fā)板 精華推薦
- 半導體關(guān)稅可能會使您的下一輛汽車更加昂貴
- 潮起!人形機器人成本的20%-30%——靈巧手,國產(chǎn)3大廠商正快速產(chǎn)業(yè)化!
- AB Dynamics發(fā)布用于無人駕駛測試的物體檢測系統(tǒng)
- AI重構(gòu)出行:高階輔助駕駛的破局之路
- 廣汽即將發(fā)布全新星源增程技術(shù)
- Yole表示,到2030年,數(shù)據(jù)中心芯片市場規(guī)模將達到5000億美元
- 綠色節(jié)能趨勢下的延時繼電器發(fā)展:低功耗設(shè)計與環(huán)保材料應(yīng)用
- 國內(nèi)車企在固態(tài)電池領(lǐng)域的挑戰(zhàn)和技術(shù)方案
- 資本熱捧 + 政策護航,2025 人形機器人能否叩開 “量產(chǎn)元年” 大門?
- 耐世特推出用于智能運動控制的 MotionIQ?軟件套件
- 中國機器人市場預計到2022年將達到770億美元,占全球總量38%以上
- 我國核電機器人發(fā)展現(xiàn)狀及未來趨勢分析
- 國內(nèi)機器人系統(tǒng)集成商企業(yè)分布介紹
- 我國智能巡檢機器人優(yōu)勢明顯,未來發(fā)展前景呈現(xiàn)美好
- 機器人和傳感器在各個領(lǐng)域的應(yīng)用
- 臨芯投資李亞軍:10-20年后,中國將會現(xiàn)英特爾般半導體巨頭
- 功率半導體模塊“東風造”! 智新半導體生產(chǎn)線或4月量產(chǎn)
- 北美先進封裝預計到2026年收入達50億美元
- 臺媒:聯(lián)電、世界先進代工春節(jié)后或二次漲價,漲幅在10%~15%
- EDA公司芯華章宣布完成A+輪融資,加速EDA 2.0研發(fā)進程