关于1T单片机中的PWM如何用T0溢出设置频率的问题
2)假如打开T0的16位重载后就可以了之后,那么T0中断还可以用吗?两者相互影响吗?是先载入CCPnH的数据还是先执行T0中断函数?
使用定时器分中断法和查询法,如果使用查询法就是查询溢出标志TF0是否为1,如果为1说明定时时间到,即执行相关任务,但一定要软件清0。举例:
//输出周期1ms方波
#include <STC15F2K60S2.H>
sbit OUT = P1^0;
//初始化定时器
void Timer0Init(void) //500微秒@11.0592MHz
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器16位重载模式
TL0 = 0x66; //设置定时初值
TH0 = 0xEA; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}
//主函数
void main(void)
{
Timer0Init(); //初始化定时器
while(1)
{
if(TF0==1) //查询定时器0溢出标志为1
{
OUT=~OUT; //OUT取反
TF0=0; //定时器0溢出标志清0
}
}
}
頂頂頂頂頂頂頂,謝謝分享,你的資料很好,有機會交流
这位仁兄,我是问STC15单片机中PWM设置成T0溢出模式的问题,不是我如何通过T0溢出中断或者查询TF使某个脚输出方波。我是疑问设置成T0溢出模式后是否还需要中断,还是说PCA计时器的速度根据T0的溢出速度来加快或者加慢使整个CL在到达T0溢出时刚好为FF?哪样的话,我就可以不用去管这个T0了,T0中断也和PWM没有任何关系,因为T0中断通过软件执行指令,而CL置0是由硬件直接操作。2者应该可以同时进行。我去,我觉得我理解的很有道理啊。
有大神来指点一下吗
同求