
下面用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//计数开始
}
void interrupt 9 run(void) //计数650ms后中断
{
TFLG1_C1F=1//清除ECT1的中断标志
TC1=TC1+406250
cnt2=cnt2-5
cnt3=cnt3+5
PWMPER2=cnt2
PWMPER3=cnt3
if (cnt2==0)
init_pwm()
}
void main(void)
{
DDRB=0XFF
PORTB=0x04
init_pwm()
init_ect()
EnableInterrupts
for()
{ }
}
发电机-发电机测试程序:第一步:检查发电机外部导线的连接部位有无断线、错接或短路,用电压表测量B+点的蓄电池电压。第二步:把钥匙门敲到“开”的位置,但不要启动发动机。此时用电压表测量D+点的电压,观察充电指示灯是否亮。步骤3:启动发动机,用电压表测量发动机B+点的电压。应该达到以下数值:-12V的系统电压在13V以上,同时加减油门。-24V的系统电压在27V以上,稍有变化0.1~0.2V。第四步:打开部分负载。比如车灯。-12V系统电压在13V以上,同时加减油门。-24V系统电压在27V以上,会有0.2~0.4V的适度变化。第五步:打开空调、车灯等主要电器。卖拆-12V系统电压在13V以上,同时加减油门茄搏。-24V系统电压的电压在27V以上,有0.5~1V的大幅度变化。进行第三步时,若发电机无电压输出,可采取中纳枣以下措施检查。对于有励磁D+点的发电机,如27系列、23系列、29系列、19系列,可从蓄电池正极引出2.5mm2引线。发动机启动后,用另一端瞬间点击D+点(1S内),然后用电压表测量B+点是否有电压输出。如果有,从步骤3到步骤5进行检查,同时判断整车充电指示线(一般是指示灯)有开路。你自己先建一个函汪租数,其中的参数传递用的就是两边电机想要的转速。而逗李在函数内容中,你根据传递过来的参数值,去调整控制各个电机的脉冲频率就OK了。
例如,如果你是用定时器+普通IO口做的脉冲输出,那么你可以调整定时时间,就调整了输出困指兆频率,就调整了转速。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)