打印
[活动]

CH579M PWM 代码一角

[复制链接]
216|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
丙丁先生|  楼主 | 2024-10-8 17:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "CH57x_common.h" // 引入通用头文件

// PWMX_CycleCfg函数:PWM4-PWM11基准时钟配置
void PWMX_CycleCfg( PWMX_CycleTypeDef cyc )
{       
    switch( cyc ) // 根据输入的cyc参数选择不同的基准时钟配置
    {
        case PWMX_Cycle_256:
            R8_PWM_CONFIG = R8_PWM_CONFIG & 0xf0; // 清除低四位,设置基准时钟为256
            break;

        case PWMX_Cycle_255:
            R8_PWM_CONFIG = (R8_PWM_CONFIG & 0xf0) | 0x01; // 清除低四位,设置基准时钟为255
            break;

        case PWMX_Cycle_128:
            R8_PWM_CONFIG = (R8_PWM_CONFIG & 0xf0) | (1<<2); // 清除低四位,设置基准时钟为128
            break;

        case PWMX_Cycle_127:
            R8_PWM_CONFIG = (R8_PWM_CONFIG & 0xf0) | (1<<2) | 0x01; // 清除低四位,设置基准时钟为127
            break;

        case PWMX_Cycle_64:
            R8_PWM_CONFIG = (R8_PWM_CONFIG & 0xf0) | (2<<2); // 清除低四位,设置基准时钟为64
            break;

        case PWMX_Cycle_63:
            R8_PWM_CONFIG = (R8_PWM_CONFIG & 0xf0) | (2<<2) | 0x01; // 清除低四位,设置基准时钟为63
            break;

        case PWMX_Cycle_32:
            R8_PWM_CONFIG = (R8_PWM_CONFIG & 0xf0) | (3<<2); // 清除低四位,设置基准时钟为32
            break;

        case PWMX_Cycle_31:
            R8_PWM_CONFIG = (R8_PWM_CONFIG & 0xf0) | (3<<2) | 0x01; // 清除低四位,设置基准时钟为31
            break;

        default :
            break;
    }
}

// PWMX_ACTOUT函数:PWM4-PWM11通道输出波形配置
void PWMX_ACTOUT( UINT8 ch, UINT8 da, PWMX_PolarTypeDef pr, UINT8 s)
{
    UINT8 i;

    if(s == DISABLE)        R8_PWM_OUT_EN &= ~(ch); // 如果s为DISABLE,关闭对应通道的PWM输出
    else
    {
        (pr)?(R8_PWM_POLAR|=(ch)):(R8_PWM_POLAR&=~(ch)); // 根据pr参数设置极性
        for(i=0; i<8; i++)
        {
            if((ch>>i)&1)                *((PUINT8V)((&R8_PWM4_DATA)+i)) = da; // 设置对应通道的数据宽度
        }
        R8_PWM_OUT_EN |= (ch); // 打开对应通道的PWM输出
    }
}

// PWMX_AlterOutCfg函数:PWM交替输出模式配置
void PWMX_AlterOutCfg( UINT8 ch, UINT8 s)
{
    if(s == DISABLE)        R8_PWM_CONFIG &= ~(ch); // 如果s为DISABLE,关闭交替输出功能
    else                    R8_PWM_CONFIG |= (ch); // 否则,打开交替输出功能
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

522

主题

1761

帖子

5

粉丝