好不容易把灯弄亮了,折腾个循环点亮吧,W800开发板有3个灯,W801开发板有7个灯,用的IO口不一样,(W800:PB00是绿,PB01是红,PB02是蓝),(w801测试板用WM_IO_PB_05/25/26/18/17/16/11).
直接上代码吧,逻辑上比较简单,但每行命令都得看SDKDEMO,不然真蒙不出来,比如delay这个延时,我sleep了半天也编译不过去,哈哈。
#include "wm_include.h"
void UserMain(void)
{
//#if DEMO_CONSOLE
// CreateDemoTask();
//#endif
//用户自己的task
printf("\n user task \n");
int i;u8 pp;
i=0;pp=0x01;
//初始IO
tls_gpio_cfg(WM_IO_PB_00,WM_GPIO_DIR_OUTPUT,WM_GPIO_ATTR_PULLLOW);
tls_gpio_cfg(WM_IO_PB_01,WM_GPIO_DIR_OUTPUT,WM_GPIO_ATTR_PULLLOW);
tls_gpio_cfg(WM_IO_PB_02,WM_GPIO_DIR_OUTPUT,WM_GPIO_ATTR_PULLLOW);
while (1)
{
i++;
printf("\n TEST%d \n",i);//可以输出到控制台烧录工具就能看到,很好很开心
if (pp>0x04){pp=0x01;}
tls_gpio_write(WM_IO_PB_00,pp&0x01^pp);//写入IO
tls_gpio_write(WM_IO_PB_01,pp&0x02^pp);
tls_gpio_write(WM_IO_PB_02,pp&0x04^pp);
if (i>32760){i=0;};
pp=pp<<1;
delay(1000000); //这个秒怎么算的?还没搞明白
}
}
本文展示了如何在W800和W801开发板上通过C语言实现LED灯的循环点亮效果。代码中配置了GPIO口,进行循环点亮操作,并使用了一个简单的延时函数。程序逻辑清晰,适合初学者理解嵌入式系统IO控制。
253





