お問い合わせ 資料請求

COLUMN

COLUMN

ギアの紹介とトラブルシューティング事例(その4)

こんにちは。開発部のTです。
その3で頑張って追加したとか言っていたのに、また半年以上経ってしまいました(o_ _)o
しばらく仕事の大波が来ていたのでご容赦を。

今回もマイコンにしておきましょう

以前勤めていた会社でソフト設計者が言っていました。
「ハードウェアはどう動くかわからないから難しい。だから素直に動くソフトをやることにした。」

 

・・・いやいや。そんなに素直じゃないぞ(-_-;
例えば通信で読み込んだ変数Rxdataの中の、LSBから2bit目が立ってるかどうかで分岐させるときは、
 hoge = Rxdata & 0x02;
 if (hoge)
 {
  hogehoge ++;
 }
といったプログラムを作ると意図したとおりに分岐してくれる(はず)。
そのノリでビットフィールドのbitをset / resetしようとして
 hoge.bit.hoge1 = Rxdata & 0x02;
とかやってしまったとき、Rxdata = 0xFFでもビットフィールドhoge.bit.hoge1がセットされなかったことがありました。

教えてGemini~

ということで生成AI Geminiに聞いてみたところダメ出しされてしまいました。
賢い読者の方は既に気づいていると思いますが、Rxdata & 0x02 は2か0の値をとる ためです。
ビットフィールドには1か0を入れなきゃなので、
 hoge.bit.hoge1 = (Rxdata & 0x02) ? 1 : 0;
と書くのが正解でした。

ややこしい。どこが素直やねん(-_-#

・・・いや、わかってしまえば十分素直か。

 

ちなみに、コラム一覧のサムネールに使ったチョコレートは”bit”にちなんでます。(某B社の製品名)

 

皆さんお待ちかねのランニングギア紹介

今回はヘッドライトを紹介します。

MH10(LED LENSER)

既に生産終了モデルで、現在一番近い(というかほぼ同じかも)のはH8Rになると思います。
3段階のうち真ん中の明るさ(250ルーメン)で一晩余裕な電池のもちと、その電池が一般的な18650セルを採用しているのが気に入っています。
・・・電池は純正品を使ってくださいね。それ以上は言えません(-_-;