标题:
求高手写个电机驱动程序
[打印本页]
作者:
denghaibo
时间:
2009-11-28 22:23
标题:
求高手写个电机驱动程序
本帖最后由 denghaibo 于 2009-11-28 22:35 编辑
本人新手,买了个飞思卡尔的开发板,芯片是S12DP512,原理图在附件里,求大侠为OUT1和OUT2写个电机驱动程序,不胜感激。
本人菜鸟,不知道TLE7209的用法,自己瞎攒了一段程序,老是不能运行,郁闷死了。下面是我自己弄的,高手帮看看。
void Init_clock() // 产生24MHz系统时钟
{
CRGFLG_SCM=0;
PLLCTL_CME=0;
PLLCTL_PLLON=1;
SYNR=0X02;
REFDV=0X01;
while(CRGFLG_LOCK==0);
CLKSEL_PLLSEL=1;
}
/*PWM初始化*/
void Init_PWM()
{
PWME=0X00; // 关闭PWM
PWM_clock(); // 时钟设置
PWMPOL=0X00; // 极性设置,周期开始时,输出为低电平
PWMCAE=0X00; // 左对齐方式
PWMCTL=0X00; // 通道不级联,
PWM_adj();
}
/*PWM时钟的选择和设置*/
void PWM_clock()
{
PWMPRCLK=0X77; // ClockA分频,ClockB分频
PWMSCLA=0X0c; // 时钟A分频12xPWMSCLA
PWMSCLB=0X0c; // 时钟B分频12xPWMSCLB
PWMCLK=0X03; // 时钟选择,选择时钟SA和时钟SB
}
/*PWM调节程序,可调节周期和占空比*/
void PWM_adj()
{
PWME=0X00; // 关闭PWM模块,开始调节
PWMPER01=0XFF; // 调节周期
PWMDTY01=0XF0; // 调节占空比
PWMCNT0=0;
PWMCNT1=0;
PWME=0X03; // 打开PWM的0通道和1通道
}
void main(void)
{
EnableInterrupts;
Init_clock();
Init_PWM();
for(;;) ;
}
附件:
Schematic_MainBoard.pdf
(2009-11-28 22:23, 57.31 KB) / 下载次数 198
http://bbs.eccn.com/attachment.php?aid=7494&k=fc970c28d2a3029770ebcbefc7a9bfc6&t=1732476841&sid=UX0PRu
附件:
Schematic_S12sys.pdf
(2009-11-28 22:23, 52.11 KB) / 下载次数 196
http://bbs.eccn.com/attachment.php?aid=7495&k=6f3e003493740bd0a7fd11c2ae1fae34&t=1732476841&sid=UX0PRu
附件:
TLE7209-2R.pdf
(2009-11-28 22:35, 335.99 KB) / 下载次数 200
http://bbs.eccn.com/attachment.php?aid=7496&k=e6ae712db8e10785ea2cd633cc2ee7de&t=1732476841&sid=UX0PRu
作者:
neudaxue
时间:
2010-1-8 16:20
PWME=0X00; // 打开PWM的0通道和1通道
你的PWM通道要禁止,设置成普通IO口.并把该口电平一直设置为高电平,
PWM0也要设置成普通IO方式,来控制电机的正反转.PWM0端口电平为高,则电机正转,电平为底则电机反转.
仔细研究一下你的电路图,和芯片资料就很容易明白了.很简单的东西,多动手.
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0