请教大神们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()
{ 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;
}
} 改变PWMC takashiki 发表于 2021-2-28 19:55
改变PWMC
我试过了,实际上运行之后是改不了的 398966548 发表于 2021-2-28 20:22
我试过了,实际上运行之后是改不了的
改不了是不可能的。如果PWM运行时改不了,就先关闭了再改然后再运行就是了 PWMC决定PWM周期(或频率),修改PWMC一定会改变周期(或频率)。
楼主是直接用PWM驱动步进电机线圈吗?如果是,则PWM频率是固定的,只改变PWM占空比,按一定速度查正弦表输出就可以获得转速(所谓SPWM),查表速度越快,转速就越快。
如果是步进电机自带驱动器,MCU仅仅是给脉冲,则使用PCA或定时器输出可变频率方波最方便。 小李非刀 发表于 2021-3-3 22:48
PWMC决定PWM周期(或频率),修改PWMC一定会改变周期(或频率)。
楼主是直接用PWM驱动步进电机线圈吗?如 ...
6楼是高手,几种步进电机的驱动方式都熟悉
页:
[1]