您的位置:首页 > 编程语言

基于mini2440轮询控制LED(裸机代码)

2012-11-27 11:53 501 查看
#define GLOBAL_CLK
#include "def.h"
#include "option.h"
#include "2440addr.h"
#include "2440lib.h"
#include "2440slib.h"

#define LED1_on  rGPBDAT = ((0xf<<5)^(1<<5))  	//GPB5=0
#define LED2_on  rGPBDAT = ((0xf<<5)^(1<<6))	//GPB6=0
#define LED3_on  rGPBDAT = ((0xf<<5)^(1<<7))  	//GPB7=0
#define LED4_on  rGPBDAT = ((0xf<<5)^(1<<8)) 	//GPB8=0
#define LED1_3_on  rGPBDAT = ((0xf<<5)^(5<<5))	//GPB5=0,GPB7=0
#define LED2_4_on  rGPBDAT = ((0xf<<5)^(5<<6)) 	//GPB6=0,GPB8=0
#define LED_off  rGPBDAT = (0xf<<5) //GPB5=1,GPB6=1,GPB7=1,GPB8=1
#define LED_on  rGPBDAT = ~(0xf<<5) //GPB5=0,GPB6=0,GPB7=0,GPB8=0

int Main()     /*GPG0 GPG3  GPG5  GPG6   GPG7   GPG11 设置为输入*/
{	rGPGCON = ((0<1)|(0<7)|(0<11)|(0<13)|(0<15)|(0<23));
rGPBCON = ((1<10)|(1<12)|(1<14)|(1<16));//B口GPB5-6-7-8设为输出
LED_off;

while( 1 )
{

if (rGPGDAT&(1<<0)) //如果K1没有被按下
{
LED_off;
}
else
{
LED1_on;
}
if (rGPGDAT&(1<<3)) //如果K2没有被按下
{
LED_off;
}
else
{
LED2_on;
}
if (rGPGDAT&(1<<5)) //如果K3没有被按下
{
LED_off;
}
else
{
LED3_on;
}
if (rGPGDAT&(1<<6)) //如果K4没有被按下
{
LED_off;
}
else
{
LED4_on;
}
if (rGPGDAT&(1<<7)) //如果K5没有被按下
{
LED_off;
}
else
{
LED1_3_on;
}
if (rGPGDAT&(1<<11)) //如果K6没有被按下
{
LED_off;
}
else
{
LED2_4_on;
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  arm C