对于我的数据记录器项目,我必须每隔6小时存储温度值。我发现自动收报机的最长时间是30分钟。有没有什么方法可以让我们在6小时或10小时的长时间间隔中断?
谢谢。答案 0 :(得分:2)
所以你可以每30分钟做一次中断。如果只有一种方法可以忽略连续的每11个中断并且只处理第12个中断..
volatile int interruptCounter = 0;
void interruptFunction (void)
{
interruptCounter++;
if(interruptCounter == 12)
{
interruptcounter = 0;
/*
Do your stuff here
*/
}
}
为什么12?因为你可以处理每0.5h发生的中断。因此,为了处理它,每6h最大计数器值将是6 / 0.5 = 12,10小时它将是10 / 0.5 = 20,依此类推。