求飞思卡尔智能车的电机方面编程

来源:百度知道 编辑:UC知道 时间:2024/07/01 07:00:21
通过一个PWM改变占空比来实现加减速.
注:所有资料请发到我的邮箱,然后留言发了

这要看用的是PWM哪个通道来控制了。

下面用PWM2和PWM3来控制。

#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

int cnt2=80,cnt3=20;

void init_pwm(void)
{
PWME=0X00; //PWM禁止
PWMPRCLK=0x10; //Clock B=8M/2=4MHz
PWMSCLB=200; //Clock SB=Clock B/2/200=10kHz
PWMCLK=0x0c; //设置PWM2、PWM3的时钟源均为Clock SB
PWMPOL=0x0c; //设置PWM2、PWM3的极性均为1
PWMCAE=0x00; //设置PWM2、PWM3的对齐方式为左对齐
PWMPER2=200;
PWMDTY2=cnt2; //设置PWM2的周期内高电平时间
PWMPER3=200;
PWMDTY3=cnt3; //设置PWM3的周期内高电平时间
PWME=0x0c; //PWM2、PWM3使能
}

void init_ect(void)
{
TSCR1_TEN=0; //计数器清零
TSCR2_PR=7; // Clock=Bus/128
TIOS_IOS1=1; //设置ECT1口为输出比较
TC1=406250; //设置每6500ms产生定时中断
DLYCT=0x01; //延迟256个Bus周期,即32us
PACN1=0; //清零TC1寄存器
TIE_C1I=1; //设置ECT1口中断使能
TSCR1_TEN=1; //计数开始
}<