智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5348|回复: 8
打印 上一主题 下一主题

求好心人看下我这个电机驱动程序占空比怎么控制不了速度

[复制链接]

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
823
QQ
威望
387
贡献
232
兑换币
222
注册时间
2012-11-6
在线时间
102 小时
跳转到指定楼层
1#
发表于 2013-1-4 20:21:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

void pwm_init(void);
void motor_f(unsigned int duty);
void motor_b(unsigned int duty);
void delay_ms(unsigned int time);


void main(void)
{

   pwm_init();
  //motor_f(100);
  delay_ms(1000);
  motor_b(10);
  delay_ms(100);
  
}


void pwm_init(void)
{
   PWME=0; // Disable PWM 禁止
   PWMCAE=0; //对齐方式,左
   
   PWMCLK=0xff;    //选择A或B时钟通道
   PWMPOL=0xff; //极性,
   PWMPRCLK=0;//无预分频
   PWMSCLA=20;             //40/(2*20)=1M
   PWMSCLB=20;
   PWMCTL_CON23= 1;
   PWMCTL_CON67= 1;
   PWMPER23=200;
   PWMPER67=200;
   PWMPOL_PPOL3=0;
   PWMPOL_PPOL7=0;
  
   //PWMDTY23=300;  
   //PWME_PWME5=1;
}

void motor_f(unsigned int duty)

{
  PWME_PWME3=1;
  PWME_PWME7=0;
  PWMDTY23=duty;

}
void motor_b(unsigned int duty)

{
  PWME_PWME7=1;
  PWME_PWME3=0;
  PWMDTY67=duty;

}
void delay_ms(unsigned int time)
{
  static int delay_i;
  for(;time>0;time--){
    for(delay_i=0;delay_i<2517;delay_i++)
    {
      asm{
      nop;
      nop;
      nop;
      }
    }
  }
  
  
}
直流电机能够正转和反转‘但是控制不了速度,改变占空比电机的速度没有变化,不知道哪儿出了问题,希望知道的能帮忙看依稀a  

282

主题

1780

帖子

1

精华

管理员

曾经的智能车人……

Rank: 11Rank: 11Rank: 11Rank: 11

积分
28420

特殊贡献奖章资源大师奖章论坛骨干奖章论坛元老奖章优秀版主奖章推广达人奖章优秀会员奖章活跃会员奖章热心会员奖章在线王奖章

QQ
威望
10441
贡献
11685
兑换币
4726
注册时间
2009-9-7
在线时间
3147 小时
2#
发表于 2013-1-4 20:26:18 | 只看该作者
main函数是怎么回事?看不太明白。
回复 支持 反对

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
823
QQ
威望
387
贡献
232
兑换币
222
注册时间
2012-11-6
在线时间
102 小时
3#
 楼主| 发表于 2013-1-4 20:45:52 | 只看该作者
凌心 发表于 2013-1-4 20:26
main函数是怎么回事?看不太明白。

void main(void)
{

pwm_init();//这儿pwm初始化
motor_f(100);//电机驱动车轮向前转
delay_ms(1000);//延时一会儿
motor_b(10);//电机驱动车轮向后转
delay_ms(100);

}
我用的两个bts7960b级联为电机(供电)。。
回复 支持 反对

使用道具 举报

282

主题

1780

帖子

1

精华

管理员

曾经的智能车人……

Rank: 11Rank: 11Rank: 11Rank: 11

积分
28420

特殊贡献奖章资源大师奖章论坛骨干奖章论坛元老奖章优秀版主奖章推广达人奖章优秀会员奖章活跃会员奖章热心会员奖章在线王奖章

QQ
威望
10441
贡献
11685
兑换币
4726
注册时间
2009-9-7
在线时间
3147 小时
4#
发表于 2013-1-4 20:47:00 | 只看该作者
小盐巴 发表于 2013-1-4 20:45
void main(void)
{

也不用个循环?就这样跑啊?也没有看到你的调整啊……
回复 支持 反对

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
823
QQ
威望
387
贡献
232
兑换币
222
注册时间
2012-11-6
在线时间
102 小时
5#
 楼主| 发表于 2013-1-4 20:52:36 | 只看该作者
凌心 发表于 2013-1-4 20:47
也不用个循环?就这样跑啊?也没有看到你的调整啊……

没写循环,,就想看一看能不能前后转,还有就是给他速度能不能照着变化,但是速度都没变。。motor_f(100);括号里的是占空比的值,我前后是改变了的,但是在运行是速度都是差不多的,而且我试过改成0速度也没变。。明显不合理啊,,就是不知道哪儿错了
回复 支持 反对

使用道具 举报

282

主题

1780

帖子

1

精华

管理员

曾经的智能车人……

Rank: 11Rank: 11Rank: 11Rank: 11

积分
28420

特殊贡献奖章资源大师奖章论坛骨干奖章论坛元老奖章优秀版主奖章推广达人奖章优秀会员奖章活跃会员奖章热心会员奖章在线王奖章

QQ
威望
10441
贡献
11685
兑换币
4726
注册时间
2009-9-7
在线时间
3147 小时
6#
发表于 2013-1-4 21:08:29 | 只看该作者
小盐巴 发表于 2013-1-4 20:52
没写循环,,就想看一看能不能前后转,还有就是给他速度能不能照着变化,但是速度都没变。。motor_f(100) ...

示波器看一下PWM有没有正常输出。

回复 支持 反对

使用道具 举报

22

主题

356

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3124
威望
1778
贡献
50
兑换币
828
注册时间
2012-7-12
在线时间
648 小时
7#
发表于 2013-1-4 21:38:48 | 只看该作者
高手,能解释一下为什么能控制电机正反转嘛?
回复 支持 反对

使用道具 举报

3

主题

19

帖子

0

精华

高级会员

Rank: 4

积分
823
QQ
威望
387
贡献
232
兑换币
222
注册时间
2012-11-6
在线时间
102 小时
8#
 楼主| 发表于 2013-1-5 18:04:33 | 只看该作者
凌心 发表于 2013-1-4 21:08
示波器看一下PWM有没有正常输出。

刚刚用示波器检查了波形是正确的。
问题我找到了,在PWM初始化的时候我的通道极性后面设置成低电平了,
导致占空比更改影响不大;改成高后,速度变化就明显了
感谢版主回复
回复 支持 反对

使用道具 举报

25

主题

250

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3089
威望
1478
贡献
875
兑换币
859
注册时间
2016-9-5
在线时间
368 小时
毕业学校
工大学
9#
发表于 2017-1-16 21:33:58 | 只看该作者
老牛啦 发表于 2013-1-4 21:38
高手,能解释一下为什么能控制电机正反转嘛?

你现在知道了吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-27 02:05 , Processed in 0.051069 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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