ESP8266 SDK开发 PWM呼吸灯

本例程基于ESP8266 NONOS 2.0 的PWM呼吸灯

LED为IO4引脚

程序如下:


#include "user_config.h"		// 用户配置
#include "driver/uart.h"  		// 串口
#include "c_types.h"			// 变量类型
#include "eagle_soc.h"			// GPIO函数、宏定义
#include "ets_sys.h"			// 回调函数
#include "os_type.h"			// os_XXX
#include "osapi.h"  			// os_XXX、软件定时器
#include "pwm.h"				// PWM控制需要的文件
#include "user_interface.h" 	// 系统接口、system_param_xxx接口、WIFI、RateContro

os_timer_t timer;
uint8 type,x,y,z;
uint32 duty=0;
void ICACHE_FLASH_ATTR display(void *arg)
{
	for(y=0;y<3;y++)
	{
		for(z=0;z<12;z++)
		{
			duty=z*2000;
			type=y;
			pwm_set_duty(duty,type);//设置 PWM 某个通道信号的占空比, duty 占空比的值, type当前要设置的 PWM 通道
			pwm_start();//设置完成后,需要调用 pwm_start,PWM 开始
		}
	}

}


main()
{
	uint32 pwm_duty_init[1]={0};
	uint32 io_info[][3]={{PERIPHS_IO_MUX_GPIO4_U,FUNC_GPIO4,4}};
	pwm_init(1000,pwm_duty_init,1,io_info);//初始化 PWM,1000周期,pwm_duty_init占空比,1通道数,io_info各通道的 GPIO 硬件参数
	for(x=0;x<3;x++)
	{
		 type=x;
		 pwm_set_duty(duty,type);//设置 PWM 某个通道信号的占空比, duty 占空比的值, type当前要设置的 PWM 通道
		 pwm_start();//设置完成后,需要调用 pwm_start,PWM 开始
	}
	os_timer_disarm(&timer);
	os_timer_setfn(&timer,display,NULL);
	os_timer_arm(&timer,100,1);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值