mini2440 LED燈裸機硬體控制程式

2022-08-18 16:57:10 字數 1262 閱讀 5437

查詢mini2440的原理圖,找到led部分的原理圖:

然後查詢nled_1到nled_4分別連線的s3c2440的引腳:

由圖可知:

nled_1---gpb5

nled_2---gpb6

nled_3---gpb7

nled_4---gpb8

在s3c2440的引腳劃分中,這四個引腳都屬於port b,因此可以通過配置port b的控制暫存器對這四個引腳的功能進行配置

如果要讓led燈亮,nled_1到nled_4端需要低電平,因此gpb5到gpb8引腳需要:

(1)輸出:gpbcon

因此,gpbcon暫存器的11,13,15,17位要設定為0,而10,12,14,16位要設定為1,而且我們還知道gpbcon暫存器的位址為0x56000010:

#define gpbcon (*((volatile unsigned long*)0x56000010))

// gpbcon = 0000 0000 0000 0000 0000 0000 0000 0000

// gpbcon = 0000 0000 0000 0001 0101 0100 0000 0000

gpbcon = 0x00015400;

(2)低電平;

由此可知,在引腳設定為輸出時,引腳的狀態與暫存器中對應位的狀態保持一致,因此,要將引腳設定為低電平,我們只需要將暫存器中的5、6、7、8位設定為低電平即可:

#define gpbdat (*((volatile unsigned long*)0x56000014))

#define leds (1<<5 | 1<<6 | 1<<7 | 1<<8)

gpbdat = gpbdat & (~leds);

這樣,就可以在這四個引腳上面都輸出低電平,四個led燈就全部亮了。

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

mini2440 led驅動及 應用程式注釋

驅動程式部分 在核心 driver char 目錄中建立檔案s3c2440 leds.c 原始碼如下 include include include include include include include include include include include include inc...

mini2440裸機程式之二 點亮LED燈

開發板 mini2440 sdk mdk 開發語言 彙編 本次目的 開發板四個led燈連續間斷閃爍 1 硬體電路 2 程式示例 pgpbcon equ 0x56000010 pgpbdat equ 0x56000014 pgpbup equ 0x56000018 area ledasmtest,co...