A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
イベントフラグとは、タスク間の同期を行うために使われるビットパターンのことです¹²。
イベントフラグを設定するには、set_flg()関数を使います³。この関数は、第一引数にイベントフラグのID、第二引数に設定するビットパターンを指定します⁴。イベントフラグを待つには、wai_flg()関数を使います⁴。この関数は、第一引数にイベントフラグのID、第二引数に待ち条件となるビットパターン、第三引数に待ち条件の種類(ANDまたはOR)、第四引数に待ち解除時に得られるビットパターンを格納する変数のポインタを指定します⁴。
したがって、あなたの質問の場合、set_flg(FLG,0x01)で設定したイベントフラグを他のタスクでif(FLG == 0x01){}のようにして動かすことはできません。なぜなら、FLGはイベントフラグのIDであり、ビットパターンではないからです。正しい方法は、wai_flg(FLG,0x01,TWF_OR,&flgptn)のようにして、イベントフラグが0x01になるまで待つことです⁴。
C言語でマルチスレッドプログラミングをするときは、寝たスレッドが起床するために必要なイベントをすべて参照しているかと自問自答すると、自分のアプリに必要な同期機構が分かります⁵。イベントフラグ以外にも、セマフォやメールボックスなどの同期・通信機能がありますので、用途に応じて適切に選択してください¹²。
ソース: Bing との会話 2023/8/8
(1) イベントフラグ、セマフォ | APS|組み込み業界専門メディア. https://www.aps-web.jp/academy/rtos/280/.
(2) 【問題1】タスク間の同期と通信:“組み込み力”向上! ETEC .... https://monoist.itmedia.co.jp/mn/articles/1009/1 …
(3) Windowsシミュレータで学ぶuITRON (2) - イベントフラグ - Qiita. https://qiita.com/imagou/items/80ec6e4970de31540 …
(4) ITRON入門 イベントフラグで学ぶタスク間同期・通信機能. https://monozukuri-c.com/itron-eventflg/.
(5) スレッドを使う前に知るべき C 言語の特性 - Qiita. https://qiita.com/aKatsuhiroMihara/items/211b109 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
イベントフラグを複数のタスクで待った時の優先順位
その他(OS)
-
QT(C++)の学習方法について
C言語・C++・C#
-
C言語って古いですか?
C言語・C++・C#
-
-
4
typedef enumの使い方を教えてください
C言語・C++・C#
-
5
【gcc・cygwin】multiple definitionエラーの解決法
C言語・C++・C#
-
6
C言語のflagの使い方が分かりません。ライントレースでセンサーAのプログラムが動いている時、センサ
AJAX
-
7
VisualStudioでC++クラスを追加するとき、ファイルを所定のフォルダ下につくりたい
C言語・C++・C#
-
8
ホワイトハッカーを目指そうかと思っている状態です
C言語・C++・C#
-
9
C言語について。
C言語・C++・C#
-
10
C言語について。
C言語・C++・C#
-
11
C言語について。
C言語・C++・C#
-
12
C言語について。
C言語・C++・C#
-
13
gcc13.2のバグ?
C言語・C++・C#
-
14
パイソン。If elseの挙動について教えてください。パソコンは、if else で、まずifに当て
C言語・C++・C#
-
15
License='MIT' ってなんでmitなんですか??適当なのでもいいですか? パイソン
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#で電卓のプログラムを組んで...
-
c言語でイベントフラグを使った...
-
COBOL エンドフラグについて
-
Accessでデータシートに同じデ...
-
一つ前に戻るには…
-
テーブル名をカラムとして取得...
-
SELECT 文の NULL列は?
-
SQLでSUMなどの関数でデータが...
-
ビューのソートについて
-
SQLにて指定日付より前、かつ最...
-
SQL、2つのテーブルで条件一致...
-
テーブルリンク リンク元を知...
-
UPDATE文
-
会社の飲み会の幹事になり、座...
-
sqlplusで表示が変なので、出力...
-
Oracleで上書きImportはできま...
-
L2SWはARPテーブルを持っている?
-
他のデータベースとのテーブル結合
-
update文で改行を入れる
-
ROWNUMでUPDATEをしたいのです...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語でイベントフラグを使った...
-
C#で電卓のプログラムを組んで...
-
COBOL エンドフラグについて
-
Accessでデータシートに同じデ...
-
テーブル名をカラムとして取得...
-
SQL、2つのテーブルで条件一致...
-
SELECT 文の NULL列は?
-
会社の飲み会の幹事になり、座...
-
ROWNUMでUPDATEをしたいのです...
-
Accessのテーブルデータを一気...
-
SQL 複数テーブルのupdate
-
他のデータベースとのテーブル結合
-
SQLにて指定日付より前、かつ最...
-
update文で改行を入れる
-
単純なselectが遅くなるのです...
-
テーブルリンク リンク元を知...
-
sqlplusで表示が変なので、出力...
-
L2SWはARPテーブルを持っている?
-
テーブルの白く剥がれてるところに
-
飲み会で、座敷orテーブルどち...
おすすめ情報