1. 程式人生 > >S5PV210 led_key程式設計流程 GPIO類功能模組操作

S5PV210 led_key程式設計流程 GPIO類功能模組操作

GPIO類程式設計

一.需掌握知識:     應該掌握GPIO的管腳配置。熟悉相關配置的暫存器。

二.程式效果:

今天編寫led_key程式,預期的實驗結果是,在S5PV210開發板上實現用按鍵控制LED閃爍。

三.程式設計思路:

1.首先我們應該知道如何點亮LED。(通過給指定管腳輸出高低電平,控制LED亮滅)

1).通過檢視原理圖,我們可以確定led控制的GPIO管腳。確定LED在CPU上對應的管腳。(GPJ2)

2).之後去開發板晶片手冊,通過查詢管腳得到管腳暫存器的描述。

3).通過檢視對應管腳暫存器的描述,我們可以知道,控制led亮滅需要控制 ,GPJ2CON,GPJ2DAT。

4).仔細檢視每個暫存器的功能描述。思考如何通過暫存器實現led亮滅操作。


2.現在應該知道如何控制key。(通過指定管腳輸入按鍵的狀態)

1). 通過檢視原理圖,我們可以確定key控制的GPIO管腳。確定key在CPU上對應的管腳。GPH2)

2). 之後去開發板晶片手冊,通過查詢管腳得到管腳暫存器的描述。知道如何讀取key的狀態。

3). 通過檢視對應管腳暫存器的描述,我們可以知道,獲取key按鍵的狀態我們需要控制GPH2CON, GPH2DAT.

4).仔細檢視每個暫存器的功能描述。思考如何通過暫存器實現讀取按鍵操作。

3.結合對key和led瞭解。寫出按鍵實現led閃爍。

四.主程式和初始化程式

int xmain()
{
close_buzzer();
init_led();
init_key();

*rGPJ2DAT = 0x0;
while(1)
{
if( (*rGPH2DAT & 0x01) == 0)
{
delay(1);
if( (*rGPH2DAT & 0x01) == 0)
{
while((*rGPH2DAT & 0x01) == 0);
*rGPJ2DAT = ~(*rGPJ2DAT);
}
}
}
return 0;
}

void init_led()
{
*rGPJ2CON = 0x1111;
}


void init_key()
{
*rGPH2CON = 0x0000;
}