首页 > 其他 > 详细

ESP8266 SDK开发: 外设篇-定时器,延时

时间:2020-02-14 10:40:11      阅读:169      评论:0      收藏:0      [点我收藏+]

 

 

延时

/**
  * @brief  Delay function, maximum value: 65535 us.
  *
  * @param  uint16 us : delay time, uint: us, maximum value: 65535 us
  *
  * @return null
  */
void os_delay_us(uint16 us);

 

 

 

软件定时器

技术分享图片

 

 

技术分享图片

 

 

 

代码

技术分享图片

 

 

#include "esp_timer.h"

/**
* @brief   定时器回调函数
* @param   parg:传入的配置os_timer_setfn函数最后的参数
* @param   None
* @param   None
* @param   None
* @retval  None
* @warning None
* @example
**/
void os_timer_one_function(void *parg)
{
    printf("parg:%s\n", parg);//打印一下传过来的参数
}

 

    //配置定时器
    os_timer_setfn(&os_timer_one,os_timer_one_function,"yang");//os_timer_one:定时器结构体变量    os_timer_one_function:回调函数    yang:传给回调函数的参数
    //使能定时器
    os_timer_arm(&os_timer_one,500,1);//os_timer_one:定时器变量        500:500ms进一次    1:循环

 

测试

技术分享图片

 

 

 

解除定时器

void os_timer_disarm (os_timer_t ∗ptimer)
 
os_timer_disarm(&os_timer_one)

 

 

 

 

 

硬件中断定时器

技术分享图片

 

 

 

代码

技术分享图片

 

 

#include "hw_timer.h"

 

/**
* @brief   硬件定时器中断回调函数
* @param   None
* @param   None
* @param   None
* @param   None
* @retval  None
* @warning None
* @example
**/
u32 cnt = 0;
void hw_test_timer_cb(void)
{
    cnt++;
    if(cnt>1000)//1S
    {
        cnt=0;
        printf("1111111111111\n");//打印
    }
}

 

 

 

    //定时器初始化
    hw_timer_init(1);//1:循环
    //设置定时器回调函数
    hw_timer_set_func(hw_test_timer_cb);//hw_test_timer_cb:硬件定时器中断回调函数
    hw_timer_arm(1000);//1000:1000us定时进入中断函数

 

测试

技术分享图片

 

ESP8266 SDK开发: 外设篇-定时器,延时

原文:https://www.cnblogs.com/yangfengwu/p/12306048.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!