« AVRでTNC(6) | トップページ | AVRでTNC(8) »

2008年8月13日 (水)

AVRでTNC(7)

昨日に引き続き、本日もAVRでTNCに挑戦しました。昨日のブログに書いた不具合の原因が、以前気になっていたタイマ割込み機能にあることが判明し、プログラムを組みなおしたところ、東工大のブログに掲載されていたサンプルサウンドから、やっとSRLLのヘッダ4バイトを正しく取得することが出来ました。
1200分の1秒タイマ割込みを発生させるために、昨日までのプログラムでは特殊なレジスタに設定した値になると割込みが生ずるというCTC割込みという機能を使っていました。以前使用したAVRにはこの機能は無く、タイマオーバーフローによる割込みで対応していました。CTC割込みは本来PWMを発生させるためのものであるので、CTCをやめてオーバーフローによる割込みを使用するようにプログラムを変更したところ、SRLLのヘッダを確認することができたしだいです。使い慣れた機能を利用したことが、解決の糸口となりました。
本日は、これに続いてスクランブルを解除する機能まで進むことが出来ました。後残っているのが、インターリーブへの対処と、誤り訂正です。Ver.1のTNCでもそうでしたが、この2つが最大の難関です。Ver.1と異なり、SRLLのVer.2ではパケット長が32、64、96の3種類に対応しないといけないので、時間がかかりそうです。
Ax.25のデコードであれば、それほど手間がかからずにできそうですが、SRLLの受信を成功させてから、モデムIC無しへの挑戦と同時に、Ax.25についても考えてみようと思います。

|

« AVRでTNC(6) | トップページ | AVRでTNC(8) »

ワンチップマイコン」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: AVRでTNC(7):

« AVRでTNC(6) | トップページ | AVRでTNC(8) »