注册 登录
查看: 884|回复: 5

有关“FTM PWM 模块”的问题

[复制链接]
发表于 2013-5-10 22:51:47 | 显示全部楼层 |阅读模式
我用的是FTM0的ch0到ch3四个通道 给电机的频率10Khz
我在函数里调用的是void FTM_PWM_init(FTMn ftmn, CHn ch, u32 freq, u32 duty)功能函数
我给的占空比是 其他函数里面计算得到的float型变量 在付给上面的功能函数中的时候 进行了int强制转化
这个时候 电机可以正反转
但是如果把float变量强制转换成u32位型的的时候 电机只能向一个方向转
不知道是什么原因
请问 山外哥 是不是和那个功能函数的驱动有关?

回复

使用道具 举报

发表于 2013-5-12 08:36:08 | 显示全部楼层
电机可以正反转 ,是需要 H桥,你用示波器测试一下哪个PWM 没正常输出
回复 支持 反对

使用道具 举报

发表于 2013-5-12 09:02:18 | 显示全部楼层
你好,首先测测 PWM 有没有输出!
如果没有输出,请换此FTM.c ,替换工程里自带的那个文件
http://pan.baidu.com/share/link?shareid=553551&uk=235751603

如果有输出PWM,请考虑 电机驱动 直接给 3.3V 的PWM 是否驱动得了电机
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-12 14:14:03 | 显示全部楼层
山外メ雲ジ 发表于 2013-5-12 09:02
你好,首先测测 PWM 有没有输出!
如果没有输出,请换此FTM.c ,替换工程里自带的那个文件
http://pan.bai ...

山外哥 现在遇到一个现象 不明白
我用的就是H桥驱动

如果FTM_PWM_init(FTM0, CH0, 10000,0);
    FTM_PWM_init(FTM0, CH1, 10000,10);
这样子 轮子转得很正常 10%的占空比

可是 如果FTM_PWM_init(FTM0, CH0, 10000,0);
         FTM_PWM_init(FTM0, CH1, 10000,-10);
这样子 轮子转得飞快 完全不是10%占空比的样子
我看了FTM.c文件里面 void FTM_PWM_init(FTMn ftmn, CHn ch, u32 freq, u32 duty) 占空比duty是u32型的变量,可是为什么给10%和-10% 效果完全不一样呢
回复 支持 反对

使用道具 举报

发表于 2013-5-12 17:51:14 | 显示全部楼层
abch1120 发表于 2013-5-12 14:14
山外哥 现在遇到一个现象 不明白
我用的就是H桥驱动

晕,不支持负数的啊。
你要反转,就得负极那边的pwm比正极的pwm大
回复 支持 反对

使用道具 举报

发表于 2013-5-12 17:51:51 | 显示全部楼层
abch1120 发表于 2013-5-12 14:14
山外哥 现在遇到一个现象 不明白
我用的就是H桥驱动

如果是 负数,会转换为 无符号整数,那个数是非常大的
回复 支持 反对

使用道具 举报

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

本版积分规则

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