led燈例子
一、led電路圖
-----------------------------------------
二、手冊說明
這裡對應s3c2440文件,第9章io部分的文件找到gpb部分
gpbcon
gpb0-10用於設定輸入、輸出、和其他特殊屬性
gpbdat
這裡的11位對應gpb0-10 用於控制高低電平
gpbup
是埠上拉暫存器 埠上拉暫存器控制著每個埠組的上拉暫存器的使能或禁止,當對應bit為0,這個引腳的上拉暫存器是允許的,當為1時,上拉暫存器是禁止的。
********************=
三、分析**
/* * 功能:實現led1燈迴圈亮滅
* led1--gpb5
* led2--gpb6
* led3--gpb7
* led4--gpb8
*/#define rgpbcon (*(volatile unsigned long*)0x56000010)
#define rgpbdat (*(volatile unsigned long*)0x56000014)
#define led1_on ~(1<<5)
#define led1_off (1<<5)
void led_port_init(void);
void delay(int i);
int main(void) }/*
* 函式名稱:led_port_init()
* 全域性變數:無
* 參 數:無
* 返 回 值:無
* 說 明:實現led1燈的暫存器初始化
*/void led_port_init(void)
/** 函式名稱:delay(int t)
* 全域性變數:無
* 參 數:t
* 返 回 值:無
* 說 明:延時函式
*/void delay(int t)
------------------------------------
分析1、*(volatile unsigned long*)0x56000010
volatile unsigned long *表示將後面跟的內容轉化成乙個指標,並且是指向乙個易變的無符號整數。
左邊再加個*,表示取該指標指向位址的內容
#define rgpbcon (*(volatile unsigned long*)0x56000010)
#define rgpbdat (*(volatile unsigned long*)0x56000014)
這個巨集用於定義gpbcon,gpbdat位址(值對應手冊中的值)
---------
這個方法用於初始化
void led_port_init(void)
---------
#define led1_on ~(1<<5) //因為是gbp5所以左移5位
#define led1_off (1<<5)
while (1)
這裡修改gpbdat來控制燈的開啟和關閉
********************=
mini2440 led測試程式
本程式用到的硬體資源 nled 1 nled 2 nled 3 nled 4 gpb5 gpb6 gpb7 gpb8 k2 l5 k7 k5 儲存器位址分配如下 sdram 0x3000,0000 0x3400,0000 特殊功能暫存器 0x4800,0000 0x6000,0000 ads1.2編...
2440裸機程式分析之led
今天 用心 把 led 顯示 的原理弄懂了一下。注釋如下 首先,對照著tq 2440 v2原理圖觀察到了4個led燈的管腳分別為gpb5,gpb6,gpb7,gpb8.有詳細觀察 發現gpb共有11個管腳 其中gpb0到gpb3為高電平有效,gpb4到gpb10為低電平有效,這不是用0 x 就可以控...
jz2440 LED 裝置樹之點亮LED燈
簡介 裝置驅動程式中,匯流排驅動模型和裝置樹的差別在於平台裝置的構建不同,在傳統平台裝置驅動程式寫在c檔案中,使用裝置樹時,平台裝置之前不存在,在dts檔案中構造節點,節點裡面含有資源,裝置樹詳細的內容我會在以後的部落格中詳細介紹。cpu jz2440 u boot u boot 1.1.6 ker...