ESP8266_SDK开发基础(3)硬件定时器

环境及工具与第一章相同,这里就不在重复!

代码基于第一章,将原软件定时器实现的功能改为硬件定时器实现,user_main.c代码示例如下


#include "ets_sys.h"
#include "osapi.h"
#include "gpio.h"

#include "user_interface.h"

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

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

void user_rf_pre_init(void)
{
}

/*******************************************************************************
 * 自定义引脚运行函数_定时器回调
*******************************************************************************/
void Task_Run(void){
    static bool status = false;

    if(GPIO_INPUT_GET(14)){//读取GPIO14的引脚电平
        if (status == true){
            status = false;
            GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 0);//GPIO12输出低电平
        }else{
            status = true;
            GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//GPIO12输出高电平
        }
    }else{
        GPIO_OUTPUT_SET(GPIO_ID_PIN(12), 1);//GPIO12输出高电平
    }
}
/******************************************************************************
 * FunctionName : user_init
 * Description  : entry of user application, init user function here
 * Parameters   : none
 * Returns      : none
*******************************************************************************/
void user_init(void)
{
    /*设置串口波特率*/
    uart_init(115200,9600);
    /*打印版本信息*/
    os_printf("\r\n");os_printf("SDK version:%s\n", system_get_sdk_version());
    /*配置GPIO12*/
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);
    /*配置GPIO14*/
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U,FUNC_GPIO14);
    /*配置 硬件定时器*/
    hw_timer_init(0,1);//初始化ISR硬件定时器,自动填装
    hw_timer_set_func(Task_Run);//设置定时器回调函数
    hw_timer_arm(1000000);//使能硬件中断定时器,定时1秒
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值