Мой друг просит меня помочь ему написать небольшую программу для PIC12 MCU. Мы хотим
- Программа прекращает работу, если входное напряжение менее 1,9 В в течение 2 секунд.
- Программа реагирует немедленно, когда входное напряжение превышает 2,5 В.
Я пытаюсь решить первую проблему, читая и сравнивая системную метку времени:
#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, но я не уверен, что это хорошее решение.
Но я не могу понять, как решить вторую проблему. Это должен быть своего рода независимый поток, который контролирует входное напряжение во время выполнения программы. И программа должна немедленно реагировать (вызывая другую функцию), прежде чем цепь будет повреждена.
Я программист, но я никогда не программировал для MCU. Я хотел бы знать, возможно ли сделать это в HI-TECH C?