占空比调速步进电机不明显
#include "stc32g.h"#include "STC32G_UART.h"
#include "STC32G_NVIC.h"
#include "STC32G_Switch.h"
////////////////////////////////////////////////////
u16nDuty=500;
unsigned int f=2000 ; //设置周期值
unsigned long lcount=0;
sbit x=P2^6;
/************* 本地函数声明 **************/
void UART_config(void);
void PWMA_config(void);
/**********************************************/
void main(void)
{
WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXSFR(); //扩展SFR(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
UART_config();
PWMA_config();
while (1)
{
}//while(1)
}
//========================================================================
// 函数: void PWMA_config(void)
// 描述: PPWM配置函数。
// 参数: noe.
// 返回: none.
// 版本: V1.0, 2021-5-10
// 备注:
//========================================================================
void PWMA_config(void)
{
u8 ccer1;
u8 ccer2;
u8 ps;
u8 eno;
u8 PWMA_ISR_En=0;
P_SW2 |= 0x80; //SFR enable
PWMA_ENO = 0; // IO输出禁止
PWMA_IER = 0; // 禁止中断
PWMA_SR1 = 0; // 清除状态
PWMA_SR2 = 0; // 清除状态
ccer1 = 0;
ccer2 = 0;
ps = 0;
eno = 0;
PWMA_ISR_En = 0;
PWMA_PSCRH = 0; // 预分频寄存器, 分频 Fck_cnt = Fck_psc/(PSCR[15:0}+1), 边沿对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)), 中央对齐PWM频率 = SYSclk/((PSCR+1)*(AAR+1)*2).
PWMA_PSCRL = 0;
f=2000 ;
PWMA_ARRH = (u8)(f >> 8); //设置周期时间
PWMA_ARRL = (u8)f;
//nDuty=0.1*f;
nDuty=0.9*f;
PWMA_CCR4H= (u8)(nDuty >> 8);
PWMA_CCR4L= (u8)(nDuty );
PWMA_CCMR4= (3<<4); // 通道1模式配置, 禁止预装载. 0: 无输出, 1:匹配时输出高, 2:匹配时输出低, 3:匹配时输出翻转.
ccer2 |= 0x10; // 开启比较输出, 高电平有效
ps |= (1<<6); // 选择IO, 0:选择P1.6 P1.7, 1:选择P2.6 P2.7, 2:选择P6.6 P6.7, 3:选择P3.3 P3.4
eno |= 0x40; // IO输出允许,bit7: ENO4N, bit6: ENO4P, bit5: ENO3N, bit4: ENO3P,bit3: ENO2N,bit2: ENO2P,bit1: ENO1N,bit0: ENO1P
PWMA_ISR_En|= 0x10; // 使能中断
PWMA_CCER1= ccer1; // 捕获/比较使能寄存器1
PWMA_CCER2= ccer2; // 捕获/比较使能寄存器2
PWMA_PS = ps; // 选择IO
PWMA_IER = PWMA_ISR_En; //设置允许通道1~4中断处理
PWMA_EGR = 0x01; //产生一次更新事件, 清除计数器和预分频计数器, 装载预分频寄存器的值
PWMA_BKR = 0x80; //主输出使能 相当于总开关
PWMA_CR1 = 0x01; // 使能计数器, 允许自动重装载寄存器缓冲, 边沿对齐模式, 向上计数,bit7=1:写自动重装载寄存器缓冲(本周期不会被打扰), =0:直接写自动重装载寄存器本(周期可能会乱掉)
PWMA_ENO = eno; // 允许IO输出
}
上面这个是我根据梁工的代码改了一下,P26接动器,发现占空比0.1和0.9电机转速差不多,没有调频率来的明显,请问问题出在那里。 步进电机不是用占空比调速的,请先仔细学习一下步进电机的原理。
页:
[1]