几个函数的实现如下:
void LED_flash(uint8 index)
{
LED_on(index);
delay_NS(LED_FLASH_KEEP_TIME);
LED_off(index);
}
void delay_NS (uint32 delay)
{
uint32 i;
for (; delay > 0; delay--)
{
for (i = 0; i < NOP_WAIT; i++);
}
}
void timer_init(void)
{
T0TC = 0; // 定时器设置为 0.
T0PR = 0; // 定时器不分频.
T0MCR = 0x03; // 设置 T0MR0 匹配后复位 T0TC, 并产生中断标志.
T0MR0 = Fpclk/OS_TICKS_PER_SEC; // 0.05 sec.
T0TCR = 0x01; // 启动定时器.
}
LED_flash() 和 delay_NS() 只是通过空转来延时,不会中断或者 Delay。
我感觉也是,开始“2. LED1 闪烁,同时 LED 7 闪烁,说明 task_idle 运行正常,时钟中断函数运行正常;” 。
ORZ ORZ ORZ ORZ ORZ ORZ ORZ
ORZ ORZ ORZ ORZ ORZ ORZ ORZ
ORZ ORZ ORZ ORZ ORZ ORZ ORZ
ORZ ORZ ORZ ORZ ORZ ORZ ORZ
_O_ ORZ ORZ ORZ ORZ ORZ ORZ ORZ
| ORZ ORZ ORZ ORZ ORZ ORZ ORZ
/ \ ORZ ORZ ORZ ORZ ORZ ORZ ORZ
ORZ ORZ ORZ ORZ ORZ ORZ ORZ
ORZ ORZ ORZ ORZ ORZ ORZ ORZ
ORZ ORZ ORZ ORZ ORZ ORZ ORZ |