mini2440裸机程序--LED灯(C语言)

         看了mini2440配套光盘里面的例子,C语言的点亮LED程序略显复杂。当时打开工程,看到这么多文件,顿时傻了眼。还好自己能够有良好的心态,慢慢弄。     
          对于点亮LED灯的 C语言程序,相对于汇编程序,除了MDK系统自动添加的启动代码S3C2440.S ,其余的也就和汇编程序的步骤一样了。现在就把程序附在下面:

#define  rGPBCON  (*(volatile unsigned long *)0x56000010)
#define  rGPBDAT  (*(volatile unsigned long *)0x56000014)
#define  rGPBUP   (*(volatile unsigned long *)0x56000018)

#define GPB5_IN ~(3<<10)
#define GPB6_IN ~(3<<12)
#define GPB7_IN ~(3<<14)
#define GPB8_IN ~(3<<16)

#define GPB5_OUT (1<<10)
#define GPB6_OUT (1<<12)
#define GPB7_OUT (1<<14)
#define GPB8_OUT (1<<16)

#define LED1_ON ~(1<<5)
#define LED2_ON ~(1<<6)
#define LED3_ON ~(1<<7)
#define LED4_ON ~(1<<8)

#define LED1_OFF (1<<5)
#define LED2_OFF (1<<6)
#define LED3_OFF (1<<7)
#define LED4_OFF (1<<8)

void Led_Port_Init(void);
void Delay(int tt);

void main()
{
Led_Port_Init();

rGPBDAT |= (LED1_OFF|LED2_OFF|LED3_OFF|LED4_OFF);

while(1)
{
rGPBDAT = rGPBDAT&(LED1_ON);
Delay(1000);
rGPBDAT = rGPBDAT|((LED1_OFF)|(LED2_OFF)|(LED3_OFF)|(LED4_OFF));
Delay(1000);

rGPBDAT = rGPBDAT&(LED2_ON);
Delay(1000);
rGPBDAT = rGPBDAT|((LED1_OFF)|(LED2_OFF)|(LED3_OFF)|(LED4_OFF));
Delay(1000);

rGPBDAT = rGPBDAT&(LED3_ON);
Delay(1000);
rGPBDAT = rGPBDAT|((LED1_OFF)|(LED2_OFF)|(LED3_OFF)|(LED4_OFF));
Delay(1000);

rGPBDAT = rGPBDAT&(LED4_ON);
Delay(1000);
rGPBDAT = rGPBDAT|((LED1_OFF)|(LED2_OFF)|(LED3_OFF)|(LED4_OFF));
Delay(1000);
}
}

void Led_Port_Init(void)
{
rGPBCON &= ~((3<<10)|(3<<12)|(3<<14)|(3<<16));
    rGPBCON |= (1<<10)|(1<<12)|(1<<14)|(1<<16);
}

void Delay(int tt)
{
int a,b;
for(a=0;a<=tt;a++)
for(b=0;b<=10000;b++);
}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值