自己动手写驱动(1)——led跑马灯

 

      为了学习嵌入式,新买tq2440开发板,并决定从裸机驱动开始学起。一开始,先写个简单的led实验。

      首先,为了完成跑马灯的实验,我们需要从硬件资料上,了解以下内容:

1.     tq2440上有4led灯,分别接GPIO端口的GPB5GPB6GPB7以及GPB8上面。

2.     GPIO端口portB(GPB)为例,I/O端口主要涉及三个寄存器,GPBCONGPBDATGPBUP。其中,GPBCON定义引脚的功能 (输入、输出或其他)。GPBDAT定义数据。GPBUP为上拉寄存器。

3.     GPBCON2位表示一个引脚的功能,00为输入,01为输出。GPB5——GPB8分别对应10——17位。

4.     GPBDAT位为0时。对应的LED亮起。

 

然后,我们需要了解。嵌入式裸机编程不同于PC编程的地方。

裸机上无法直接运行c语言程序,所以我们需要一个由汇编代码编写的启动代码。在这里,我们暂不考虑具体的启动代码,采用tq2440自带的启动代码。

 

最后,拟定我们的程序流程。

1.     初始化GPBCON,使GPIOGPB5——GPB8为输出端口。

2.     设定变量light,初始化第5位为10位开始)。

3.     循环移位light,将其值赋给GPBDAT,改变该寄存器的值。从而改变led灯的显示。

 

代码如下:

 

#include //宏定义,强制转换该地址为uint指针,并取其值 #define rGPBCON *((unsigned int*) 0x56000010) #define rGPBDAT *((unsigned int*) 0x56000014) void delay(int x) { int j; for(j=0;j

你可能感兴趣的:(裸机驱动)