2019-03-25 18:51发布
dingzy_2002 发表于 2017-7-21 08:18 请问,是怎么影响PWM输出了?是输出波形断开了一段时间还是频率变化?
木瓜舟舟 发表于 2017-7-21 09:32 按键按一下,速度冲一下,长按着,速度能冲到顶
dingzy_2002 发表于 2017-7-21 10:07 2.PWM函数问题,主要是按键过程中,PWM数据传递出现异常了. 3.干扰问题:相关函数操作出现互相影响.
木瓜舟舟 发表于 2017-7-22 01:33 您好,我重新一段一段的调试,发现按键影响到了我的速度反馈值,我是用捕获模块来测速的,但就是不明白为 ...
最多设置5个标签!
按键按一下,速度冲一下,长按着,速度能冲到顶
速度冲一下?
是不是PWM输出波形变成高电平一段时间?
如果是这样,看了你的程序段,可能有以下原因:
1.看门狗问题:你程序设置的预分频器是给T0的,这样看问狗复位时间是18MS左右,但主程序部分未见复位看门狗语句.
您好,我重新一段一段的调试,发现按键影响到了我的速度反馈值,我是用捕获模块来测速的,但就是不明白为什么会影响到它
//*****************测速程序***********************//
void calculate()
{
if(speednum1<799)
{
cp_flag=0;
if(z==1)
{
timelen1=w2-w1;
speednum1=60000/timelen1;
if(speednum1>800)
{
speednum1=800;
}
CCP1IE=1;
z=0;
}
}
else if(speednum1>=800)
{
cp_flag=1;
if(f==1) //每圈计算一次转速
{
if(!(time2>=time1&&TMR1IF))
{
if(time_flag1==1)
{
time_flag1=0;
timelen=time2-time1;
speednum1=60000*500/timelen;
}
if(time_flag2==1)
{
time_flag2=0;
timelen=60000+5536-time1+time2;
speednum1=60000*500/timelen;
}
}
TMR1IF=0;
f=0;
CCP1IE=1;
}
}
//return (speednum1);
}
在我看来,可能是实时性问题
即,捕获中断所获得的值是否能得到及时收集与处理?
1.单片机的运行速度要提高;(提高工作频率?)
2.捕获中断的优先级提高,以便获得数据的及时处理.
3.优化程序结构,提高重要函数(如PID等)的运行速度与效率.
一周热门 更多>