想作一个频率计,用INT0控制闸门,用T0计数,就是T0受控INT0计数,工作方式1,但是在单片机的程序中在那里可以收到计数器的值,T0受控于INT0后,INT0是否还可以开中断?那位有相关的例子,最好是C51的,麻烦指点一下,兄弟初学。拜托拜托
我手边的书找不到类似的例子,非商业用途,只好看看那位兄弟能帮忙了。分不够可以再加
不知道你用的什么单片机.给个思路.
你可以在中断到来的时刻开定时器,也就是在INT0中断程序中开定时器T0,INT0下次中断在来得时候读计时变量(该变量是与T0计时有关的变量)
给一个框架,大伙一起看看能行不...不过你没有确定的时间轴,你怎么计算频率呢,我在想这个问题
state //INT0状态机,只有0和1两种状态.分别表示开始和结束
void INT0()
{
state = !state;
switch (state)
{
case BEGIN:
{
OpenT1();//打开T1开始计数,同时做T1相关的配置什么的,具体就是环境的初始化
break;
}
case END:
{
Filter(ClostT1());//关毕T1同时返回计数值,相关的运算也隐藏里面,放进数字滤波器,
break;
}
default:
DEBUG("ERROE");//跑飞了!!!
}
}
Filter();//自己建立的数字滤波机制,推荐使用队列方式
getFrequency(int Times);//CPU等待方式,传入次数,表示取最近多少次取到的频率,经由数字滤波器产生.