跳转至

例程-PWM

PWM初始化

void pwm_init (pwm_channel_enum pwmch, uint32 freq, uint32 duty)
// 函数简介     PWM 初始化
// 参数说明     pin             选择 PWM 引脚
// 参数说明     freq            设置频率 同个通道只有最后一次设置生效
// 参数说明     duty            设置占空比
// 返回参数     void
// 使用示例     pwm_init(ATOM0_CH7_P02_7, 50, 1000);   // ATOM 0模块的通道7 使用P02_7引脚输出PWM  PWM频率50HZ  占空比百分之1000/PWM_DUTY_MAX*100
// 备注信息     PWM_DUTY_MAX宏定义在zf_driver_pwm.h  默认为10000

PWM占空比设置

void pwm_set_duty (pwm_channel_enum pwmch, uint32 duty)
// 函数简介     PWM占空比设置
// 参数说明     pin             选择 PWM 引脚
// 参数说明     duty            设置占空比
// 返回参数     void
// 使用示例     pwm_set_duty(ATOM0_CH7_P02_7, 5000); // 设置占空比为百分之5000/PWM_DUTY_MAX*100
// 备注信息     GTM_ATOM0_PWM_DUTY_MAX宏定义在zf_driver_pwm.h  默认为10000

关闭所有PWM

void pwm_all_channel_close (void)
//  函数简介      关闭所有通道的PWM输出
//  返回参数      void
//  使用示例      pwm_all_channel_close();
//  备注信息

PWM引脚

