大表嫂 发表于 2023-5-23 16:45:22

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

本帖最后由 大表嫂 于 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)
      {
               
      }

}

一轮明月 发表于 2023-5-23 17:29:08

您好,可以贴图上传,方便技术人员排查
页: [1]
查看完整版本: 求助~STC8H1K08使用pwm高级定时器驱动舵机的问题