|
|
发表于 2026-8-12 12:10:04
|
显示全部楼层
继续补充
在main函数里的while循环里,用给变量 led_state 赋值的方式改变LED显示效果。
代码1:
u8 LEDdata[6] = { 0x00, 0xFF, 0xAA, 0x55, 0x0F, 0xF0, };
u8 LEDframe[12] = { 0, 1, 0, 1, 2, 3, 2, 3, 4, 5, 4, 5, };
……
while (1)
{
// 示例:空循环,或者在这里周期性改变图案
// 例如让图案闪烁、流动等
led_state = LEDdata[ LEDframe[ i++ ] ];
delay_ms( 500 );
i %= 12;
}
数组嵌套的方式,LED乱闪。(KEIL编译的能正常闪烁)
代码2:
while (1)
{
// 示例:空循环,或者在这里周期性改变图案
// 例如让图案闪烁、流动等
led_state = 0xAA; delay_ms( 200 );
led_state = 0x55; delay_ms( 200 );
led_state = 0xAA; delay_ms( 200 );
led_state = 0x55; delay_ms( 200 );
led_state = 0x0F; delay_ms( 200 );
led_state = 0xF0; delay_ms( 200 );
led_state = 0x0F; delay_ms( 200 );
led_state = 0xF0; delay_ms( 200 );
led_state = 0xFF; delay_ms( 200 );
led_state = 0x00; delay_ms( 200 );
led_state = 0xFF; delay_ms( 200 );
led_state = 0x00; delay_ms( 200 );
}
用直接赋值的方式,正常闪烁。
但是不知道为什么STC-IDE延时200ms,跟KEIL延时500ms的切换速度差不多。已经设置了 WTST=0,delay_ms延时用的nop
|
|