简单写几行代码 开天斧试试频率计原理
本帖最后由 zhang32568 于 2024-5-20 16:06 编辑unsigned int cont,fos;
void Timer0_Init(void) //1000微秒@35MHz
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x48; //设置定时初始值
TH0 = 0x77; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0中断
EA = 1 ;
}
void Timer0_Isr(void) interrupt 1
{unsigned int d;
d++;
if(d>=1000)
{
d=0;
INTCLKO &= 0xbf; //关闭
fos = cont; //fos用LED显示出来
cont = 0;
INTCLKO |= 0x40;//重新打开INT4端口P30
}
void Int4Isr()interrupt 16//采用外部中断4P30端口测试。
{
cont++;
}
实际测试1KHZ显示1001,500HZ显示505 5KHZ显示4080
显示不准 估计是1毫秒基准不准确 。但是原理应该就是这样。
如果要求很稳定 该采取什么措施?
使用精准度更高的有源温补晶振
页:
[1]