私の友人は、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;
}
}
PIC12 ユーザー マニュアルでその機能を見つけましたがgmtime(time_t *)
、それが良い解決策かどうかはわかりません。
しかし、2番目の問題を解決する方法がわかりません。プログラムの実行中に入力電圧を監視する、一種の独立したスレッドでなければなりません。そして、プログラムは、回路が損傷する前に (他の関数を呼び出すことによって) すぐに反応する必要があります。
私はコンピューター プログラマーですが、MCU 用にコーディングしたことはありません。HI-TECH C でそのようなことが可能かどうか知りたいですか?