查看: 1118|回复: 0

做智能车时一点驱动的知识——BTS7970

[复制链接]

该用户从未签到

发表于 2014-11-10 23:03:22 | 显示全部楼层 |阅读模式
分享到:
当时的一些备注:
第一次审核不过,我觉得有这些知识的一看就懂啊。下面是BTS7970电机驱动程序,桥式驱动(不用解释吧,正转反转,停止都可以)。程序后面都有注释了,而且是汉语,应该能看懂的哈。下面简单说下原理:
PWM是反逻辑,因为在单片机与电机驱动间加了反向驱动隔离,保护单片机。所以占空比越小,方向后是越大,速度越快。
注意:PWM频率最大25KHZ,用在智能车上1KHZ就足够了。(就这么多,智能车上电机驱动模块程序!)
#include <hidef.h>      /* common defines and macros */#include "derivative.h"      /* derivative-specific definitions *//************************************************//*锁相环倍频*//************************************************/void pll_xs(void){    SYNR=0x44;    REFDV=0x81;//总线频率40M        while(!CRGFLG_LOCK);    while(CLKSEL_PLLSEL!=1)        CLKSEL_PLLSEL=1;}/***********************************************//*PWM初始化!*//************************************************/void PWM_int(void) {        PWMPOL|=0xaa;//PWM Polarity开始输出高电平,1、3、5、7 positive.        PWMCLK|=0xaa;//Clock Select, Sn,B:7632.A:0145        PWMPRCLK=0x22;//CLOCKA和CLOCKB是4分频是10M        PWMCTL=0xf0;        PWMSCLA=5;//1M        PWMSCLB=5;//1M        PWMCAE=0x00;        PWMDTY01=900;        PWMPER01=1000;        PWME=0xaa; //PWM Enable,1、3、5、7 enable.}/************************************************/void main(void) {  pll_xs();//倍频  DDRB=0xff;  PORTB|=0xff;   PORTB&=0xfe;//PB0和PB1用来控制电机转向的        EnableInterrupts;        PWM_int();  for(;;) {           _FEED_COP(); /* feeds the dog */          } /* loop forever */  /* please make sure that you never leave main */}
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /2 下一条

手机版|小黑屋|与非网

GMT+8, 2024-4-19 13:52 , Processed in 0.119603 second(s), 17 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.