2012年8月18日土曜日

STM32 変数が化けるの巻・・・機能追加

いやぁ、参りました。

機能追加を繰り返して、動作したと思ったら、まったく関係ないところが動かなくなるという、摩訶不思議な現象に遭遇。

色々調べたら、画面タスク内の変数が途中で化けてる・・・

最初はリアルタイムOSのスタックのあたりか?  と色々試してみるも現象は同じ。

昔、ネットで遭遇した覚えはあるものの、そんなページ覚えてもいないし、ブックマークもしていない。記憶する脳みそも持っていない。

こんな時は、スタート地点に戻るのが一番。

画面タスク(別ファイル)で定義してある変数を、main.c に持っていって、外部参照にしてみる。


   無事、解決。


volatileという修飾子も付いているので、最適化されてるわけでもない・・・コンパイラかリンカーのオプションが足りないかな。

まぁ、理屈はあっているのでオッケーとしてしまいました。
たぶん、ある一定量の変数を超えると、こういう現象になるんでしょう。このコンパイラは。

歳をとると、深く追求しません。(笑)


  何の事かさっぱり分かりませんよね?

ただのメモ書きと思ってください。すみません。


という事で、GX-ZERO-1のBG履歴から、一行づつ削除する機能を追加しました。
(相変わらず汚い写真ですが・・・乙)


今までは、全消去でしたから、長いBGを測定した時と、高線量を計測した時の累計が混在して、平均値が平均値でない状態になっていたので、改修しました。

5時間くらいのバックグランドを計測したデータが消えるのは虚しいですよね?
             ↑
      最近実感したという愚か者です。

もうちょっと試験してからリリースします。

食料品検査用のソフトも、かなり優秀になってきました。

しかし、GM菅で食料品を検査するなら、β線も入れて検査したいですねぇ。

こんな事書いたら、学者さん達に叩かれそうです。

   エネルギーを見ないと核種が分からないでしょ!

ってね。

結局カリウム40だけを省いてやれば、食べたら有害な放射性物質が含まれているかは分かるはずで・・・

セシウムであろうが、トリウムであろうが、ラジウムであろうが、食べたらあきまへん。

カリウム40は、β線を放出してカルシウム40になります。(89.3%)
で、γ線を出してアルゴン40になります。(10.7%)

エネルギーは、約1000KeV。セシウム137のエネルギーは662KeV。

試料中のカリウムの量が分かれば、カリウム40の量も分かります。

という特性を利用すれば、何とかなりそうなんですが、論文が書けそうになります。

まぁ、色々頑張ってみます。

0 件のコメント:

コメントを投稿