マイコンのメインルーチン内でwhile(1)文を用いてループしたとき、正常な動作をしない事があります。
使用しているマイコンはAVRです。
具体的には
各種インクルードファイル
int temp =0;
//tempはタイマー割り込みによって加算される
int main (void)
{
初期設定
while(1)
{
if (temp >= 50)
{
全割り込み禁止
LED出力トグル
temp =0;
全割り込み許可
}
}
}
と記述するとwhileループ内のif分岐がうまく処理されない事があります。
この時whileループ内に1usのdelayを入れると正常に動作します。
具体的には
int main (void)
{
初期設定
while(1)
{
if (temp >= 50)
{
全割り込み禁止
LED出力トグル
temp =0;
全割り込み許可
}
_delay_us(1);
}
}
のように記述すれば問題なく動きます。
このような症状の原因としては何が考えられますでしょうか?
No.2ベストアンサー
- 回答日時:
割り込みで値が変化する場合、
コンパイラにそれを教えないといけません。
volatile int temp =0;
にしてみては?
変数temp にvolatileをつけてみたところ、delayなしでも正常に動作するようになりました。
的確なご回答を頂きましてありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- その他(プログラミング・Web制作) 全然分からず困っています。習ったものはPythonで基本的に for~in/if/n=len/inp 2 2023/05/23 21:47
- その他(プログラミング・Web制作) 全然分からず困っています。習ったものはPythonで基本的に for~in/if/n=len/inp 2 2023/05/23 22:00
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPU負荷率の安全な上限と計...
-
H8SX/1655のタイマー割り込みに...
-
H8/3052F/IRQを使った割り込み
-
C言語について(PWM)
-
PICのSleepからの復帰に関して
-
Amazonfireタブレットにわから...
-
STATUSのZフラグについて
-
pic 複数の割り込み関数 切り分...
-
volatileについて
-
VB6でSendKeyを利用したTab移動...
-
マイコンのメインルーチン内でw...
-
USB機器からのデータ受信による...
-
MIKROCのButton()関数について
-
ショッピング
-
CPUの処理量を減らすコーデ...
-
システムの割り込みについて シ...
-
AVRマイコン
-
駅のトイレでナイチンに邪魔さ...
-
Macターミナルで実行中のプログ...
-
バックグラウンドのプロセスの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ショッピング
-
スーパーのレジで並んでいたら...
-
pic 複数の割り込み関数 切り分...
-
マイコン C言語 割り込み処理...
-
Amazonfireタブレットにわから...
-
CPUの処理量を減らすコーデ...
-
irqbalance って
-
CPU負荷率の安全な上限と計...
-
一定時間操作がなかったら、と...
-
電車で待機列の割り込みについ...
-
VB6でSendKeyを利用したTab移動...
-
(H8マイコン)タイマ割込で変更...
-
駅のトイレでナイチンに邪魔さ...
-
アセンブラのタイマー割り込み
-
PICのPIN変化割り込みに...
-
USJでの割り込み
-
H8マイコンで割り込みが任意の...
-
PIC16F84AのRBポート変化割り込...
-
AKI-H8/3048Fでのタイマ割り込み
-
H8マイコンでの割り込み(シリ...
おすすめ情報