/***************************************************
Project: GPIO实验之流水灯
Writer: SHOW
Time: 2011/10/12
Hareware: mini2440 , J-link.
***************************************************/
#include "2440addr.h"
#include "2440lib.h"
#include "option.h"
#include "def.h"
#include "uart.h"
#define LED1_OFF (1<<5)
#define LED2_OFF (1<<6)
#define LED3_OFF (1<<7)
#define LED4_OFF (1<<8)
void delay(unsigned int x);
void Init_GPIO(void);
void LED_Control(void);
void Main(void)
{
Init_GPIO();
while(1)
{
LED_Control();
}
}
void delay(unsigned int x)
{
int i;
for( ; x != 0; --x )
for(i=0; i!=400; ++i);
}
void Init_GPIO(void)
{
rGPBCON = 0;
rGPBCON |= (1<<10) | (1<<12) | (1<<14) | (1<<16); // 设置GPB5~GPB8 为输出口。
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);// 初始化熄灭。
}
void LED_Control(void)
{
rGPBDAT &= ~LED1_OFF; // 为了不影响寄存器其他位,送0要与寄存器相与。送1要与寄存器相或。
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);
rGPBDAT &= ~LED2_OFF;
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);
rGPBDAT &= ~LED3_OFF;
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);
rGPBDAT &= ~LED4_OFF;
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);
}
Project: GPIO实验之流水灯
Writer: SHOW
Time: 2011/10/12
Hareware: mini2440 , J-link.
硬件连接:LED1~LED4 对应 GPB5~GPB8.
Function:实现四个LED灯循环点亮。
Direction:1.需要设置的寄存器GPBCON,GPBDAT。***************************************************/
#include "2440addr.h"
#include "2440lib.h"
#include "option.h"
#include "def.h"
#include "uart.h"
#define LED1_OFF (1<<5)
#define LED2_OFF (1<<6)
#define LED3_OFF (1<<7)
#define LED4_OFF (1<<8)
void delay(unsigned int x);
void Init_GPIO(void);
void LED_Control(void);
void Main(void)
{
Init_GPIO();
while(1)
{
LED_Control();
}
}
void delay(unsigned int x)
{
int i;
for( ; x != 0; --x )
for(i=0; i!=400; ++i);
}
void Init_GPIO(void)
{
rGPBCON = 0;
rGPBCON |= (1<<10) | (1<<12) | (1<<14) | (1<<16); // 设置GPB5~GPB8 为输出口。
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);// 初始化熄灭。
}
void LED_Control(void)
{
rGPBDAT &= ~LED1_OFF; // 为了不影响寄存器其他位,送0要与寄存器相与。送1要与寄存器相或。
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);
rGPBDAT &= ~LED2_OFF;
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);
rGPBDAT &= ~LED3_OFF;
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);
rGPBDAT &= ~LED4_OFF;
delay(1000);
rGPBDAT |= (LED1_OFF | LED2_OFF | LED3_OFF | LED4_OFF);
}