PASのブログ

PASの中の人が書く雑記ブログです。

思い込みとか先入観。

丸星ラーメンという久留米のラーメン店があります。 紅しょうがをラーメンに入れた発祥の店として知られ、土日ともなると観光客が多い人気店です。

こんな記事もあるくらい。

rocketnews24.com

今日たまたま通りかかったので、食事時は外れていましたが寄りました。

平日の食事時を外れた時間帯のこの店の利用客の中心層は、ガテン系のおじさんです。

そんな中、ノージャケットノーネクタイでよれよれのスーツ姿のおじさんが入店してきました。 仕事姿というより、普段着のようないでたちです。近所の方かもしれません。

このラーメン店は、ラーメンが1杯400円。福岡にはまだまだこんな価格帯の店があります。 薄いチャーシューが1枚と、申し訳程度にネギが載った程度の質素な食べ物です。量も少なめです。 (同様にうどん店も低価格な店が多いです。) セルフサービスでたくあんと高菜漬け、揚げ豆腐の煮物、紅ショウガなどがあり、これらは食べ放題です。

件の紳士は、白飯とおでんのこんにゃくだけ注文。 セルフコーナーから山盛りの煮物と漬物をもってきて、がっつきます。

このあたりで僕の妄想が始まりました。

「ラーメンは食べないのかな? スタッフさんなのかな?いやでもスラックスと白シャツでスタッフはないな、 近所の常連さんでラーメンは食べ飽きたのかな? でもちょっと行くと定食屋さんとかもあるだろうし、この店が好きなのかな?

よく見るとスラックスはクシャクシャだな。 張り込み3日目の刑事だなこれは。 風呂も入ってないんだろう。てか刑事とかいる?こんな街に。いるかな?いないよね?

ん?もしやお金がないのかな? 白飯とおでん1つならば300円もいかないし、煮物と漬物でおかずにはなるしね。 いや~しかしうまそうに食べてるな~飲み込むようにご飯を食べてる。 お腹がすいてるのかな? まさか何日もご飯を食べてないのかな?」

もうこのあたりで彼のことがホームレスのおじさんにか見えなくなりましてね。

f:id:pas_fx:20190604192008j:plain

身体は細いんですよ。中肉中背。 ただその食べっぷりが半端ないわけです。 小さい茶碗ならばふた口で完食する勢いです。

相当お腹がすいてるんだろうな、もう何日も食べてないんだろうな、空き缶とか集めたのかな、次はいつ食べられるのかな、とかこの段階では僕は既に完全に上から目線。

そうこうしているうちに僕自身が食べ終わり席を立とうとしたその時。

ホームレスのおじさんにラーメンが来ました... というかホームレスではなくて単なるお腹がすいてる痩せたおじさんでした。

結局そのおじさんは2回の替え玉と3回のセルフおかずのお替りをして、推定2000キロカロリーの摂取と1000円程度の支払い(まぁ食券なんで前払いなんですが)を済ませて揚々と退散。 思い込みはよくないよという話でした。チャンチャン。

。。。で終わるわけはないです。 起承転結の起がやっと終わったところです。

では。

今日は、思い込みと先入観をなくそうというお話。主に僕の失敗談です。

ビットを反転するという事。

ご存知の方はご存知だと思いますが、僕は音響系アナログ回路の設計をしています。
でもごく稀にですが組み込み系プログラミングをすることがあります。いわゆるマイコンです。
そういう時はほとんど委託のお仕事です。

で、専門的な話を説明しても本質からずれるのでわからない人はわからないなりにぼや~っと読んで欲しいミスをしでかしたのでご紹介します。

こういうプログラムを組みました。(省略及び適当に思い出しながら書いてるので突っ込みはなしで。) 一部を抜粋します。  

#define SW PORTBbits.PB0    
  
int MODE,detect,old_detect;  
detect = SW;  
if((detect = 0) &&(old_detect = 1))  
{  
MODE = ~MODE  
__delay_ms(50)  
}  
old_detect = detect;  
if(MODE = 0)  
{  
動作A  
}  
else  
{  
動作B  
}

スイッチを押すと動作Aと動作Bを切り替えることができるプログラムです。  

肝はここです。
MODE = ~MODE

反転しなさい、つまり0ならば1に、1ならば0にしなさいというつもりで書いたんです。
~というのは、ビット反転演算子で、0ならば1に、1ならば0にする記号です。

当初はこれで動いていたんです。

但し電源ONの時に動作Aから始まるので、これを動作Bからにしようとして先頭に
MODE = 1;
と書いたらとたんに動かなくなりました。  

かなりの時間いろいろとやってみて判明したのは、MODEをint型で定義していたことでした。
int型は16ピットなので、つまりは
MODE = 0は
0000000000000000
だったわけです。
つまりそれを反転すると
1111111111111111
になり、1ではないんですね。

ここを解決したら快調に動作するようになりました。

基板の微修正をするということ。

これはつい最近Tutorial2を製造していて体験したことです。

Tutorial2は一台一台手作りの製品でして、その日は3台作っておりました。 仕上げも終わりいよいよ動作チェックです。

1台目・・・動作しない。
2台目・・・動作しない。
3台目・・・動作しない。

おや?と思いました。 一台一台丁寧に作っているので、3台作って3台とも動作しないことがあるというのがどうにも解せません。 3台とも、LEDが点かないという不具合でした。

製造実績のある基板ですし。。。うーん。 オシロスコープやテスターで点検していくと、電圧はきていますし降下もしています。 うーん。

うーん。

うーん。

こういう時は一か所一か所、電圧を測っていくのが確実です。 結局判明したのは、パターン切れです。

f:id:pas_fx:20190613145649p:plain
抵抗の片側がGNDに繋がっていない。

考えてみれば、一部シルク印刷が部品にかぶっているところがあったのを修正するために、追加発注の際にデータを更新して基板業者さんに送ったんですが、その時にここの部分だけ、データを書き換えてしまっていたようなのです。

ここを繋いで完成です。

基板データを修正して再発注することになりました。

ちなみにうちでよく使っているデジタルテスターはこれ。

他にもあるけど。

考えてみたらちょっと専門的になりそうな感じな内容ですので、どこかで「動作しないときの点検方法について」を書いたほうが良いのではないかという気がしてきました。

では次回またお会いしましょう。