找回密码
 立即注册
查看: 697|回复: 1

求助~STC8H1K08使用pwm高级定时器驱动舵机的问题

[复制链接]

2

主题

4

回帖

38

积分

新手上路

积分
38
发表于 2023-5-23 16:45:22 | 显示全部楼层 |阅读模式
本帖最后由 大表嫂 于 2023-5-23 16:46 编辑

【虚心请教】这个代码写的有问题吗?当我用示波器观察波形的时候,有锯齿,而且当给波形放大到1us的时候,有抖动,请问这是什么问题呢? 代码如下:


#include "STC8H.h"

typedef     unsigned char   u8;
typedef     unsigned int    u16;
typedef     unsigned long   u32;

#define PWM_PSC                 (120-1)        //12分频
#define PWM_PERIOD                 2000                //周期20毫秒
#define PWM_DUTY_0                 100                        //占空比2.5%

void main(void)
{

        P_SW2 |= 0X80;        //扩展寄存器(XFR)访问使能
        P1M0 = 0xff; P1M1 = 0x00;

        PWMA_CCER1 = 0x00; // 写 CCMRx 前必须先清零 CCERx 关闭通道
        PWMA_CCMR1 = 0x60; // 设置 CC1 为 PWMA 输出模式
        PWMA_CCER1 = 0x01; // 使能 CC1 CC2通道
        
        PWMA_CCR1H = (u16)(PWM_DUTY_0 >> 8); // 设置占空比时间 占空比2.5%
        PWMA_CCR1L = (u16)(PWM_DUTY_0);
        
        PWMA_PSCRH = (u16)(PWM_PSC >> 8);
        PWMA_PSCRL = (u16)(PWM_PSC);                 //119+1=120预分频
        
        PWMA_ARRH = (u16)(PWM_PERIOD >> 8); // 设置PWM周期
        PWMA_ARRL = (u16)(PWM_PERIOD);
        
        PWMA_ENO = 0x01; // 使能 PWM1P 端口输出
        PWMA_BKR = 0x80; // 使能主输出
        
        PWMA_CR1 = 0x01; // 启动PWM定时器

        while(1)
        {
               
        }

}

回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:81
  • 最近打卡:2024-10-17 09:35:06

9

主题

180

回帖

1778

积分

版主

积分
1778
发表于 2023-5-23 17:29:08 | 显示全部楼层
您好,可以贴图上传,方便技术人员排查
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 15:12 , Processed in 0.104877 second(s), 54 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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