101 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | |
| 
 | |
| This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | |
| be copied by any method or incorporated into another program without
 | |
| the express written consent of Aerospace C.Power. This Information or any portion
 | |
| thereof remains the property of Aerospace C.Power. The Information contained herein
 | |
| is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | |
| liability for its use in any way and conveys no license or title under
 | |
| any patent or copyright and makes no representation or warranty that this
 | |
| Information is free from patent or copyright infringement.
 | |
| 
 | |
| ****************************************************************************/
 | |
| #ifndef _LEDC_H_
 | |
| #define _LEDC_H_
 | |
| 
 | |
| #include "os_types.h"
 | |
| #include "iot_led.h"
 | |
| #include "iot_config.h"
 | |
| #include "iot_config_api.h"
 | |
| #include "iot_board_api.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #define LED_SOFT_WHOLE_PERIOD   64
 | |
| 
 | |
| typedef struct _ledc_sts {
 | |
|     uint8_t status[IOT_MAX_LED];
 | |
|     uint8_t blink_cnt[IOT_MAX_LED];
 | |
|     uint8_t remain[IOT_MAX_LED];
 | |
|     uint8_t led_id[IOT_MAX_LED];
 | |
|     uint8_t blink_suc[IOT_MAX_LED];
 | |
|     uint8_t gpio[IOT_MAX_LED];
 | |
|     uint8_t led_cnt;
 | |
|     uint8_t blink_allow;
 | |
|     uint8_t hook_blink_en;
 | |
|     uint16_t half_period;
 | |
|     uint16_t whole_period;
 | |
|     uint32_t (*led_on)(uint8_t id);
 | |
|     uint32_t (*led_off)(uint8_t id);
 | |
| } ledc_sts_t;
 | |
| 
 | |
| typedef enum {
 | |
|     IOT_LED_ID_0 = 0,
 | |
|     IOT_LED_ID_1,
 | |
|     IOT_LED_ID_2,
 | |
|     IOT_LED_ID_3,
 | |
|     IOT_LED_ID_4,
 | |
|     IOT_LED_ID_5,
 | |
|     IOT_LED_ID_6,
 | |
|     IOT_LED_ID_7
 | |
| } IOT_LED_SIG_OUT;
 | |
| 
 | |
| 
 | |
| extern ledc_sts_t g_led_sts;
 | |
| 
 | |
| void ledc_ena_rst();
 | |
| 
 | |
| void ledc_set_l2h_val(uint8_t port, uint32_t value);
 | |
| 
 | |
| void ledc_timer_cfg(uint8_t port, uint8_t tick, uint8_t init,
 | |
|                     uint8_t pause, uint32_t div, uint8_t uplim);
 | |
| 
 | |
| void ledc_target_cfg(uint8_t port, uint8_t shadow, uint8_t inc,
 | |
|                      uint32_t num, uint32_t cycle, uint32_t scope);
 | |
| 
 | |
| void ledc_target_value(uint8_t port, uint32_t value);
 | |
| 
 | |
| void ledc_cfg(uint8_t port, uint8_t idle_val, uint8_t ena, uint8_t timer_sel);
 | |
| 
 | |
| void ledc_out_ref(uint8_t port, uint8_t ena);
 | |
| 
 | |
| uint32_t led_blink(uint8_t id, uint8_t cnt);
 | |
| 
 | |
| uint32_t led_on(uint8_t id);
 | |
| 
 | |
| uint32_t led_off(uint8_t id);
 | |
| 
 | |
| void led_set_blink_interval(uint16_t interval);
 | |
| 
 | |
| void led_enable_blink(uint8_t enable);
 | |
| 
 | |
| 
 | |
| uint32_t led_init();
 | |
| 
 | |
| uint32_t led_timer_ena(uint8_t timer);
 | |
| 
 | |
| uint32_t led_duty_conf(uint8_t target, uint8_t id,
 | |
|                                   uint8_t idle, uint8_t ena);
 | |
| 
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* _LEDC_H_ */
 |