そんな考えで作ったプログラムをPicoに持ってくると思わぬ「バグ」が生じます。Pico:PWMでD/A出力してA/D入力を試すこのスケッチ中で使っている時間待ちルーチン。「bkdelay」という名で、1ms単位の時間待ちをしている途中、シリアル入力があったら時間待ちを中断するという機能を持たせています。1秒待ちなんかしてる時に、「もぅエエからはよ終わろうぜ」に対処します。割り込みを使わずに管理するとなると、millisを呼び出して時間経過をチェックするという処理になります。millisは32bit値で最大1193時間、50日ほどを計時できます。「そんな長いこと待たへんのんで16bitでエエやん」とケチるわけです。CPUでバグを生んでしまいます。tn)を比較しているんですが、すべて16bit値で計算していました。※UNOの時は(word)を付けてなかった。tn)、符号無しwordだとtとtnの大小が逆になっても差の値は正しく出てきますんで。ところが、Picoは32bitで内部処理。16bitで減算して比較するつもりが、32bit値に型変換されてから比較されるのです。※「暗黙の型変換と符号拡張」というヤツです。tとtnの大小が逆になったらマイナスになってしまいます。tnの値によっては、いつまでたってもdlyを越えることができません。tn)の前に付けたキャスト演算子(word)。これを忘れると動かないわけです。※教訓:32bitマイコンはRAMをケチるな!ちゃうちゃう。「暗黙の型変換と符号拡張」に注意!ということで。VIEW」で下から足を見ます。VIEW」となって上から見たところ。昔話になりますが、プリント基板用リレーのピン番号で混乱したことありませんか?例えばオムロンのG5V-1リレー。カタログから外観をピックアップ。VIEWで記されています。VIEWの絵が出てくるとちょいと混乱します。(・・・混乱しました)G5V-1のコイルには極性がないので間違って反対にしてもリレーは駆動します。A接点とB接点が逆になって「あれれ?」な状態に。手組みの試作だと修正できるので良いのですが、ピン番を勘違いしてプリント基板を起こしちゃうとアウト!サーフェスマウント端子のリレーを使ったときに気が付いたのが端子配置の表現。※使ったのはオムロンG6Kという2回路の小型リレー。VIEWで示されています。VIEWになっています。どちらも同じなのですが、きちんとピン番号を確認せず「ぱっと見」で組んでしまうと「あらら」。みなさん、勘違いしたことありませんか?これがプリント基板用端子のG6Kリレー。VIEWで描いてあります。同じ品種のリレーでも、実装方法の区別でピン番表記の向きが異なります。※表記の上下方向が変わるだけで、同じものですよ。G6Kのコイルには極性があるの、誤って上下を逆に見てしまうとリレーが動きません。※でも、このリレーの場合、A接、B接は大丈夫。(水)混ざる・・・熱収縮チューブがぁぁ現場に持って行った「熱収縮チューブ」を入れた箱。仕切りが付いていて4つに分かれています。何かの拍子、横から縦になったのでしょうね。混ざってしまいました。過去にはこんなことも。逆襲!・コネクタ・ピンのオスとメス今回のスカタンはタッパーの仕切りとフタの位置。微妙に隙間が空いているのです。そこを通って、熱収縮チューブが内部で移動。みごとに混ざってしまいました。中央の十字に赤マークを入れてフタをして。押さえたときと離した時でこれだけの差。