单片机-一个简单频率测量
TH0 = TIME0_LOAD>>8;
本文引用地址:https://www.eepw.com.cn/article/201809/388457.htmTL0 = TIME0_LOAD 0x00FF;
if(freq.start)
{
freq.timer++;
}
else
{
freq.timer=0;
}
}
void exint0_init( )
{
IT0 =1; //下降沿产生中断
EX0 =1; //使能外部中断
EA =1; //使能全局中断
}
void exint0( ) interrupt 0
{
if(freq.start)
{
freq.int_Count++; //开始统计下跳沿
}
else
{
freq.int_Count=0;
}
}
void main( )
{
Timer0_Init( );
exint0_init( );
freq.start=1;
while(1)
{
if(freq.timer>=3000)
{
freq.T=freq.timer/freq.int_Count;
freq.int_Count=0;
freq.timer=0;
display_freq( ); //显示周期的值
}
}
}
以上是该项目部分代码,主要可以看看定时器和外部中断的使用方法。
评论