ESP8266例程解析 ①PWM LED
阿新 • • 發佈:2018-12-29
#include "driver/uart.h" //串列埠0需要的標頭檔案 #include "osapi.h" //串列埠1需要的標頭檔案 #include "user_interface.h" //WIFI連線需要的標頭檔案 #include "gpio.h" //埠控制需要的標頭檔案 #include "pwm.h" //pwm控制需要的標頭檔案 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 開始 } } } void user_init() { uint32 pwm_duty_init[3]={0}; uint32 io_info[][3]={{PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12,12},{PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13,13},{PERIPHS_IO_MUX_MTDO_U,FUNC_GPIO15,15},}; pwm_init(1000,pwm_duty_init,3,io_info);//初始化 PWM,1000週期,pwm_duty_init佔空比,3通道數,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,1000,1); } void user_rf_pre_init() { }