// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef _DRIVER_LEDC_PWM_H_ #define _DRIVER_LEDC_PWM_H_ #include "soc/soc.h" #include "soc/ledc_reg.h" #include "driver/gpio.h" #ifdef __cplusplus extern "C" { #endif /*-------------------------------------------------- HSCHX_LEDC_PWM ---------------------------------------------------*/ #define LEDC_HSCHX_CONF0_REG(CHANNEL) (LEDC_HSCH0_CONF0_REG+0X14*(CHANNEL)) #define LEDC_HSCHX_HPOINT_REG(CHANNEL) (LEDC_HSCH0_HPOINT_REG+0X14*(CHANNEL)) #define LEDC_HSCHX_DUTY_REG(CHANNEL) (LEDC_HSCH0_DUTY_REG+0X14*(CHANNEL)) #define LEDC_HSCHX_CONF1_REG(CHANNEL) (LEDC_HSCH0_CONF1_REG+0X14*(CHANNEL)) #define LEDC_HSCHX_DUTY_R_REG(CHANNEL) (LEDC_HSCH0_DUTY_R_REG+0X14*(CHANNEL)) /*------------------------------------------------- LSCHX_LEDC_PWM --------------------------------------------------*/ #define LEDC_LSCHX_CONF0_REG(CHANNEL) (LEDC_LSCH0_CONF0_REG+0X14*(CHANNEL)) #define LEDC_LSCHX_HPOINT_REG(CHANNEL) (LEDC_LSCH0_HPOINT_REG+0X14*(CHANNEL)) #define LEDC_LSCHX_DUTY_REG(CHANNEL) (LEDC_LSCH0_DUTY_REG+0X14*(CHANNEL)) #define LEDC_LSCHX_CONF1_REG(CHANNEL) (LEDC_LSCH0_CONF1_REG+0X14*(CHANNEL)) #define LEDC_LSCHX_DUTY_R_REG(CHANNEL) (LEDC_LSCH0_DUTY_R_REG+0X14*(CHANNEL)) /*--------------------------------------------------- HTIMERX_LEDC_PWM ---------------------------------------------------*/ #define LEDC_HSTIMERX_CONF_REG(TIME) (LEDC_HSTIMER0_CONF_REG+0X08*(TIME)) #define LEDC_HSTIMERX_VALUE_REG(TIME) (LEDC_HSTIMER0_VALUE_REG+0X08*(TIME)) /*---------------------------------------------- LTIMERX_LEDC_PWM -----------------------------------------------*/ #define LEDC_LSTIMERX_CONF_REG(TIME) (LEDC_LSTIMER0_CONF_REG+0X08*(TIME)) #define LEDC_LSTIMERX_VALUE_REG(TIME) (LEDC_LSTIMER0_VALUE_REG+0X08*(TIME)) enum ledc_pwm_mode{ LEDC_HIGH_SPEED_MODE=0, /**< Ledc high speed mode */ LEDC_LOW_SPEED_MODE, /**< Ledc low speed mode */ }; enum ledc_pwm_intr_type{ LEDC_INTR_DISABLE=0,/**< Disable ledc interrupt */ LEDC_INTR_CHANGE_END, /**< Enable ledc interrupt */ }; enum ledc_pwm_increase_direction{ LEDC_DIR_DECREASE=0,/**