
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) シリアル通信 2 2022/05/07 17:14
- その他(開発・運用・管理) Arduinoのキー送信は.netのSendKeys.Sendと同じ?? 1 2022/04/23 01:01
- システム科学 arduino プログラムについて クラブ活動で、 タイヤ3個とトグルスイッチ2つ、サーボーモータ2 1 2023/01/30 17:04
- PHP ここで言う空文字の意味とは? 1 2022/08/05 16:27
- C言語・C++・C# プログラム Arduino 1 2022/07/03 11:13
- その他(インターネット接続・インフラ) インターネットにつながっているかを、常時確認したい。 7 2023/02/22 08:57
- Outlook(アウトルック) OCN WEBメールについて 1 2022/05/18 23:33
- オープンソース arduino ide 2.0.0 について 1 2022/09/19 15:45
- その他(パソコン・スマホ・電化製品) アプリを開いたときに「通信に失敗しました 通信状態の良いところで 再度お試しください」と表示される 6 2022/09/20 10:19
- Windows 10 windows11のUSB接続の機器がcomポートに表示されない。 3 2023/04/13 07:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
64ビット化による処理速度低下...
-
VBAでのコントロール操作
-
x86系のCPUとは?
-
H8Sで割り込み発生時の飛び先ア...
-
プログラム言語FortranとCの違...
-
処理時間の計算 PICアセンブラ
-
【有効数字について】 授業で、...
-
実行計画の「COST」と「BYTE」...
-
正規表現による改行の置換
-
携帯電話の略語であるMBって英...
-
EXCELでの16進数取り出し、上...
-
エクセルのセル内で改行を削除...
-
エクセルVBAで xlOn xlOff の切替
-
pngについて
-
GB と Gbの違いの意味
-
16bitはダイナミックレンジが97...
-
32bit = 4GB(バイト)?
-
JPEG(2キロバイト)の作り方
-
特殊なテキストエディタ
-
viで一括で行をつなげたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語FortranとCの違...
-
arduino
-
組み込みCプログラムで実数型
-
COM1(RS232C)とUSB仮想COMポー...
-
H8Sで割り込み発生時の飛び先ア...
-
64ビット化による処理速度低下...
-
任天堂64の64 CPUの仕...
-
MFCのエディットボックス上書き...
-
アセンブリ言語で。
-
なぜ、i++なのか?(ものすごく...
-
PICマイコンのプログラムについ...
-
クロックの求め方
-
ビット数
-
VBAでのコントロール操作
-
Pentium 4とPentium Mの性能差...
-
+=と÷=の処理速度の謎を教え...
-
ステート数とは
-
MIPS と クロック周波数の換算方法
-
C言語についてです 整数nを入力...
-
ページフォールトを発生させる...
おすすめ情報