智能车制作

 找回密码
 注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: 徐晋鸿!
打印 上一主题 下一主题

给小车跪了——第三篇

  [复制链接]

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
11#
发表于 2013-4-17 16:27:17 | 只看该作者
dec112233 发表于 2013-4-16 22:53
那可以使用内部上拉吗 ?     怎么 设置内部上拉?

可以用内部上拉,不过要悬空那个管脚
port 模块里设置的

回复 支持 反对

使用道具 举报

0

主题

99

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
威望
452
贡献
321
兑换币
238
注册时间
2012-12-6
在线时间
127 小时
12#
发表于 2013-4-17 21:23:41 | 只看该作者
野火 发表于 2013-4-17 16:27
可以用内部上拉,不过要悬空那个管脚
port 模块里设置的

恩 用的你的库 设置了   还是检测不出来速度  准备用DMA试试    谢谢啊   
回复 支持 反对

使用道具 举报

0

主题

52

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4691
威望
1845
贡献
1012
兑换币
811
注册时间
2012-7-25
在线时间
917 小时
13#
发表于 2013-4-17 23:02:07 | 只看该作者
A19口确实不好用,我们也有这个问题,换成c5口就好了
回复 支持 反对

使用道具 举报

13

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1951
威望
1015
贡献
526
兑换币
571
注册时间
2012-6-21
在线时间
205 小时
14#
发表于 2013-4-26 07:54:17 | 只看该作者
野火 发表于 2013-4-16 10:19
可以,B相的核心板管脚,接3.3V

火哥,是不是单相编码器可以用你上面给的程序,只是将产生脉冲的B相接PTA10,然后PTA11接3.3v,是么?
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
15#
发表于 2013-4-26 08:00:56 | 只看该作者
jackailson 发表于 2013-4-26 07:54
火哥,是不是单相编码器可以用你上面给的程序,只是将产生脉冲的B相接PTA10,然后PTA11接3.3v,是么?

编码器输出脉冲的接A相,B相接3.3V  啊

回复 支持 反对

使用道具 举报

13

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1951
威望
1015
贡献
526
兑换币
571
注册时间
2012-6-21
在线时间
205 小时
16#
发表于 2013-4-26 08:19:22 | 只看该作者
就是将编码器产生脉冲的线接PTA8,PTA9接3.3V,程序如下//*****************************************************************************
//  FTM1 编码器1  引脚 PTA 8-9
//*****************************************************************************
void FTM1_QUAD_Int(void)  
{
  
  PORTA_PCR8     =  PORT_PCR_MUX(6);                                            // 设置引脚A8引脚为FTM2_PHA功能  
  PORTA_PCR9     =  PORT_PCR_MUX(6);                                            // 设置引脚A9引脚为FTM2_PHB功能  
  PORT_PCR_REG(PORTA_BASE_PTR, 8) |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK ;      //开弱上拉
  PORT_PCR_REG(PORTA_BASE_PTR, 9) |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK ;      //开弱上拉
  SIM_SCGC6     |=  SIM_SCGC6_FTM1_MASK;                                        // 使能FTM2时钟  
  FTM1_MODE     |=  FTM_MODE_WPDIS_MASK;                                        // 写保护禁止  
  FTM1_QDCTRL   |=  FTM_QDCTRL_QUADMODE_MASK;                                   // AB相同时确定方向和计数值  
  FTM1_CNTIN     =  0;                                                          // FTM0计数器初始值为0  
  FTM1_MOD       =  65535;                                                      // 结束值  
  FTM1_QDCTRL   |=  FTM_QDCTRL_QUADEN_MASK;                                     // 启用FTM2正交解码模式  
  FTM1_MODE     |=  FTM_MODE_FTMEN_MASK;                                        // FTM2EN=1   
  FTM1_CNT       =  0;  
}  
回复 支持 反对

使用道具 举报

13

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1951
威望
1015
贡献
526
兑换币
571
注册时间
2012-6-21
在线时间
205 小时
17#
发表于 2013-4-26 08:20:47 | 只看该作者
野火 发表于 2013-4-26 08:00
编码器输出脉冲的接A相,B相接3.3V  啊

就是将编码器产生脉冲的线接PTA8,PTA9接3.3V,程序如下//*****************************************************************************
//  FTM1 编码器1  引脚 PTA 8-9
//*****************************************************************************
void FTM1_QUAD_Int(void)  
{
  
  PORTA_PCR8     =  PORT_PCR_MUX(6);                                            // 设置引脚A8引脚为FTM2_PHA功能  
  PORTA_PCR9     =  PORT_PCR_MUX(6);                                            // 设置引脚A9引脚为FTM2_PHB功能  
  PORT_PCR_REG(PORTA_BASE_PTR, 8) |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK ;      //开弱上拉
  PORT_PCR_REG(PORTA_BASE_PTR, 9) |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK ;      //开弱上拉
  SIM_SCGC6     |=  SIM_SCGC6_FTM1_MASK;                                        // 使能FTM2时钟  
  FTM1_MODE     |=  FTM_MODE_WPDIS_MASK;                                        // 写保护禁止  
  FTM1_QDCTRL   |=  FTM_QDCTRL_QUADMODE_MASK;                                   // AB相同时确定方向和计数值  
  FTM1_CNTIN     =  0;                                                          // FTM0计数器初始值为0  
  FTM1_MOD       =  65535;                                                      // 结束值  
  FTM1_QDCTRL   |=  FTM_QDCTRL_QUADEN_MASK;                                     // 启用FTM2正交解码模式  
  FTM1_MODE     |=  FTM_MODE_FTMEN_MASK;                                        // FTM2EN=1   
  FTM1_CNT       =  0;  
}  

回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
18#
发表于 2013-4-26 08:48:50 | 只看该作者
jackailson 发表于 2013-4-26 08:20
就是将编码器产生脉冲的线接PTA8,PTA9接3.3V,程序如下//******************************************** ...

代码注释有误,是FTM1的
回复 支持 反对

使用道具 举报

13

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1951
威望
1015
贡献
526
兑换币
571
注册时间
2012-6-21
在线时间
205 小时
19#
发表于 2013-4-26 09:08:41 | 只看该作者
恩,知道,就是这样吧,还有我按照这个方法试了一下,正反转电机能检测到脉冲,但是脉冲数没有负数啊,但是正转到反转、反转到正转时,脉冲数是有减小的,我的脉冲检测周期是100ms,是不是我的检测周期太长导致没有负数,还是初始化程序时有其他要求?
回复 支持 反对

使用道具 举报

4

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
334
威望
167
贡献
95
兑换币
93
注册时间
2013-3-3
在线时间
36 小时
20#
发表于 2013-6-2 14:48:16 | 只看该作者
jackailson 发表于 2013-4-26 09:08
恩,知道,就是这样吧,还有我按照这个方法试了一下,正反转电机能检测到脉冲,但是脉冲数没有负数啊,但是 ...

这个问题解决了没有?我反转的时候测得的脉冲在65535附近,就是他给的结束值附近。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 03:11 , Processed in 0.051435 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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