对于我的数据 Logger 项目,我必须每隔6小时存储一次温度值 . 我发现自动收报机的最长时间是30分钟 . 我们有什么方法可以在6小时或10小时的长时间内进行中断?
谢谢 .
所以你可以每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,依此类推 .
1 回答
所以你可以每30分钟做一次中断 . 如果只有一种方法可以忽略连续的每11个中断并且只处理第12个中断..
为什么12?因为你可以处理每0.5h发生的中断 . 因此,为了处理它,每6h最大计数器值将是6 / 0.5 = 12,10小时它将是10 / 0.5 = 20,依此类推 .