才接触两个星期,然后公司这次打算用单片机控制伺服电机,不用PLC了。 改用用了原子的PWM输出1.2K频率 占空比为百分之50,电机能转起来。PWM接在光耦上 光耦的另一端控制24V。24V给伺服驱动器。现在就是不知道如何控制准确PWM脉冲的个数。
int main(void)
{
u16 led0pwmval=0;
u8 dir=1;
SystemInit();
delay_init(72);
NVIC_Configuration();
uart_init(9600);
LED_Init();
KEY_Init();
PWM_Init(5999,0);
while(1)
{
delay_ms(10);
if(dir)led0pwmval++;
else led0pwmval--;
if(led0pwmval>300)dir=0;
if(led0pwmval==0)dir=1;
led0pwmval=3000;
TIM_SetCompare2(TIM3,led0pwmval);
}
} 该如何精确个数了 搜了很多资料
TIM_TimeBaseStructure.TIM_Period = arr;
TIM_TimeBaseStructure.TIM_Prescaler =psc;
这种我大概慢慢看 还能看懂 。
但是很多资料是这样的 我。。。。。。。。。。。。
TIM1->CCMR2|=7<<4;
TIM1->CCMR2|=1<<3;
TIM1->CCER|=1<<10;
TIM1->BDTR|=1<<15
你可以用MOS啊
一周热门 更多>