ここから本文です

ダイセン工業のTJ3でタイマーを再カウントする方法がわかりません。

ngttbsさん

2012/3/611:23:02

ダイセン工業のTJ3でタイマーを再カウントする方法がわかりません。

void user_main(void)
{
while (TRUE) {
out_Led(1, LED_OFF);
if (gAD[2] > 511) {
clr_timer(0);
}
while (get_timer(0) < 3000L) {
out_Led(1, LED_ON);
}
}
}

上のプログラムでタッチセンサが押されるとLEDが3秒間だけ点灯するようにしました。
そこで3秒以内にまたタッチセンサが押されたらタイマー0から再カウントするようにしたいのですが、
タイマーのカウントをリセットする方法が分からず困っています。

閲覧数:
370
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

2012/3/612:52:32

タイマーのリセットは見るからにclr_timer(0)っぽいですね。
該当機種を持っているわけではありませんので想像でやれば、

enum STAT{
IDLE,
LED_ON
};

void user_main(void){
int stat=IDLE;
while(TRUE){
switch(stat){
case IDLE:
out_Led(1,LED_OFF);
break;
case LED_ON:
out_Led(1,LED_ON);
if(get_timer(0)>=3000L){/* センサ検出なく3秒たったら消灯 */
stat=IDLE;
}
break;
default:
break;
}
/* タッチセンサ検出により何時でもタイマクリアしてLED点灯状態 */
if(gAD[2]<=511){
clr_timer(0);
stat=LED_ON;
}
}
}

ってな感じでしょうか。疑問があればメーカーの営業や技術サポートに聞いてみては。

質問した人からのコメント

2012/3/12 09:23:24

ありがとうございます

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。