2019-12-16 22:38发布
jiangyimfs1 发表于 2017-8-22 08:23 楼主的非阻塞延时器很实用,在工程中使用了一下,出了点问题,请教一下楼主是不是哪个步骤使用错误了,贴上 ...
最多设置5个标签!
按我猜测的功能写的,不过代码未测试,只是展示延时器的使用。。。
- #define LED_DELAY_TIME 4000
- /* L E D _ D E M O _ T A S K */
- /*-------------------------------------------------------------------------
- *功能:延时器测试闪灯,在超级循环中运行。
- *参数:无
- *返回:无
- *备注:未测试。
- -------------------------------------------------------------------------*/
- void led_demo_task(void)
- {
- static uint8_t s_chStep = 0;
- switch (s_chStep)
- {
- case 0:
- /* 全灭 */
- /* 第一次用直接就是超时状态,因为还未设置超时时间 */
- if (zl_poll_delay_timeout(0)) {
- zl_poll_delay_set(0, LED_DELAY_TIME);
- LED_1 = 1;
- LED_2 = 1;
- s_chStep = 1;
- }
- break;
- case 1:
- /* LED1 亮 */
- if (zl_poll_delay_timeout(0)) {
- zl_poll_delay_set(0, LED_DELAY_TIME);
- LED_1 = 0;
- s_chStep = 2;
- }
-
- break;
- case 2:
- /* LED2 亮 */
- if (zl_poll_delay_timeout(0)) {
- zl_poll_delay_set(0, LED_DELAY_TIME);
- LED_2 = 0;
- s_chStep = 0;
- }
- break;
- default:
- break;
- }
- }
复制代码在每个case里设置的延时,是为下个case服务的。
一周热门 更多>