注册 登录
查看: 444|回复: 14

电磁低功耗分时复用问题

[复制链接]
发表于 2014-2-22 11:50:28 | 显示全部楼层 |阅读模式
oid PIT1_IRQHandler(void)
{   
    m++;
    PIT_Flag_Clear(PIT1); //清中断标志位
    if(m%2==0)
    {
       count=LPTMR0_CNR;  //保存脉冲计数器计算值  
       Lcesu =LPT_INT_count*35000 + count;
       lptmr_counter_clean(); //清空脉冲计数器计算值(马上清空,这样才能保证计数值准确)
       LPT_INT_count=0; //清空LPT中断次数 */
       lptmr_counter_init(LPT0_ALT2,35000,2,LPT_Rising);  //计数初始化PTC5
    }
   
   else
   {
       count1=LPTMR0_CNR;  //保存脉冲计数器计算值  
       lptmr_counter_clean(); //清空脉冲计数器计算值(马上清空,这样才能保证计数值准确)
       Rcesu =LPT_INT_count*35000 + count1;
       LPT_INT_count=0; //清空LPT中断次数 */
       lptmr_counter_init(LPT0_ALT1,35000,1,LPT_Rising);
   }
.....为什么有一边轮子捏死,pwm上升到最大值,而另一边捏死了始终上升不到最大值?
来自PC客户端 来自PC客户端
回复

使用道具 举报

发表于 2014-2-22 11:57:00 | 显示全部楼层
这里仅有测速的代码,测到的结果是否相同呢?

这问题应该是PID调速的问题吧?这些需要在线调试,自己找问题的,别人基本上帮不了忙
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 12:31:29 | 显示全部楼层
隗英秀 发表于 2014-2-22 11:57
这里仅有测速的代码,测到的结果是否相同呢?

这问题应该是PID调速的问题吧?这些需要在线调试,自己找问 ...

应该跟pid没多大关系吧,单独用一边的时候,轮子捏死error很大,电机pwm应该很快达到上限
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 12:34:09 | 显示全部楼层
隗英秀 发表于 2014-2-22 11:57
这里仅有测速的代码,测到的结果是否相同呢?

这问题应该是PID调速的问题吧?这些需要在线调试,自己找问 ...

两边测速测得结果基本一样
回复 支持 反对

使用道具 举报

发表于 2014-2-22 12:38:59 | 显示全部楼层
行乔 发表于 2014-2-22 12:31
应该跟pid没多大关系吧,单独用一边的时候,轮子捏死error很大,电机pwm应该很快达到上限

测试结果一样,说明是你的算法问题。电机抱死了,然后你的程序自行把PWM改大的啊,为什么改得不对称,这就是你自己算法问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 12:54:48 | 显示全部楼层
恐发之际 发表于 2014-2-22 12:38
测试结果一样,说明是你的算法问题。电机抱死了,然后你的程序自行把PWM改大的啊,为什么改得不对称,这就 ...

哈哈,搞好了!!
回复 支持 反对

使用道具 举报

发表于 2014-2-22 12:57:45 | 显示全部楼层
行乔 发表于 2014-2-22 12:54
哈哈,搞好了!!

原因是??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 13:14:09 | 显示全部楼层
恐发之际 发表于 2014-2-22 12:57
原因是??

分时复用后周期变了,后一路的p值应该大于前一路的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 13:19:31 | 显示全部楼层
恐发之际 发表于 2014-2-22 12:57
原因是??

问你一个问题额,ftm计数用过么,为么我试了很多次,ftm计数始终不成功!
回复 支持 反对

使用道具 举报

发表于 2014-2-22 13:21:24 | 显示全部楼层
行乔 发表于 2014-2-22 13:19
问你一个问题额,ftm计数用过么,为么我试了很多次,ftm计数始终不成功!

一个FTM,只能干一个活,换句话说,FTM0用于电机驱动后,就不能用在输入捕捉、脉冲计数。
FTM可以用正交解码的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 13:28:32 | 显示全部楼层
恐发之际 发表于 2014-2-22 13:21
一个FTM,只能干一个活,换句话说,FTM0用于电机驱动后,就不能用在输入捕捉、脉冲计数。
FTM可以用正交解 ...

这个我知道,我用的ftm2,只用于计数,PTB18接编码器脉冲,PTB19悬空,还是不能正常计数!
回复 支持 反对

使用道具 举报

发表于 2014-2-22 13:30:16 | 显示全部楼层
行乔 发表于 2014-2-22 13:28
这个我知道,我用的ftm2,只用于计数,PTB18接编码器脉冲,PTB19悬空,还是不能正常计数!

你的编码器有没有外部接上拉电阻?B相不要浮空,接个高电平
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 13:36:02 | 显示全部楼层
100线编码器转接板只有A相输出,貌似B相应该接了上拉、、
回复 支持 反对

使用道具 举报

发表于 2014-2-22 13:40:27 | 显示全部楼层
行乔 发表于 2014-2-22 13:36
100线编码器转接板只有A相输出,貌似B相应该接了上拉、、

不要应该不应该,连电路都不清楚,那么出问题当然找不到原因。
K60的A相/B相都需要外部上拉电阻的,不然没法计数。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-22 13:42:39 | 显示全部楼层
恐发之际 发表于 2014-2-22 13:40
不要应该不应该,连电路都不清楚,那么出问题当然找不到原因。
K60的A相/B相都需要外部上拉电阻的,不然 ...

好吧,谢谢指导!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部