TQ210_裸机编程点亮LED灯
首先查看 TQ210 的底板原理图:
我们可以看到 两个 LED 分别接到 S5PV210 的 GPC0_3 和 GPC0_4 引脚。
这里用了 NPN 三极管,具有放大电流的作用,增大驱动能力,我们只要给它的基极一个高电平,三
极管的集电极和发射极就会导通,产生大电流驱动 LED 发光。简单点说就是给GPC0_3和GPC0_4 这两个引脚高电平,就能点亮他们。
现在可以从开发板的配套教材S5PV210_UM_REV1.1中查找到GPC0_3和GPC0_4的地址。
要点亮 LED1,我们需要配置寄存器 GPC0CON 的[15:12]为 0001,使 GPC0_3 为输出模式,
要点亮 LED2,我们需要配置寄存器 GPC0CON 的[19:16]为 0001,使 GPC0_34为输出模式,
这GPC0DAT有[4:0]一共4位控制灯,而且GPC0_3和GPC0_4对应的就是这个寄存器的第3位和第4位,所以要点亮3和4就要使者两位为高电平1,即1100.
通过c语言 下面是一个两个灯闪烁的程序。
源代码:
#define GPC0CON *((volatile unsigned int *)0xE0200060)
#define GPC0DAT *((volatile unsigned int *)0xE0200064)
void delay(volatile unsigned int t)
{
volatile unsigned int t2 = 0xFFFF;
while (t--)
for (; t2; t2--);
}
int main() { int toggle = 0; GPC0CON &= ~(0xFF << 12); GPC0CON |= 0x11 << 12; // 配置GPC0_3和GPC0_4为输出 while (1) { GPC0DAT &= ~(0x3 << 3); // 熄灭LED1和LED2 if (toggle) GPC0DAT |= 1 << 3; // 点亮LED1 else GPC0DAT |= 1 << 4; // 点亮LED2 toggle = !toggle; delay(0x50000); } return 0; }