arm mini2440的led燈總結

2021-09-01 22:38:46 字數 1594 閱讀 6739

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...