複数のタイマ割り込み

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
助けてくださーい(´;ω;`)

複数のタイマ割り込み

#1

投稿記事 by 助けてくださーい(´;ω;`) » 6年前

コンペアマッチを用いた割り込みについて質問です。

500usec LED点灯
300usecLED消灯
100usecLED点灯
50 usecLED消灯

を1つのLEDで表示させます。


最初に500、と300を1度だけ起動させて50と100を起動させて50が10回起動したらまた500と300を起動させることを繰り返します。

どのようなプログラムとなりますか?

shira211
記事: 13
登録日時: 8年前

Re: 複数のタイマ割り込み

#2

投稿記事 by shira211 » 6年前

すいません 質問の意味が全く理解できません、、、
500とか50usなどの時間とLEDの動作の関係、あるいは時間の経過に伴ってLEDがどう動くのかをもっと詳しく説明できますか?

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: 複数のタイマ割り込み

#3

投稿記事 by みけCAT » 6年前

よく理解できていませんが、
助けてくださーい(´;ω;`) さんが書きました:複数のタイマ割り込み
助けてくださーい(´;ω;`) さんが書きました: 最初に500、と300を1度だけ起動させて50と100を起動させて50が10回起動したらまた500と300を起動させることを繰り返します。
という複雑な処理はしないといけないのですか?
助けてくださーい(´;ω;`) さんが書きました: 500usec LED点灯
300usecLED消灯
100usecLED点灯
50 usecLED消灯

を1つのLEDで表示させます。
というのが、LEDをこの順番でシーケンシャルに制御するということであれば、

コード:

// 初期化
状態 = 0
カウンタ = 1 // 1で初期化することで、最初の割り込みで0になって処理が進む

50usec周期のタイマー割り込み {
  カウンタ = カウンタ - 1
  if (カウンタ == 0) {
    if (状態 == 0) {
      LED点灯
      カウンタ = 10
      状態 = 1
    } else if (状態 == 1) {
      LED消灯
      カウンタ = 6
      状態 = 2
    } else if (状態 == 2) {
      LED点灯
      カウンタ = 2
      状態 = 3
    } else {
      LED消灯
      カウンタ = 1
      状態 = 0
    }
  }
}
という1個のタイマ割り込みでできると思うのですが。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

助けてくださーい(´;ω;`)

Re: 複数のタイマ割り込み

#4

投稿記事 by 助けてくださーい(´;ω;`) » 6年前

ありがとうございます

返信

“C言語何でも質問掲示板” へ戻る