No.1ベストアンサー
- 回答日時:
それは可能です。
太古の8ビットマイコン、それこそ8080や6800の頃にはすでに、そういう処理は行われていましたから。が、変数の設定をいくらこねくり回してもダメで、プログラムでどうにかするんです。もう少し具体的には、それぞれの処理を行う関数なりサブルーチンを作り、タイマ割り込みで順番に動かすとか、単純にループで回して順番に頭から動かすとか、そういったことになります。グローバル変数は…タイマ割り込みの処理の中でカウンタを数えて処理する・しないを判断する場合には、必要になるでしょう。
この回答へのお礼
お礼日時:2012/02/16 00:21
変数の設定ぐらいでは、ダメですか・・・
タイマ割り込みやサブルーチンなどが必要なんですね。
早速、タイマ割り込みの勉強をします。
ありがとうございました。
No.2
- 回答日時:
H8マイコンにはCPUが1個しかないのでCPUが行う操作は1時期に1個しか出来ません。
SCIは、通信を開始するのCPUが操作する必要が有りますが、通信を終了するまではCPUが別の操作をすることは可能です。
その為には、LCDの操作をしている間にSCIの開始の操作を行い、それが終わったらLCDに戻り、SCI通信が終了したらLCDの操作を中断してSCI通信の終了の操作をし、それが終わったらまたLCDに戻ります。
このような処理をする為には割り込みを使用するか、リアルタイムOS(RTOS)を使用します。
たとえば、SCI通信の終了で割り込みが発生するようにしておいて、その割り込みの中で通信終了時の処理を行います。
処理の流れとしては次のようになります。
SCI通信を開始する→LCDの処理を行う→(どこかで割り込み発生:SCI通信の処理)→LCD処理が続く。
LCDの処理では、いつ割り込みが発生するかは意識しないで書く事が出来ます。
SCI通信では、1文字ごとに割り込みが発生するのでそれに対応した処理が必要です。
例えば、10文字を送ろうとすれば、最初の処理で10文字送る準備をしておいて、最初の1文字を送ります。
1文字の通信が終わると割り込みがかかるので、その中で全部送ったかどうか判断し、残りが有るのならそれを送り、無いのであればSCIの動作を止めます。
AD変換も同じようにします。
このように、割り込みに対応した周辺機器であれば他のものと同時に動かす事が出来ます。
その為には周辺機器の動作を開始するプログラムと、割り込みを処理するプログラムを書く必要が有ります。
AD変換についても同じようになります。
RTOSを使用する場合はRTOSが使用できる環境になっている必要が有ります。
この場合は、それぞれの処理を行うプログラムをタスクとして記述する事になります。
この場合、それぞれのタスクが同時に動作しているように見えますが、あくまでも見えるだけで、実際には一つのCPUが順番に処理しているだけです。
他のタスクをあまり気にせずに記述出来るのでプログラムを作るのは楽になりますが、RTOSまで作るとなると少し大変になりますね。
この回答へのお礼
お礼日時:2012/02/16 00:24
SCI通信は、1文字ごとに割り込みが発生するのですね。知りませんでした。
どこで、割り込みが入るようにするか研究しないとだめですね。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) PIC16F1シリーズマイコンのNCO機能について 1 2023/04/18 08:41
- 工学 1つのタクトスイッチで複数の並列回路を閉じ、アースにつなげることができるスイッチはありますか。 2 2022/08/06 10:38
- Visual Basic(VBA) 昨日、質問した件『VBA にて、条件付き書式で背景色を設定しているセルの範囲で、背景色付きのセルをカ 4 2022/04/07 14:39
- 一眼レフカメラ 悪天候時の設定 2 2022/10/07 14:19
- その他(IT・Webサービス) slackで初回メッセージを送る時の文言 1 2022/03/31 10:39
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- YouTube YouTubeライブ配信について 2 2023/02/12 17:04
- FTTH・光回線 グローバルIPアドレスの変更について 1 2022/04/23 05:32
- 加湿器・除湿機 乾燥し過ぎ・・なぜ・・??? 1 2023/04/24 20:33
- Wi-Fi・無線LAN ネットワークに関する質問です。現在、有線ルーターと無線ルーターを使用しております。 4 2023/07/13 23:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スーパーのレジで並んでいたら...
-
irqbalance って
-
インバウンドで迷惑している人...
-
駅のトイレでナイチンに邪魔さ...
-
マイコン C言語 割り込み処理...
-
volatileについて
-
pic 複数の割り込み関数 切り分...
-
アトメル社製ATtiny2313マイコ...
-
VB6でSendKeyを利用したTab移動...
-
実行した後、どうしてもフリー...
-
PIC16F84AのRBポート変化割り込...
-
ゾンビプログラム?
-
PIC12F683から移植
-
マイコンの割り込みについて教...
-
USB機器からのデータ受信による...
-
picタイマ0割り込みについて
-
H8/3052F/IRQを使った割り込み
-
電車で待機列の割り込みについ...
-
SH2 (SH7144)のソフトウェアス...
-
Macターミナルで実行中のプログ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インバウンドで迷惑している人...
-
pic 複数の割り込み関数 切り分...
-
スーパーのレジで並んでいたら...
-
ショッピング
-
Excelでタイマーの一時停止する...
-
電車で待機列の割り込みについ...
-
CPUの処理量を減らすコーデ...
-
C言語でPICマイコン開発
-
【組込み】割り込み中のstatic...
-
Amazonfireタブレットにわから...
-
マイコン C言語 割り込み処理...
-
USB機器からのデータ受信による...
-
一定時間操作がなかったら、と...
-
VB.net 割り込みの禁止
-
ウォッチドッグタイマ(WDT)の...
-
電車乗車時、並んでいるのに割...
-
USJでの割り込み
-
VB6でSendKeyを利用したTab移動...
-
PICでのプログラムによるチャタ...
-
割り込み中に例外異常
おすすめ情報