| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /*
- * @File name : driver_ledc.h
- * @Author : Bluetrum IOT Team K.
- * @Date : 2023-07-12
- * @Description : This file contains all the functions protorypes for the LEDC library.
- *
- * Copyright (c) by Bluetrum, All Rights Reserved.
- */
- #ifndef _DRIVER_LEDC_H
- #define _DRIVER_LEDC_H
- #include "driver_com.h"
- /**
- * @brief Flag Enumeration.
- */
- typedef enum {
- LEDC_FLAG_DONE = 0x01,
- LEDC_FLAG_RST = 0x02,
- LEDC_FLAG_DMA = 0x04,
- } LEDC_FLAG_TYPEDEF;
- /**
- * @brief Output Invert Enumeration.
- */
- typedef enum {
- LEDC_OUT_INV_DIS = 0x00000000,
- LEDC_OUT_INV_EN = 0x02000000,
- } LEDC_OUT_INV_TYPEDEF;
- /**
- * @brief DMA Buffer Data Format Enumeration.
- */
- typedef enum {
- LEDC_IN_FORMAT_RGB = 0x00000000,
- LEDC_IN_FORMAT_WRGB = 0x00000080,
- } LEDC_IN_FORMAT_TYPEDEF;
- /**
- * @brief Idle Level Enumeration.
- */
- typedef enum {
- LEDC_IDLE_LEVEL_LOW = 0x00000000,
- LEDC_IDLE_LEVEL_HIGH = 0x00000020,
- } LEDC_IDLE_LEVEL_TYPEDEF;
- /**
- * @brief Valid Data Direct or Invert Enumeration.
- */
- typedef enum {
- LEDC_VALID_DATA_DIR = 0x00000000,
- LEDC_VALID_DATA_INV = 0x00000010,
- } LEDC_VALID_DATA_TYPEDEF;
- /**
- * @brief Valid Data Invert Byte Number Enumeration.
- */
- typedef enum {
- LEDC_BYTE_INV_NO = 0x00000000,
- LEDC_BYTE_INV_1B = 0x00000004,
- LEDC_BYTE_INV_2B = 0x00000008,
- LEDC_BYTE_INV_4B = 0x0000000c,
- } LEDC_BYTE_INV_TYPEDEF;
- /**
- * @brief LEDC Ctrl Initialization Struct.
- */
- typedef struct {
- LEDC_OUT_INV_TYPEDEF output_invert;
- LEDC_IN_FORMAT_TYPEDEF format;
- LEDC_IDLE_LEVEL_TYPEDEF idle_level;
- LEDC_VALID_DATA_TYPEDEF valid_data_mode;
- LEDC_BYTE_INV_TYPEDEF byte_inv_number;
- } ledc_init_typedef;
- /**
- * @brief LEDC Code Element Timing Initialization Struct.
- */
- typedef struct {
- uint8_t baud;
- uint8_t delay;
- uint8_t code_0_high;
- uint8_t code_1_high;
- uint16_t reset_high;
- uint16_t reset_low;
- } ledc_timing_init_typedef;
- void ledc_init(ledc_init_typedef *ledc_init_struct);
- void ledc_timing_init(ledc_timing_init_typedef *ledc_timing_init_struct);
- void ledc_deinit(void);
- void ledc_cmd(FUNCTIONAL_STATE state);
- void ledc_dma_kick(uint32_t addr, uint16_t len);
- void ledc_kick(void);
- void ledc_pic_config(isr_t isr, int pr, LEDC_FLAG_TYPEDEF flag_type, FUNCTIONAL_STATE state);
- FLAG_STATE ledc_get_flag(LEDC_FLAG_TYPEDEF flag_type);
- void ledc_clear_flag(LEDC_FLAG_TYPEDEF flag_type);
- void ledc_set_frame_length(uint16_t frame_length);
- void ledc_set_loop_number(uint16_t loop_n);
- uint16_t ledc_get_frame_length(void);
- uint16_t ledc_get_loop_number(void);
- #endif // _DRIVER_LEDC_H
|