用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.3 KiB

10 months ago
/*
* Copyright (c) 2006-2018, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2017-09-06 <EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD> first version
*/
#ifndef __OPENLOONGSON_PWM_H
#define __OPENLOONGSON_PWM_H
// pwm<EFBFBD><EFBFBD><EFBFBD>Ŷ<EFBFBD><EFBFBD><EFBFBD>
#define LS1C_PWM0_GPIO06 (6) // gpio06<EFBFBD><EFBFBD><EFBFBD><EFBFBD>pwm0
#define LS1C_PWM0_GPIO04 (4) // gpio04<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊpwm0
#define LS1C_PWM1_GPIO92 (92) // gpio92<EFBFBD><EFBFBD><EFBFBD><EFBFBD>pwm1
#define LS1C_PWM1_GPIO05 (5) // gpio05<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊpwm1
#define LS1C_PWM2_GPIO52 (52) // gpio52<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊpwm2
#define LS1C_PWM2_GPIO46 (46) // gpio46<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊpwm2
#define LS1C_PWM3_GPIO47 (47) // gpio47<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊpwm3
#define LS1C_PWM3_GPIO53 (53) // gpio53<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊpwm3
// ...<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩgpio<EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD><EFBFBD><EFBFBD>Ϊgpio<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// pwm<EFBFBD><EFBFBD><EFBFBD>ƼĴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD>bit
#define LS1C_PWM_INT_LRC_EN (11) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
#define LS1C_PWM_INT_HRC_EN (10) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>
#define LS1C_PWM_CNTR_RST (7) // ʹ<EFBFBD><EFBFBD>CNTR<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define LS1C_PWM_INT_SR (6) // <EFBFBD>ж<EFBFBD>״̬λ
#define LS1C_PWM_INTEN (5) // <EFBFBD>ж<EFBFBD>ʹ<EFBFBD><EFBFBD>λ
#define LS1C_PWM_SINGLE (4) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ
#define LS1C_PWM_OE (3) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
#define LS1C_PWM_CNT_EN (0) // <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
// Ӳ<EFBFBD><EFBFBD>pwm<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
enum
{
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pwm<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PWM_MODE_NORMAL = 0,
// <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<EFBFBD><EFBFBD>ÿ<EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pwm<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PWM_MODE_PULSE
};
// Ӳ<EFBFBD><EFBFBD>pwm<EFBFBD><EFBFBD>Ϣ
typedef struct
{
unsigned int gpio; // PWMn<EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>gpio
unsigned int mode; // <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
float duty; // pwm<EFBFBD><EFBFBD>ռ<EFBFBD>ձ<EFBFBD>
unsigned long period_ns; // pwm<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD>λns)
}pwm_info_t;
/*
* <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>PWMn
* @pwm_info PWMn<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>Ϣ
*/
void pwm_init(pwm_info_t *pwm_info);
/*
* <EFBFBD><EFBFBD>ֹpwm
* @pwm_info PWMn<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>Ϣ
*/
void pwm_disable(pwm_info_t *pwm_info);
/*
* ʹ<EFBFBD><EFBFBD>PWM
* @pwm_info PWMn<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD>Ϣ
*/
void pwm_enable(pwm_info_t *pwm_info);
#endif