Mini 2440的灯LED1,LED2,LED3,LED4分别接的是 GPF5 GPF6 GPF7 GPF8;低电平点亮小灯。
主函数调用:Led_Display(0x66);
void Led_Display(int data)
{
//Active is low.(LED On)
// GPF8 GPF7 GPF6 GPF5
//nLED_4 nLED_3 nLED_2 nLED_1
rGPBDAT = (rGPBDAT & ~(0xf<<5)) | ((~data & 0xf)<<5);
}
这是test自带的程序;由于没有设置B口的GPBCON,灯的显示将达不到预期的效果
修改为
void Led_Display(int data)
{
//Active is low.(LED On)
// GPB8 GPB7 GPB6 GPB5
//nLED_4 nLED_3 nLED_2 nLED_1
rGPBCON= (rGPBCON & ~(0xf<<5)) | (0x5<<5);
rGPBUP = 0x7ff; // The pull up function is disabled GPB[10:0]
rGPBDAT = (rGPBDAT & ~(0xf<<5)) | ((~data & 0xf)<<5);
}
首先设置 rGPBCON使得GPB5 ,GPB6, GPB7 , GPB8 为输出。然后设置rGPBUP,不适用上啦电阻。这样就可以控制灯的亮灭了。具体为输入data 二进制的低四位,即bit_1,bit_2,bit_3,bit_4分别控制LED1,LED2,LED3,LED4,为1对应的LED灯亮,为0对应的LED灯灭。
主函数调用:Led_Display(0x66);
void Led_Display(int data)
{
//Active is low.(LED On)
// GPF8 GPF7 GPF6 GPF5
//nLED_4 nLED_3 nLED_2 nLED_1
rGPBDAT = (rGPBDAT & ~(0xf<<5)) | ((~data & 0xf)<<5);
}
这是test自带的程序;由于没有设置B口的GPBCON,灯的显示将达不到预期的效果
修改为
void Led_Display(int data)
{
//Active is low.(LED On)
// GPB8 GPB7 GPB6 GPB5
//nLED_4 nLED_3 nLED_2 nLED_1
rGPBCON= (rGPBCON & ~(0xf<<5)) | (0x5<<5);
rGPBUP = 0x7ff; // The pull up function is disabled GPB[10:0]
rGPBDAT = (rGPBDAT & ~(0xf<<5)) | ((~data & 0xf)<<5);
}
首先设置 rGPBCON使得GPB5 ,GPB6, GPB7 , GPB8 为输出。然后设置rGPBUP,不适用上啦电阻。这样就可以控制灯的亮灭了。具体为输入data 二进制的低四位,即bit_1,bit_2,bit_3,bit_4分别控制LED1,LED2,LED3,LED4,为1对应的LED灯亮,为0对应的LED灯灭。
本文介绍如何在Mini2440开发板上通过设置GPBCON寄存器及GPBUP寄存器来控制LED灯的亮灭。通过修改程序使GPB5-GPB8引脚变为输出模式,并禁用上拉电阻,实现LED1到LED4的点亮与熄灭。
520

被折叠的 条评论
为什么被折叠?



