移植MC68HC908QT4程序到 MC9S08QD4,但是PWM设置中,908QT4的功能位TSC0_CH0MAX 置0、1,QD4没有这个对应的位,如何解决,请高手指点。
附程序
#if PWM_POLARITY == PWM_NEG /* negative PWM polarity */
if (AppControl.B.FullOpen == 1) /* PWM fully open, duty cycle set to 0% */
{
if (AppControl.B.ZeroDuty == 0)
{
AppControl.B.ZeroDuty = 1; /* zero duty cycle on */
TSC0_CH0MAX=0; // MC9S08QD4 TPMC0V = 0; use MIN20 ?
}
}
else
{
if (AppControl.B.ZeroDuty == 1)
{
AppControl.B.ZeroDuty = 0; /* zero duty cycle off */
TSC0_CH0MAX=1;// MC9S08QD4 TPMC0V = 220; use MAX 200 ?
}
}
#else /* positive PWM polarity */
if (AppControl.B.FullOpen == 1) /* PWM fully open, duty cycle set to 100% */
{
if (AppControl.B.MaxDuty == 0)
{
AppControl.B.MaxDuty = 1; /* Max duty cycle on */
TSC0_CH0MAX=0;
}
}
else
{
if (AppControl.B.MaxDuty == 1)
{
AppControl.B.MaxDuty = 0; /* Max duty cycle off */
TSC0_CH0MAX=1;
}
}
#endif
QD4 中没有相应的位能直接设置占空比为100%或0% , 可以通过直接改TPMxCxV 积存器的值来达到PWM输出100% 或0%的占空比。 如果TPMxCxV =0(CPWMS=0,MSnB:MSnA=1X, ELSnB:ELSnA=X1), 则PWM输出0%的占空比; 如果TPMxCxV 〉TPMxMOD(CPWMS=0,MSnB:MSnA=1X, ELSnB:ELSnA=X1), 则PWM输出100%的占空比;