
No.1ベストアンサー
- 回答日時:
>arduinoって同時にプログラム実行できないんでしょうか。
できません。
ちなみにマルチコアなどでない限りPCでも同時に実行できるのは1つの命令が基本です。
# 最近はマルチコアも普通になってきていますが。
>例えばシリアル通信中にLチカをして通信状態確認するとか。
処理を細切れにして実行するようにスケッチを作成すれば可能です。
シリアルの受信バッファにデータがあったら1文字(1Byte)読み込んで配列に格納。なかったら次の処理へ。
時間を取得して、前回のLED点灯(または消灯)から一定時間過ぎていたらLEDを消灯(または点灯)。
シリアルからの受信データがある程度貯まったら内容判定して必要な処理を実行、
というかんじでループ中に細切れに処理していきます。
# シリアル送信も1ループ中に1文字(1Byte)だけ送信。とか。
No.3
- 回答日時:
回答が難しいですね…。
マルチコアでないので、本当に同時に、任意のプログラムを実行することは、できません。
ただし、
本当に同時に実行していなくても、数ミリ秒程度の間隔で別のプログラムを順に実行すれば人間の目には同時に見えます。
これはPCでも行っていることです。あまりArduinoでこれ(時分割マルチタスク)を行うのは一般的ではないですが、やってできないことはないでしょう。
もうひとつ、プログラムを実行するのはマイコンの中のCPUですが、マイコンにはCPU部の他に周辺機能(ペリフェラル)があります。
マイコンによってできる機能は違いますが、大抵のマイコンではシリアル通信をするとかPWMでLEDを点滅させるとかの作業がプログラムの実行と同時にできます。
No.2
- 回答日時:
arduinoのCPUは、マルチコアではないので並列処理はできません。
代わりによくあるパターンとしては、受信割り込み、タイマー割り込みなどの割り込みを使います。
割り込み処理中はメインスレッドは停止していますが、
メインスレッドからみると自分が行っている処理とは無関係に処理が進んだように見えます。
割り込み処理は、並列実行と同じような問題(2つの処理が同じ変数にアクセスする場合に
何も考えずに作るとデッドロックするなど)が発生しますが、それらに気をつけるとよいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
vba クリップボードクリアにつ...
-
Python... 環境設定 初心者です...
-
AIの登場でプログラマーたちが...
-
初心者powershellのPS1ファイル...
-
Geminiフォーム 画像生成で 人...
-
pythonの実行に関する質問
-
python3について。
-
iOSゲームアプリが作りたいと思...
-
Python 3.12.2 か一番最新のパ...
-
Google ColaboでGUI作成
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
OS入ってる機器のソフト・アプ...
-
パイソンのソースコードをChatG...
-
CSVファイルの複数行削除
-
pythonについて(初心者です)
-
MOVEコマンドでサブフォルダー...
-
プログラミング言語のバージョ...
-
AIがプログラムする時代のプロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語FortranとCの違...
-
arduino
-
CPU、Z80からステート数から...
-
組み込みCプログラムで実数型
-
パイプライン制御について
-
なぜ、i++なのか?(ものすごく...
-
PICマイコンのプログラムについ...
-
アセンブリ言語で。
-
G4 って Pentium でいうとどの...
-
CPUって
-
MIPS アセンブリ言語
-
64ビット化による処理速度低下...
-
マイコンのビット数とクロック数
-
関数と命令の違いについて
-
H8Sで割り込み発生時の飛び先ア...
-
VBSとVBA
-
+=と÷=の処理速度の謎を教え...
-
スマートフォンAndoroid の R...
-
任天堂64の64 CPUの仕...
-
CPUのHTについて教えてください。
おすすめ情報