朋友让我帮他写一个PIC12 MCU的小程序。我们想要
- 当输入电压在 2 秒内低于 1.9V 时程序停止运行。
- 当输入电压超过 2.5V 时,程序会立即做出反应。
我尝试通过读取和比较系统的时间戳来解决第一个问题:
#include <time.h>
... ...
time_t beg, end;
beg = 0;
end = 0;
while(1){
if(INP_VOL < 1.9){
if(beg == 0){
/* Read timestamp when voltage < 1.9 */
gmtime(&beg);
}
/* Campare timestamp */
gmtime(&end);
if(end - beg > 2){
break; /* !!stop running!! */
}
}
else{
/* if voltage back to normal, reset beg timestamp. */
beg = 0;
}
}
我gmtime(time_t *)
在 PIC12 User Manual 中找到了该功能,但我不确定它是否是一个好的解决方案。
但我不知道如何解决第二个问题。它应该是一种独立的线程,在程序执行期间监控输入电压。并且程序应该在电路损坏之前立即做出反应(通过调用其他函数)。
我是计算机程序员,但我从未为 MCU 编写过代码。我想知道在 HI-TECH C 中是否可以做这样的事情?