智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: 永远的记忆
打印 上一主题 下一主题

xs128只有一个脉冲累加器,而电机闭环要两个编码器?大家都是怎么处理的?

[复制链接]

0

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
859
QQ
威望
382
贡献
237
兑换币
251
注册时间
2015-3-17
在线时间
120 小时
毕业学校
中原工学院
21#
发表于 2016-4-27 14:31:39 | 只看该作者
永远的记忆 发表于 2016-4-27 13:21
666666,你没有外焊接脉冲累加器?

没有的。
回复 支持 反对

使用道具 举报

31

主题

449

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3372

优秀会员奖章活跃会员奖章在线王奖章

QQ
威望
1599
贡献
1029
兑换币
1043
注册时间
2015-10-19
在线时间
372 小时
毕业学校
太和一中
22#
 楼主| 发表于 2016-4-27 15:43:06 | 只看该作者

那xs128,你编码器用脉冲累加器,陀螺仪也要用脉冲累加器,而xs128就一个,你怎么解决的?
回复 支持 反对

使用道具 举报

0

主题

26

帖子

0

精华

高级会员

Rank: 4

积分
859
QQ
威望
382
贡献
237
兑换币
251
注册时间
2015-3-17
在线时间
120 小时
毕业学校
中原工学院
23#
发表于 2016-4-27 21:18:27 | 只看该作者
永远的记忆 发表于 2016-4-27 15:43
那xs128,你编码器用脉冲累加器,陀螺仪也要用脉冲累加器,而xs128就一个,你怎么解决的?

陀螺仪要用脉冲累加吗?用AD吧?XS128 PT口具有捕捉功能,在用PE生成的底层函数里面定义一个变量,让它++,用来累加捕捉到的编码器脉冲个数。这样不就可以测速了么。
回复 支持 反对

使用道具 举报

10

主题

105

帖子

0

精华

高级会员

Rank: 4

积分
912
威望
499
贡献
249
兑换币
299
注册时间
2015-10-17
在线时间
82 小时
毕业学校
太原工业学院
24#
发表于 2016-4-29 08:20:17 | 只看该作者
aytc100 发表于 2016-4-26 12:37
只有一个pacat寄存器,从哪里输入都是一样的

你们 北科的论坛账号也是留传下来的吗 7000多个小时  6年前注册   666666666
回复 支持 反对

使用道具 举报

10

主题

827

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5700
威望
2773
贡献
1739
兑换币
1895
注册时间
2013-9-14
在线时间
594 小时
25#
发表于 2016-4-29 10:43:39 | 只看该作者
采用外部计数芯片CD        好多 搞忘了
回复 支持 反对

使用道具 举报

5

主题

118

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1498
威望
730
贡献
434
兑换币
456
注册时间
2015-10-23
在线时间
167 小时
26#
发表于 2016-4-29 19:18:16 | 只看该作者
分时复用,50ms左轮用,50模式右轮用
回复 支持 反对

使用道具 举报

31

主题

449

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3372

优秀会员奖章活跃会员奖章在线王奖章

QQ
威望
1599
贡献
1029
兑换币
1043
注册时间
2015-10-19
在线时间
372 小时
毕业学校
太和一中
27#
 楼主| 发表于 2016-4-29 21:34:50 | 只看该作者
风生水起 发表于 2016-4-29 19:18
分时复用,50ms左轮用,50模式右轮用

能不能让具体说一下
回复 支持 反对

使用道具 举报

5

主题

118

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1498
威望
730
贡献
434
兑换币
456
注册时间
2015-10-23
在线时间
167 小时
28#
发表于 2016-5-2 20:53:29 | 只看该作者
永远的记忆 发表于 2016-4-29 21:34
能不能让具体说一下

void CalSpeedError(void)
{
        static float fSpeedErrorTemp[5] = {0};
        static int8 Flag_Exchange = 0;
       
        switch(Flag_Exchange)
        {
                case 0:
                {
                        g_nLeftSpeed = (g_nLeftPWM >= 0? tpm_pulse_get(TPM2)-tpm_pulse_get(TPM2)));
                        tpm_pulse_clean (TPM2);
               
                        tpm_pulse_init(TPM2,TPM_CLKIN1,TPM_PS_1); //初始化 TPM2 (PE30)为脉冲累加,右编码器
                };break;
                case 1:
                {
                        g_nRighSpeed = (g_nRighPWM >= 0? tpm_pulse_get(TPM2):(-tpm_pulse_get(TPM2)));
                        tpm_pulse_clean (TPM2);
               
                        tpm_pulse_init(TPM2,TPM_CLKIN0,TPM_PS_1); //初始化 TPM2 (PB16)为脉冲累加,左编码器
               
                        fSpeedErrorTemp[4] = fSpeedErrorTemp[3];
                        fSpeedErrorTemp[3] = fSpeedErrorTemp[2];
                        fSpeedErrorTemp[2] = fSpeedErrorTemp[1];
                        fSpeedErrorTemp[1] = fSpeedErrorTemp[0];
                        fSpeedErrorTemp[0] = -(g_fExpectSpeed - ((g_nLeftSpeed + g_nRighSpeed)/2.0)*Ratio_Encoder);
                        g_fSpeedError = 0.5*fSpeedErrorTemp[0] + 0.2*fSpeedErrorTemp[1] + 0*fSpeedErrorTemp[2] + 0*fSpeedErrorTemp[3];       
                };break;
        }
       
       
        Flag_Exchange++; if(Flag_Exchange >= 2)Flag_Exchange = 0;
}

回复 支持 反对

使用道具 举报

5

主题

118

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1498
威望
730
贡献
434
兑换币
456
注册时间
2015-10-23
在线时间
167 小时
29#
发表于 2016-5-2 20:55:19 | 只看该作者
程序写的渣,将就看看
回复 支持 反对

使用道具 举报

31

主题

449

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3372

优秀会员奖章活跃会员奖章在线王奖章

QQ
威望
1599
贡献
1029
兑换币
1043
注册时间
2015-10-19
在线时间
372 小时
毕业学校
太和一中
30#
 楼主| 发表于 2016-5-2 22:20:01 | 只看该作者
风生水起 发表于 2016-5-2 20:55
程序写的渣,将就看看

相对于我来说你这是大神了,谢谢了
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-10-2 14:24 , Processed in 0.050900 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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