398966548 发表于 2021-2-28 19:20:37

请教大神们stc8a单片机PWM驱动步进电机,如何改变频率

各位大神好
我用的STC的例程如下

#include <STC8A.h>
#include "stdio.h"
#include <intrins.h>
sbit k1 = P2^1;
sbit k3 = P2^2;
sbit k2 = P2^3;
sbit P1a6      =   P2^6;
void main()
{

398966548 发表于 2021-2-28 19:22:23

void main()
{                               
                                P2M0 = 0x20; // 设置强挽推,设置准双向
      P2M1 = 0x00;
                                P_SW2=0x80;
                                PWMC。K。S=0x00;
                                PWMC=0x7999;   //设置脉冲总数
                                PWM5T1=0x0010; //设置低电平开始值
                                PWM5T2=0x06050;//设置高电平开始值
                                PWM5CR=0x80;
                                P_SW2=0x00;
//                  PWMCR=0x80;
             
              P2PU=0x0E;
      while(1)
        {
                if(k1==0) P1a6=1,PWMCR=0x80;
                if(k2==0) PWMCR=0x00;
                if(k3==0) P1a6=0,PWMCR=0x80;
                                }
                        }

takashiki 发表于 2021-2-28 19:55:36

改变PWMC

398966548 发表于 2021-2-28 20:22:11

takashiki 发表于 2021-2-28 19:55
改变PWMC

我试过了,实际上运行之后是改不了的

takashiki 发表于 2021-3-1 05:47:29

398966548 发表于 2021-2-28 20:22
我试过了,实际上运行之后是改不了的

改不了是不可能的。如果PWM运行时改不了,就先关闭了再改然后再运行就是了

小李非刀 发表于 2021-3-3 22:48:00

PWMC决定PWM周期(或频率),修改PWMC一定会改变周期(或频率)。
楼主是直接用PWM驱动步进电机线圈吗?如果是,则PWM频率是固定的,只改变PWM占空比,按一定速度查正弦表输出就可以获得转速(所谓SPWM),查表速度越快,转速就越快。
如果是步进电机自带驱动器,MCU仅仅是给脉冲,则使用PCA或定时器输出可变频率方波最方便。

TangCS 发表于 2021-3-11 17:12:55

小李非刀 发表于 2021-3-3 22:48
PWMC决定PWM周期(或频率),修改PWMC一定会改变周期(或频率)。
楼主是直接用PWM驱动步进电机线圈吗?如 ...

6楼是高手,几种步进电机的驱动方式都熟悉
页: [1]
查看完整版本: 请教大神们stc8a单片机PWM驱动步进电机,如何改变频率