[STM32F1] 不用死循环

[复制链接]
926|15
 楼主| happy_10 发表于 2019-4-20 08:20 | 显示全部楼层 |阅读模式
最近用一个wifi芯片(ESP8266),看了别人的程序,用了FreeRTOS系统。对这个系统不熟,只是了解吧。看的这个程序没有while(1)这样的死循环,只有一个定时器,请问是不是开了定时器,不用while(1),程序也不会结束。
 楼主| happy_10 发表于 2019-4-20 08:24 | 显示全部楼层
#include "ets_sys.h"
#include "osapi.h"

#include "user_interface.h"

#include "user_devicefind.h"
#include "user_webserver.h"

#include "gpio16.h"
#include "gpio.h"

#include "c_types.h"

#if ESP_PLATFORM
#include "user_esp_platform.h"
#endif

/** 定时器结构体 */
static os_timer_t os_timer;

/** LED操作命令 */
void Led_Cmd( bool status )
{
    if ( status == true )
    {
        gpio16_output_set( 0 );
    }
    else
    {
        gpio16_output_set( 1 );
    }
}

/** LED任务运行程序 */
void Led_Task_Run( void )
{
    static bool status = false;

    if ( status == true )
    {
        status = false;
    }
    else
    {
        status = true;
    }
    Led_Cmd( status );
}

/** LED模块初始化程序 */
void Led_Init( void )
{
    gpio16_output_conf();
    Led_Cmd( false );

    /** 关闭该定时器 */
    os_timer_disarm( &os_timer );
    /** 配置该定时器回调函数 */
    os_timer_setfn( &os_timer, (ETSTimerFunc *) ( Led_Task_Run ), NULL );
    /** 启动该定时器 */
    os_timer_arm( &os_timer, 500, true );
}

/** 初始化程序 */
void user_init(void)
{
    Led_Init();
}
user_init(相当于main)
chenho 发表于 2019-4-20 08:28 | 显示全部楼层

这个只是用了定时器回调函数。
定时器回调函数不可以是无限循环。
huanghuac 发表于 2019-4-20 08:31 | 显示全部楼层
任务就是个循环;
 楼主| happy_10 发表于 2019-4-20 08:36 | 显示全部楼层
这样的话,执行一遍就结束了吗?
 楼主| happy_10 发表于 2019-4-20 08:39 | 显示全部楼层
有点不是很明白,能不能说的更具体一点
wenfen 发表于 2019-4-20 08:44 | 显示全部楼层
总会有个地方需要while(1) 这样的循环的
戈卫东 发表于 2019-4-20 08:45 | 显示全部楼层
每个任务进程/线程仍然必须是while(1)循环。
 楼主| happy_10 发表于 2019-4-20 08:47 | 显示全部楼层
这样说就明白了,谢谢
tian111 发表于 2019-4-20 08:53 | 显示全部楼层
定时器回调函数是OS提供的工具,会根据你指定的时间间隔重复调用。
zwll 发表于 2019-4-20 08:57 | 显示全部楼层
如果它是无限循环将会破坏系统的运行。
juventus9554 发表于 2019-4-20 09:01 | 显示全部楼层
定时器回调函数不可以是无限循环
 楼主| happy_10 发表于 2019-4-20 09:05 | 显示全部楼层

嗯,预料中的结果,先结贴吧,多谢大家啦
八层楼 发表于 2019-5-10 09:09 | 显示全部楼层
其实在别的地方有代码的
观海 发表于 2019-5-10 09:17 | 显示全部楼层
不是呀 你要看系统里边用了多少中断啊
guanjiaer 发表于 2019-5-10 09:30 | 显示全部楼层
楼主多多读代码就知道了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

744

主题

7973

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部