智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2188|回复: 9
打印 上一主题 下一主题

[咨询] 改变占空比不能调速度,什么回事

[复制链接]

16

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1408
威望
756
贡献
362
兑换币
369
注册时间
2012-11-3
在线时间
145 小时
跳转到指定楼层
1#
发表于 2013-3-15 21:45:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
电机改了占空比速度也没变化,降不下来,占空比改了好多次了啊,有没碰到相同问题的,求助啊
把系统板拿下来测引脚也没有变化啊,电压都是在4.5左右,正转时用了PP4口输出。
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#define uint unsigned int
#define uchar unsigned char
void SetBusCLK_32M(void)
{   
    CLKSEL=0X00;    // disengage PLL to system
    PLLCTL_PLLON=1;   // turn on PLL
    SYNR =0x40 | 0x03;  // pllclock=2*osc*(1+SYNR)/(1+REFDV)=64MHz;                     
    REFDV=0x80 | 0x01;
    POSTDIV=0x00;  
    _asm(nop);          // BUS CLOCK=32M
    _asm(nop);
    while(!(CRGFLG_LOCK==1));   //when pll is steady ,then use it;
    CLKSEL_PLLSEL =1;          //engage PLL to system;
}
/***********************
//功能:PWM(脉宽调制模块)初始化,这里配置4号通道,即PWM4.
//入口参数:无
//出口参数:无
************************/
void PWMInit(){
    PWME=0x00;//关闭全部通道。
    PWMCTL=0x00;//不级联(Not Cascade)。
    PWMPRCLK = 0x00; // 设置预分频寄存器,ClockA=BusClock/1=32/1=32MHz。
                                   //这里注意BusClock为32MHz,多说一句:系统时钟由晶振频率(16MHz)二分频而得。
    PWMSCLA = 0x05;  //设置分频因子,在上述基础上再分频,ClockSA=ClockA/(2*PWMSCLA)=32/32=1MHz
    PWMCLK = 0x30;   //4,5通道选择SA作为时钟源
                                 //这里注意0、1、4、5选用A或SA作为时钟源,2、3、6、7选用B或SB作为时钟源。
    PWMPOL = 0x30; //4,5通道设置为正极性脉冲,即先输出高电平,再输出低电平。
    PWMCAE = 0x00; //4,5通道选用左对齐输出模式
                               //请考虑两种对齐方式对PWM signal 周期的影响。
    PWMPER4=100;//设置4通道周期寄存器。1/1MHz*100=0.1ms(即10KHz)。
                            //注意:这里给的是十进制数。请考虑这个值的给定范围。
    PWMPER5=100;//设置5通道周期寄存器
    DDRP_DDRP1=1;
    PTP_PTP1 = 1;//打开PP1口
   
}
/*************************************************************************
//功    能:直流电动机正转
//入口参数:unsigned int duty,占空比值
//出口参数:无
*************************************************************************/
void Motor_forward (uint duty4)
{
    PWME_PWME4 = 1;      // 使能IN1
    PWME_PWME5 = 0;      // 禁止IN2
    DDRP_DDRP5 = 1;      // PTP_PTP3为输出
    PTP_PTP5 = 0;      // 输出0
    PWMDTY4 = duty4;
}
/*************************************************************************
//功    能:直流电动机反转
//入口参数:unsigned int duty,占空比值
//出口参数:无
*************************************************************************/
void Motor_back(uint duty5)
{
    PWME_PWME5 = 1;
    PWME_PWME4 = 0;
    DDRP_DDRP4 = 1;
    PTP_PTP4 = 0;
    PWMDTY5 = duty5;
}
/***********************
//功能:输出一个固定占空比的方波。
//入口参数:无
//出口参数:无
************************/
void main(void) {

      SetBusCLK_32M();
        PWMInit();
      Motor_forward (50)   ;
  for(;;) {
    _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}

2

主题

160

帖子

0

精华

金牌会员

畅畅

Rank: 6Rank: 6

积分
2085
QQ
威望
1069
贡献
596
兑换币
639
注册时间
2012-9-3
在线时间
210 小时
2#
发表于 2013-3-15 23:35:28 | 只看该作者
先用示波器看看PWM波形输出正不正确噻```````````你贴代码不知道多少人愿意看````你要是波形正确了再提问```````````````如果你波形错了就是程序问题``````波形对了还这样才值得拿出来讨论一下吧````````
回复 支持 反对

使用道具 举报

14

主题

558

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3840

在线王奖章活跃会员奖章优秀会员奖章论坛元老奖章

QQ
威望
1862
贡献
1042
兑换币
748
注册时间
2012-9-5
在线时间
468 小时
3#
发表于 2013-3-16 08:22:32 | 只看该作者
每次第一眼看到的就是飘逸的长发
回复 支持 反对

使用道具 举报

16

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1408
威望
756
贡献
362
兑换币
369
注册时间
2012-11-3
在线时间
145 小时
4#
 楼主| 发表于 2013-3-16 08:49:25 | 只看该作者
眼角宣泄悲伤 发表于 2013-3-16 08:22
每次第一眼看到的就是飘逸的长发

哥,别顾着看头发啊,问题才是重点,纠结啊,真怀疑是不是芯片引脚有问题了
回复 支持 反对

使用道具 举报

14

主题

91

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2181
威望
1093
贡献
640
兑换币
600
注册时间
2012-9-27
在线时间
224 小时
5#
发表于 2013-3-16 09:34:54 | 只看该作者
电池还有点么。。。
回复 支持 反对

使用道具 举报

16

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1408
威望
756
贡献
362
兑换币
369
注册时间
2012-11-3
在线时间
145 小时
6#
 楼主| 发表于 2013-3-16 09:50:06 | 只看该作者
xiao_che 发表于 2013-3-16 09:34
电池还有点么。。。

果断有啊,哎,程序简单,也让高手给看过,没问题,芯片也测过引脚,改变占空比引脚电压没变化啊哎,4.5左右
回复 支持 反对

使用道具 举报

2

主题

59

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1770
威望
803
贡献
453
兑换币
432
注册时间
2012-9-25
在线时间
257 小时
7#
发表于 2013-3-16 11:15:14 | 只看该作者
先排除软件问题,后去怀疑硬件问题。
回复 支持 反对

使用道具 举报

23

主题

413

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2906
威望
1306
贡献
540
兑换币
664
注册时间
2012-2-6
在线时间
530 小时
8#
发表于 2013-3-16 14:53:06 | 只看该作者
相当于你没PWM波没出来咯。。。怎么可能改了还是4.5V,用示波器看引脚给出的波形
回复 支持 反对

使用道具 举报

5

主题

69

帖子

0

精华

高级会员

Rank: 4

积分
540
威望
292
贡献
144
兑换币
148
注册时间
2012-10-27
在线时间
52 小时
毕业学校
大连海事大学
9#
发表于 2013-3-17 19:58:51 | 只看该作者
今天我也遇到这个问题了,弄了很久确定是电机驱动有问题,没有备用的,55555……
回复 支持 反对

使用道具 举报

16

主题

63

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1408
威望
756
贡献
362
兑换币
369
注册时间
2012-11-3
在线时间
145 小时
10#
 楼主| 发表于 2013-3-17 23:00:26 | 只看该作者
惗,卟说 发表于 2013-3-17 19:58
今天我也遇到这个问题了,弄了很久确定是电机驱动有问题,没有备用的,55555……

我的是引脚坏了,忙乎了一天一夜,坑啊
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 17:51 , Processed in 0.046606 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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