现在使用的STC15W408AS,想知道PWM频率和占空比怎么计算,还有PSC又是怎么得到的?主要就是搞不懂预分频是什么意思,我用的12M晶振是没有分频的呀。
目前使用的是12M晶振,16位自动重装定时器
#include "pbdata.h"
uchar t=0,m=0;
void main()
{
//led0 = 0;
P3M0 = 0x01;
P3M1 = 0x00; //M1:M0=00:准双向口;01:推挽输出;10:高阻输入;11:开漏
TH0 = 0xff; //高位求模
TL0 = 0x9c; //低位取余
ET0 = 1; //开定时器0中断
TR0 = 1; //启动定时器0
TF0 = 0;
EA = 1; //开总中断
TMOD = 0x00; //打开定时器0
//TMOD &= 0xf0;
while (1);
}
/定时器中断0函数/
void timer0() interrupt 1
{
//TH0 = 0xb8; //重装初值
//TL0 = 0x00;
t++;
if(t==200)
{
//led0 = !led0;
t = 0;
m = 5;
}
if(t<=m)
{
led0 = 0;
}
else
{
led0 = 1;
}
}
只想知道频率和占空比怎么计算?
p是计数周期,16位定时器的话p在1-65535之间,psc是分频系数。计数器就是数数,p是要数多少个数,psc影响以什么速度去数数,psc越大,频率越低,数数的速度越慢,psc越小,数的越快,计数的快慢影响精度,p影响计数宽度。
分频是芯片内部将时钟分频,和时钟源没关系。
频率=定时器时钟/(p+1)*(psc+1)
占空比=高电平时间/单周期
具体的要看手册