智能车制作
标题:
不看会后悔的(pwm------舵机)
[打印本页]
作者:
可欣
时间:
2012-12-10 00:01
标题:
不看会后悔的(pwm------舵机)
总是潜水,现在为大家服务一下吧,希望能对一些人有帮助!!! 以前没有深入关注过pwm,自以为是比较了解的,可是直到前几天,才发现我对pwm不是很了解,01、23、45、67级联后,起作用的均是高一级的口(就是1、3、5、7),当时写程序时没有注意,以为级联后就万事大吉啦,谁知道并不好使,一个很小的细节没有注意,导致了程序的崩溃。弄了好几天,郁闷死了。亲先给你们附上一段程序吧,看看有错没有,总线频率为40MHZ。
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define ZK1 PWMDTY1 //电机占空比
#define ZK5 PWMDTY5
#define ZK3 PWMDTY3 //舵机占空比
void Steer_Init(void)
{
PWME_PWME3 = 0; //先禁止各通道输出
PWMCTL_CON23 = 1; //两两级联成16位PWM
PWMPRCLK_PCKB = 2; //预分频系数为B 4,总线频率,即10MHZ
PWMSCLB = 2; //SB_CLK = B_CLK / (2*2) ==2.5MHz
PWMCLK_PCLK3 = 1; //通道选 clock SB做时钟源
PWMCNT3=0; //23计数器清零
PWMCAE_CAE3=0; //选择输出模式为左对齐输出模式
PWMPOL_PPOL3=1; //先输出高电平,计数到DTY时,反转电平
PWMPER23=50000; // 20ms ;50Hz
PWMDTY23=0;
PWME_PWME3 = 1;
}
void main(void)
{
PLL_Init_40M();
Steer_Init();
IO_Init();
Motor_Init();
ZK3=5000; //舵机摆正
ZK1=100;
ZK5=0;
}
当然啦,其他的程序都是没有错误的,都很好使的,亲们你们发现有什么不对了吗???
如果发现了,恭喜你,你真的很厉害,是一个有心人。如果没有发现的话,也不要紧的,
下面再给你们附上另外的一段程序,仔细看好了啊,亲。
#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define ZK1 PWMDTY01 //电机占空比
#define ZK5 PWMDTY45
#define ZK3 PWMDTY23 //舵机占空比
void Steer_Init(void)
{
PWME_PWME3 = 0; //先禁止各通道输出
PWMCTL_CON23 = 1; //两两级联成16位PWM
PWMPRCLK_PCKB = 2; //预分频系数为B 4,总线频率,即10MHZ
PWMSCLB = 2; //SB_CLK = B_CLK / (2*2) ==2.5MHz
PWMCLK_PCLK3 = 1; //通道选 clock SB做时钟源
PWMCNT3=0; //23计数器清零
PWMCAE_CAE3=0; //选择输出模式为左对齐输出模式
PWMPOL_PPOL3=1; //先输出高电平,计数到DTY时,反转电平
PWMPER23=50000; // 20ms ;50Hz
PWMDTY23=0;
PWME_PWME3 = 1;
}
void main(void)
{
PLL_Init_40M();
Steer_Init();
IO_Init();
Motor_Init();
ZK3=5000; //舵机摆正
ZK1=100;
ZK5=0;
}
亲们发现两段程序有什么不同的吗???亲,不要告诉我说他们没有一点区别,完全一样,用你的火眼金睛再仔细的看一遍吧!!!他们是有区别的,而且就是这么小小的区别,让我们队的车子楞是跑不起来,可是害苦我了啊!!!我整整发了近三天的时间才找到的这不算问题的问题啊,哎!!!现在我是真的深有体会,无论什么事都是马虎不得的,不然会吃大亏的啊,尤其是做比赛的童鞋们,真的是伤不起啊!!!
#define ZK1 PWMDTY1 //电机占空比
#define ZK5 PWMDTY5
#define ZK3 PWMDTY3 //舵机占空比
#define ZK1 PWMDTY01 //电机占空比
#define ZK5 PWMDTY45
#define ZK3 PWMDTY23 //舵机占空比
现在发现了吧,上面的是 PWMDTY1, PWMDTY5, PWMDTY3
下面的是 PWMDTY01, PWMDTY45, PWMDTY23,
就是这些让我郁闷死了,若这样写(PWMDTY3),虽然23级联了,但是单片机还是认为他们并不级联,任然是8位的(注:8位最大值只能是255),而不是我们想象的16位(注:最大值是65535),为此我亲自做了实验,这样写(PWMDTY3),写入数值小于等于255的时候可以,运行时软件没有出现warning,写256就不行了,软件就出现warning,原来以为出现warning,没有错误就行,但是事实却不是如此,我当时写的是(ZK3=5000),舵机就是要么往一个方向摆、要么就是出现各种不正常的问题,但是当我把(PWMDTY3)改成(PWMDTY23)时,苦逼了啊,一切都没有问题了(我当时控制的是舵机),舵机在正常不过了,一切都好了,我当时就笑了,这是什么玩意啊,我多么宝贵的几天的时间啊,哎,童鞋们,就写到这吧,我的能力有限,剩下的还得靠你们自己去摸索。那些还在为舵机不
能正常工作而发愁的童鞋们,你们看一看,是不是与我一样不小心啊,希望对你们能有一些帮助。有什么不对的,请指出来,谢谢。
作者:
fmadot
时间:
2012-12-10 00:08
不后悔。。。
作者:
exiao
时间:
2012-12-10 00:13
谢谢分享,学习了
作者:
叶子一哥
时间:
2012-12-10 00:16
谢谢分享
作者:
有-木-友
时间:
2012-12-10 00:39
hehe
作者:
张永超
时间:
2012-12-10 00:47
学习了
作者:
Smile_Sun
时间:
2012-12-10 02:00
作者:
黎明sunshine
时间:
2012-12-10 07:19
感谢楼主
作者:
dongyunlong
时间:
2012-12-10 07:24
谢谢分享
作者:
ludlee
时间:
2012-12-10 09:09
我们用不着了
作者:
1434636181
时间:
2012-12-10 09:18
作者:
ganlei
时间:
2012-12-10 10:02
作者:
bloong
时间:
2012-12-10 10:09
感谢分享 但是我表示看完后 很后悔
作者:
wen123
时间:
2012-12-10 10:11
行!!
作者:
x舞z
时间:
2012-12-10 11:34
呵呵'光电
作者:
qual9109
时间:
2012-12-10 12:09
不后悔
作者:
jack_channel
时间:
2012-12-10 12:12
恭喜卤煮。又进步了
作者:
orthodox
时间:
2012-12-10 12:45
不是K60的吧?
作者:
389059751
时间:
2012-12-10 13:06
xuexil
作者:
Mr_Q
时间:
2012-12-10 13:21
学习了
作者:
sdlibin007@qq.c
时间:
2012-12-10 14:17
确实是这样啊
作者:
mmina456
时间:
2012-12-10 15:14
谢谢
作者:
824427451
时间:
2012-12-10 16:10
明白了些@@
作者:
孤狼♂翎翔
时间:
2012-12-10 18:43
感谢
作者:
万能pcb
时间:
2012-12-12 21:44
目前还看不懂
作者:
可欣
时间:
2012-12-12 22:50
万能pcb 发表于 2012-12-12 21:44
目前还看不懂
没事的,刚开始都是看不懂,慢慢就好了,坚持
作者:
Determined
时间:
2012-12-12 23:53
作者:
夏小凉
时间:
2012-12-13 10:38
谢谢 楼主 学习了
作者:
ybcqujx
时间:
2012-12-13 21:38
呵,谢谢分享,这个我也遇到过。
作者:
赵宇
时间:
2012-12-13 22:14
不错。。
作者:
majihong
时间:
2012-12-14 10:13
作者:
:句·话っ
时间:
2012-12-18 13:21
{:soso_e179:}
作者:
AOE
时间:
2012-12-19 22:25
感谢经验分享
作者:
似水流年、
时间:
2012-12-20 07:14
学习了
作者:
huayuc19
时间:
2012-12-21 22:49
看了真心不后悔!!
作者:
似水流年、
时间:
2012-12-21 23:09
xuexi le
作者:
xuruoyu
时间:
2013-1-15 14:39
顶
作者:
lincson
时间:
2013-1-22 22:36
学习学习
作者:
萧逸
时间:
2013-1-23 09:32
感谢分享!
作者:
nsxzclx
时间:
2013-1-23 23:59
呵呵 马虎不得
作者:
青龙0偃月
时间:
2013-1-25 20:19
弱弱的表示前天试舵机时出现了类似的问题
作者:
azure647
时间:
2013-2-1 18:29
谢谢楼主提醒~~~
作者:
hxp632626965
时间:
2013-2-2 09:59
学习了
作者:
dlyt03
时间:
2013-2-4 09:14
谢谢
作者:
高敏真人真话
时间:
2013-2-5 12:52
谢谢分享
作者:
最好不相误
时间:
2013-3-15 14:54
感谢楼主
作者:
lxnick
时间:
2013-3-18 14:57
你的23呢?
作者:
可欣
时间:
2013-3-18 17:35
作者:
吴镇
时间:
2013-3-18 21:37
好!{:soso_e179:}
作者:
天空之城-
时间:
2013-3-20 11:26
给力 给力!!!! 深有感触!一直纠结的问题现在解决了!
作者:
tory柴
时间:
2013-4-3 15:50
分享快乐
作者:
了修明日
时间:
2013-4-6 15:11
xuexi
作者:
夏夜之星
时间:
2013-4-16 22:19
作者:
丶Capricorn
时间:
2013-5-7 19:13
作者:
heart804571
时间:
2013-5-8 00:13
作者:
glacier0
时间:
2013-5-8 00:25
顶一下
作者:
dynamic
时间:
2013-7-1 10:15
其实经常这样,一个小问题纠结好久
作者:
哲000
时间:
2013-7-16 21:46
学习了……
作者:
mnh999
时间:
2014-3-12 17:04
作者:
justone
时间:
2014-3-15 15:32
谢谢分享了
作者:
★相★离
时间:
2014-3-17 12:29
作者:
流氓兔
时间:
2014-3-17 20:48
PWMPER23=50000; // 20ms ;50Hz
PWMDTY23=0;
这个 啥情况啊!!!意思是占空比为0吗?
舵机不动吗?
作者:
有思想的车
时间:
2014-3-19 15:16
000
作者:
断梦
时间:
2014-3-27 20:27
不孬
作者:
板正的
时间:
2014-4-4 21:58
顶楼主!虽然没看懂 但是先学着
作者:
张世民
时间:
2014-4-5 16:11
牛皮 哈哈哈哈 看看 学习学习
作者:
张世民
时间:
2014-4-5 16:13
牛皮 哈哈哈哈 看看 学习学习
作者:
追梦dream
时间:
2014-4-9 21:05
受益了,谢谢
作者:
_乐天_
时间:
2014-4-11 02:06
学习了
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2