No.2ベストアンサー
- 回答日時:
したい事は次のような事でしょうか?
「一定時間内に入力が変化したら”A”を実行する。変化せずに一定時間が過ぎたら”B”を実行する」
ただし、この条件ではまだ不十分です。
それは、”A”や”B”を実行した後どうするかが無いからです。
取りあえず、前の部分だけとしても色々やり方が有ります。
案1、
int old ;
old = port;
for( i=0; i<NN ; i++ ){
if( old != port ) goto AA ;
}
BB: /* ”B”の処理をする */
return;
AA: /* ”A”の処理をする */
return;
注:この方法では割り込みが発生すると時間が狂います。正確な時間を出そうとすると難しくなります。
案2
タイマーを使います。
PICのタイマー1を使うとして、
int old ;
/* タイマー1の初期化をする */
TMR1 = NN ; /* タイマーの時間を設定 */
_T1IF = 0 ; /* タイマー1のフラグをクリア */
old = port;
while( _T1IF == 0 ){ /* タイマー1がオーバーフローするまで待つ */
if( old != port ) goto AA ;
}
BB: /* ”B”の処理をする */
return;
AA: /* ”A”の処理をする */
return;
案3
割り込みを使用する。
main(){ での処理
/* タイマー1の初期化をする(割り込みを含む)*/
/* ポート変化の割り込みの設定をする */
/* 別の処理を実行する事が出来る */
}
/* タイマー1の割り込み処理を記述する */
{
”B”の処理を行う
}
/* ポート変化の割り込み処理を記述する */
{
”A”の処理を行う
}
やりたい事の具体的内容によって色々な方法が有ります。
やりたい事が違えば、上記の方法は駄目かも知れません。
コーディングの技法よりは、やりたい事を“日本語”で正確に記述する方が大事です。
この回答へのお礼
お礼日時:2011/08/23 14:34
お礼が遅くなってごめんなさい。
>「一定時間内に入力が変化したら”A”を実行する。変化せずに一定時間が過ぎたら”B”を実行する」
たぶんこれで大丈夫だと思います。
記述してくださったプログラムを参考に作ってみます!
回答ありがとうございした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 教えて!goo ベストアンサーを選定出来る条件を変更・・・以前との違いが無いように思いますが? 何が言いたいのでしょ 7 2023/04/01 16:43
- 英語 全く英語力0の状態からTOEIC750点、英検準1級取得、または同等レベルになるには、どの程度期間が 5 2023/07/25 22:37
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- インターネット広告・アフィリエイト アフェリエイトサイト 作成について 5 2022/05/13 21:31
- サーバー メールサーバーについて詳しい方、メールサーバーの管理業務経験のある方、教えてください。 3 2022/11/12 18:24
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 高校 対数方程式につきまして 4 2022/05/05 07:55
- 退職・失業・リストラ 給与等の条件変更について。 育児休業明け今月4月から現場復帰(正社員)しております。 2月末に4月以 1 2023/04/06 20:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PICのPIN変化割り込みに...
-
電車で待機列の割り込みについ...
-
Amazonfireタブレットにわから...
-
PICのSleepからの復帰に関して
-
sleep関数の原理について
-
スーパーのレジで並んでいたら...
-
駅のトイレでナイチンに邪魔さ...
-
irqbalance って
-
割り込み中に例外異常
-
USJでの割り込み
-
H8マイコンでの割り込み(シリ...
-
pic 複数の割り込み関数 切り分...
-
Macターミナルで実行中のプログ...
-
逆コンパイルと逆アセンブルの...
-
DoEvents関数って何?
-
緯度、経度の 10進法と 60進法...
-
プロセス間通信について
-
Excel(VBA)シート上のコマンド...
-
メッセージボックスのボタン名変更
-
共有メモリの使い方について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
このレジの並び方は間違ってま...
-
電車で待機列の割り込みについ...
-
スーパーのレジで並んでいたら...
-
ショッピング
-
CPUの処理量を減らすコーデ...
-
一定時間操作がなかったら、と...
-
CPU負荷率の安全な上限と計...
-
pic 複数の割り込み関数 切り分...
-
Amazonfireタブレットにわから...
-
【組込み】割り込み中のstatic...
-
マイコン C言語 割り込み処理...
-
USB機器からのデータ受信による...
-
駅のトイレでナイチンに邪魔さ...
-
インバウンドで迷惑している人...
-
PICのSleepからの復帰に関して
-
PICでのプログラムによるチャタ...
-
実行した後、どうしてもフリー...
-
PICで内部タイマーを使わずカウ...
-
SH2のタイマ出力
-
割り込み中に例外異常
おすすめ情報