在VC 中利用定时器实现占空比可调输出的思路

来源:百度知道 编辑:UC知道 时间:2024/05/31 16:32:48
想利用定时器实现PWM 在不同的周期内,占空比可以实时调节 能否给个思路 万分感谢
我知道是用SETTIMER 但是在一个周期内要先输出一个高电平信号延时个比如50MS,之后输出一个低电平信号在延时个150MS,这2个是相继发生的,我总不能先SETTIMER(1,50,null),然后在KILLTIMER,然后在SETTIMER(2,150,null),在KILL掉吧

用三个SetTimer:
第一个为控制占空比的,例如如果周期为1s,占空比为1:2的话
则SetTimer(1,500,NULL)然后Kill掉
第二个SetTimer和第一个一起,周期1s,给输出位置高电平
第三个SetTimer周期1s为第一个SetTimer调用,即延时0.5s让输出位置低电平.

SetTimer(1,500,NULL)
SetTimer(2,1000,NULL)
//====================
OnTimer(UNIT i)
{
switch(i)
{
case(1):KillTimer(1);
SetTimer(3,1000,NULL);
break;
case(2)://输出位置高电平
case(3)://输出位置低电平
...
}
}

KILLTIMER 加到 timer 定时溢出的中断里。

中断程序,知道不?

9464252458224581564666666666666666666654444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444