2-2 C语言实现闪烁程序
在我的职业生涯中所进到的嵌入式系统都至少有一个可以被软件控制的
——————————————————————————————————
注 1:当然,闪烁的频率的选择完全是任意的、我选择1Hz 的原因是这可以
根容易地用一个秒表来核对。简单地启动秒表,计几次闪烁,燃后停下秒表看
嵌闪烁的次数是不是和经过的秒数相同,如果需要更精确的话,简单地多计几
次闪烁就行了。
译注1:原文为德语。
LED(发光二极管)。所以我用一个以1Hz(注1)频率闪烁LED(发光二极管)
的程序来替代“Hello,World!”。1Hz 就是每秒完整地开关一次。典型的情况是,
用来开关一个 LED 的代码通常只有几行C 或汇编代码,所以发生错误的机会也
就很少。同时因为几平所有的嵌入式系统都有LED,所以潜在的概念是非常容
易移植的。
LED 闪烁程序的高层部分如下所示。这部分程序是与硬件无关的。不过,
它还要依赖分别使用和硬件有关的toggleLed()和delay()来改变LED的状态和控
制计时。
/******************************************************************/
* Function main()
* Description: Blink the green LED once a second
* Notes: This outer loop is hardware-independent. However.
* it depends on two hardware-dependent functions.
* Returns: This routine contains an infinite loop.
/******************************************************************/
void
main(void)
{
while(1)
{
toggleLed(LED_GREEN); /*Change the state of the LED.*/
delay(500); /*Pause for 500 millisenconds.*/
}
} /*main()*/
——————————————————————————————————
注 1:当然,闪烁的频率的选择完全是任意的、我选择1Hz 的原因是这可以
根容易地用一个秒表来核对。简单地启动秒表,计几次闪烁,燃后停下秒表看
嵌闪烁的次数是不是和经过的秒数相同,如果需要更精确的话,简单地多计几
次闪烁就行了。
译注1:原文为德语。
LED(发光二极管)。所以我用一个以1Hz(注1)频率闪烁LED(发光二极管)
的程序来替代“Hello,World!”。1Hz 就是每秒完整地开关一次。典型的情况是,
用来开关一个 LED 的代码通常只有几行C 或汇编代码,所以发生错误的机会也
就很少。同时因为几平所有的嵌入式系统都有LED,所以潜在的概念是非常容
易移植的。
LED 闪烁程序的高层部分如下所示。这部分程序是与硬件无关的。不过,
它还要依赖分别使用和硬件有关的toggleLed()和delay()来改变LED的状态和控
制计时。
/******************************************************************/
* Function main()
* Description: Blink the green LED once a second
* Notes: This outer loop is hardware-independent. However.
* it depends on two hardware-dependent functions.
* Returns: This routine contains an infinite loop.
/******************************************************************/
void
main(void)
{
while(1)
{
toggleLed(LED_GREEN); /*Change the state of the LED.*/
delay(500); /*Pause for 500 millisenconds.*/
}
} /*main()*/