2010年02月14日

続 アンテナアナライザー

DSC01827.jpg     DSC01828.jpg


だいぶ時間がたってしまいましたが、取りあえず予備実験を経て
基板を書いてエッチングして、今日は、H/Wの組み立てがほぼ終わり
S/Wの検討をしていました。と言っても2時間ほどですが。
心配したDDS AD9851は今回初めて使ったのですが、以外に簡単に
動作しました。これまで使っていたAD9834より制御は簡単でした。
電流を食うのが問題なんですが、今回は50MHz帯のアンテナにも使え
たらと欲を出しています。
予備実験で、単精度の浮動小数点で計算すると、比較的正確な
結果が得られていたので、これを完成させようとやっていたの
ですが、インピーダンス計算、DDS制御、LCD表示など個別機能は
それぞれちゃんと動作するのですが、全部をつなげると暴走して
しまいます。
おそらく、RAMが足らなくて、上書きしてしまい、いい加減な値と
なって暴走するのだろうと、テンポラリーな変数は纏めてしまっ
てできるだけ変数の量を減らしていくと大体動作するようになり
ました。
従って、現時点ではSWRの計算部分がまだつながっていません。
プログラム自体は、4Kをちょっと超えた程度しかないのですが、
RAMエリアは1KB以上使っていることになります。
以前、このコンパイラはRAMエリアを越えるような変数宣言をする
と、アラームを出してエラーを出していたのですが、今回は
エラーは出ずに、RUNで暴走となっています。
プログラムを楽しようとすれば、オーバーメモリーですが、
RAMが2KBあるATMega328を使う方がいいようです。今は168を
使っています。
基板の状況は、上の写真の様な状態です。
posted by ja6irk at 23:04| Comment(2) | TrackBack(0) | AVR&BASIC
この記事へのコメント
岩永さん、こんばんは。

だんだん出来て来ましたね。 コンパイル時にエラーが
出ないのは、その時点ではオーバーしていないからかも
知れませんね。 割り込みの発生によって、RAMを使う
ようになるとオーバーして・・・・暴走でしょうか??

mega328も安価ですから、取りあえずは交換する手が
簡単で良さそうですね。hi hi
Posted by JA9TTT/1 加藤 at 2010年02月24日 21:01
TTT 加藤さんコメント有り難うございます。
その通りなんです。シミュレータで一ステップずつ見ていくとタイマ割り込みでスタックオーバー フローとなります。
このコンパイラは、割り込みで使ってるかどうかにかかわらず、全てのレジスタをpush popしますからね!
今日、行けたら328を買って帰ります。
Posted by jn3xby@岩永 at 2010年02月26日 08:34
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/35316688

この記事へのトラックバック