查看: 60|回复: 1

[求助] LPC1758的pwm输出脉冲

[复制链接]

该用户从未签到

1

主题

1

帖子

0

新手上路

Rank: 1

积分
16
最后登录
2025-8-29
发表于 3 天前 | 显示全部楼层 |阅读模式
设置频率20HZ,实际输出5.429Hz,需要修改哪里才能输出准确20Hz呢,不知道为什么没有找到lpc1758的用户手册,不知道怎么配置
static uint32_t pwm_period = 0;
void PWM_CH6_Init(uint32_t frequency)
{
    LPC_PINCON->PINSEL4 &= ~(3 << 10);
    LPC_PINCON->PINSEL4 |= (1 << 10);   
    LPC_PINCON->PINMODE4 &= ~(3 << 10);
    LPC_PINCON->PINMODE4 |= (2 << 10);       
    LPC_SC->PCONP |= (1 << 6);  
    LPC_PWM1->TCR = (1 << 1);
    LPC_PWM1->PR = 0;   
    PWM_CH6_SetFrequency(frequency);   
    LPC_PWM1->MCR |= (1 << 1);   
    LPC_PWM1->MR6 = 0;   
    LPC_PWM1->PCR |= (1 << 14);
    LPC_PWM1->PCR |= (1 << 6);  
    LPC_PWM1->LER |= (1 << 0) | (1 << 6);
    LPC_PWM1->TCR = 0;                  
    LPC_PWM1->TCR = (1 << 0) | (1 << 3);  
}
void PWM_CH6_SetFrequency(uint32_t frequency)
{
    pwm_period = SystemCoreClock / frequency - 1;

    if (pwm_period < 1)
                        {
        pwm_period = 1;
      }
    LPC_PWM1->MR0 = pwm_period;
    LPC_PWM1->LER |= (1 << 0);
}
void PWM_CH6_SetDutyCycle(float duty_cycle)
{
    uint32_t match_value;
    if (duty_cycle > 100) {
        duty_cycle = 100;
    }   
    match_value = (uint32_t)((pwm_period * duty_cycle) / 100.0f+0.5f);   
    LPC_PWM1->MR6 = match_value;   
    LPC_PWM1->LER |= (1 << 6);
}
void PWM_CH6_Enable(void)
{
    LPC_PWM1->PCR |= (1 << 6);  // 使能PWM6输出
}
void PWM_CH6_Disable(void)
{
    LPC_PWM1->PCR &= ~(1 << 6); // 禁用PWM6输出
}

我知道答案 目前已有1人回答
回复

使用道具 举报

  • TA的每日心情
    开心
    昨天 00:04
  • 签到天数: 1054 天

    连续签到: 14 天

    [LV.10]以坛为家III

    3

    主题

    2362

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    7047
    最后登录
    2025-8-30
    发表于 3 天前 | 显示全部楼层
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-31 21:01 , Processed in 0.081941 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表