typedef enum // 枚举PWM引脚
{
    ATOM0_CH0_P00_0,  ATOM0_CH0_P02_0,  ATOM0_CH0_P02_8,  ATOM0_CH0_P14_5,  ATOM0_CH0_P21_2,  ATOM0_CH0_P22_1,
    ATOM0_CH1_P00_1,  ATOM0_CH1_P00_2,  ATOM0_CH1_P02_1,  ATOM0_CH1_P10_1,  ATOM0_CH1_P14_4,  ATOM0_CH1_P21_3, ATOM0_CH1_P22_0,  ATOM0_CH1_P33_9,
    ATOM0_CH2_P00_3,  ATOM0_CH2_P02_2,  ATOM0_CH2_P10_2,  ATOM0_CH2_P10_5,  ATOM0_CH2_P14_3,  ATOM0_CH2_P21_4, ATOM0_CH2_P33_11,
    ATOM0_CH3_P00_4,  ATOM0_CH3_P02_3,  ATOM0_CH3_P10_3,  ATOM0_CH3_P10_6,  ATOM0_CH3_P14_2,  ATOM0_CH3_P21_5, ATOM0_CH3_P22_2,
    ATOM0_CH4_P00_5,  ATOM0_CH4_P02_4,  ATOM0_CH4_P14_1,  ATOM0_CH4_P20_3,  ATOM0_CH4_P21_6,  ATOM0_CH4_P22_3,
    ATOM0_CH5_P00_6,  ATOM0_CH5_P02_5,  ATOM0_CH5_P21_7,  ATOM0_CH5_P32_4,
    ATOM0_CH6_P00_7,  ATOM0_CH6_P02_6,  ATOM0_CH6_P20_0,  ATOM0_CH6_P23_1,
    ATOM0_CH7_P00_8,  ATOM0_CH7_P02_7,  ATOM0_CH7_P20_8,

    ATOM1_CH0_P00_0,  ATOM1_CH0_P02_0,  ATOM1_CH0_P02_8,  ATOM1_CH0_P15_5,  ATOM1_CH0_P15_6,  ATOM1_CH0_P20_12, ATOM1_CH0_P21_2, ATOM1_CH0_P22_1,
    ATOM1_CH1_P00_1,  ATOM1_CH1_P00_2,  ATOM1_CH1_P02_1,  ATOM1_CH1_P10_1,  ATOM1_CH1_P14_6,  ATOM1_CH1_P15_7,  ATOM1_CH1_P15_8, ATOM1_CH1_P20_13, ATOM1_CH1_P21_3, ATOM1_CH1_P22_0, ATOM1_CH1_P33_9,
    ATOM1_CH2_P00_3,  ATOM1_CH2_P02_2,  ATOM1_CH2_P10_2,  ATOM1_CH2_P10_5,  ATOM1_CH2_P14_0,  ATOM1_CH2_P20_14, ATOM1_CH2_P21_4, ATOM1_CH2_P33_11,
    ATOM1_CH3_P00_4,  ATOM1_CH3_P02_3,  ATOM1_CH3_P10_3,  ATOM1_CH3_P10_6,  ATOM1_CH3_P15_0,  ATOM1_CH3_P21_5,  ATOM1_CH3_P22_2,
    ATOM1_CH4_P00_5,  ATOM1_CH4_P02_4,  ATOM1_CH4_P15_1,  ATOM1_CH4_P20_3,  ATOM1_CH4_P21_6,  ATOM1_CH4_P22_3,
    ATOM1_CH5_P00_6,  ATOM1_CH5_P02_5,  ATOM1_CH5_P15_2,  ATOM1_CH5_P20_9,  ATOM1_CH5_P21_7,  ATOM1_CH5_P32_4,
    ATOM1_CH6_P00_7,  ATOM1_CH6_P02_6,  ATOM1_CH6_P15_3,  ATOM1_CH6_P20_0,  ATOM1_CH6_P20_10, ATOM1_CH6_P23_1,
    ATOM1_CH7_P00_8,  ATOM1_CH7_P02_7,  ATOM1_CH7_P15_4,  ATOM1_CH7_P20_11,

    ATOM2_CH0_P00_9,  ATOM2_CH0_P13_3,  ATOM2_CH0_P20_12, ATOM2_CH0_P33_4,  ATOM2_CH0_P33_10,
    ATOM2_CH1_P11_2,  ATOM2_CH1_P20_13, ATOM2_CH1_P33_5,
    ATOM2_CH2_P11_3,  ATOM2_CH2_P20_14, ATOM2_CH2_P33_6,
    ATOM2_CH3_P00_12, ATOM2_CH3_P11_6,  ATOM2_CH3_P15_0,  ATOM2_CH3_P33_7,
    ATOM2_CH4_P11_9,  ATOM2_CH4_P15_1,  ATOM2_CH4_P33_8,  ATOM2_CH4_P33_12,
    ATOM2_CH5_P11_10, ATOM2_CH5_P13_0,  ATOM2_CH5_P15_2,  ATOM2_CH5_P20_9,  ATOM2_CH5_P33_13,
    ATOM2_CH6_P11_11, ATOM2_CH6_P13_1,  ATOM2_CH6_P15_3,  ATOM2_CH6_P20_6,  ATOM2_CH6_P20_10, ATOM2_CH6_P32_0,
    ATOM2_CH7_P11_12, ATOM2_CH7_P13_2,  ATOM2_CH7_P15_4,  ATOM2_CH7_P20_7,  ATOM2_CH7_P20_8,  ATOM2_CH7_P20_11,

    ATOM3_CH0_P00_9,  ATOM3_CH0_P13_3,  ATOM3_CH0_P14_5,  ATOM3_CH0_P15_5,  ATOM3_CH0_P15_6,  ATOM3_CH0_P33_4,  ATOM3_CH0_P33_10,
    ATOM3_CH1_P11_2,  ATOM3_CH1_P14_4,  ATOM3_CH1_P14_6,  ATOM3_CH1_P15_7,  ATOM3_CH1_P15_8,  ATOM3_CH1_P33_5,
    ATOM3_CH2_P11_3,  ATOM3_CH2_P14_0,  ATOM3_CH2_P14_3,  ATOM3_CH2_P33_6,
    ATOM3_CH3_P00_12, ATOM3_CH3_P11_6,  ATOM3_CH3_P14_2,  ATOM3_CH3_P33_7,
    ATOM3_CH4_P11_9,  ATOM3_CH4_P14_1,  ATOM3_CH4_P33_8,  ATOM3_CH4_P33_12,
    ATOM3_CH5_P11_10, ATOM3_CH5_P13_0,  ATOM3_CH5_P33_13,
    ATOM3_CH6_P11_11, ATOM3_CH6_P13_1,  ATOM3_CH6_P20_6,  ATOM3_CH6_P32_0,
    ATOM3_CH7_P11_12, ATOM3_CH7_P13_2,  ATOM3_CH7_P20_7,
}pwm_channel_enum;
#include "zf_common_headfile.h"
#pragma section all "cpu0_dsram"

#define PWM_CH1                (ATOM0_CH3_P21_5)
#define PWM_CH2               (ATOM0_CH1_P21_3)


int core0_main(void)
{
    clock_init();                   // 获取时钟频率<务必保留>
    debug_init();                   // 初始化默认调试串口
    // 此处编写用户代码 例如外设初始化代码等
    pwm_init(PWM_CH1, 17000, 10000);
    pwm_init(PWM_CH2, 17000, 0);


    // 此处编写用户代码 例如外设初始化代码等
    cpu_wait_event_ready();         // 等待所有核心初始化完毕
    while (TRUE)
    {
        // 此处编写需要循环执行的代码





        // 此处编写需要循环执行的代码
    }
}

#pragma section all restore


// **************************** 代码区域 ****************************