歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> mini2440(2) LED燈裸機硬件控制程序

mini2440(2) LED燈裸機硬件控制程序

日期:2017/3/1 10:09:59   编辑:Linux編程

查找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燈就全部亮了。

Copyright © Linux教程網 All Rights Reserved