PICアセンブラコードのファイルを分割する ~分割のすゝめ~

最近雨後のたけのこのごとくPICマイコン関連の入門書が発売されています。私がPICマイコンをはじめたのはほんの数年前ですが、当時と比べても比べ物にならない印象を受けます。
また、PICマイコン入門のためのWebページも数多く存在するので、特に私がPICマイコン入門のための文章を書くことや、PIC開発環境について書くこともなかろうと思っていたのですが、アセンブラでソースコードを複数のファイルに分割する方法について説明しているサイトや書籍があまりないように感じたので簡単なメモ程度に書こうと思います。
したがって、前提として分割しない普通のPICのアセンブラでのプログラミングのやり方がわかっている人を対象としていますのであしからず。

ソースの分割の意義
・コードの使い回しが容易になる
・コードの可読性が上がる
通常ソースコードを分割するときにはある種の機能のまとまりごとに一つのファイルにまとめます。例えば、秋月電子通商などで売っているキャラクタLCDの制御ルーチンとしては、LCDの初期化、カーソルの移動、キャラクタデータの書き込みと言ったサブルーチン郡を書くでしょう。これらのサブルーチンをメインルーチンの書いてあるファイルとは別のファイルに保存しておけば、キャラクタLCDを使うほかの回路のためのプログラムを書くときにキャラクタLCD関連のサブルーチンだけを書いてあるファイルを持ってくることにより簡単に使いまわすことができます。
上記の意味では、以前に書いたプログラムからコピー&ペーストするだけでもよいと言う人もいるかもしれませんが、ほかにも可読性が上がると言う利点もあります。
他人のマイコンのプログラムを読む場合、まず最初に全体でどのような機能を果たしているのか理解してから、各部分の制御の方法を細かく見ていることになると思いますが、プログラムを書く段階から機能ごとに分割するよう心がけておけば、後から確認がしやすくなります。

今回はここまで、次回は「各ファイルの記法」について書くつもりです。

[参考文献]
電子工作の実験室 MPASMの使い方
http://www.picfun.com/asmframe.html
くまさんのホームページ 電子工作
http://www5b.biglobe.ne.jp/~kuma3/html/homemade/pic_soft.html
人力検索はてな
http://q.hatena.ne.jp/1091338800



comment

Secret

FC2カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoCCPAOPアンプPIC強磁性常微分方程式モンテカルロ解析トランジスタode状態密度DOSインターフェースecaljスイッチング回路定電流PDS5022半導体シェルスクリプト乱数レベルシフトHP6632A温度解析可変抵抗I2Cブレッドボード分散関係トランジスタ技術R6452A数値積分反強磁性バンドギャップ確率論セミナー絶縁偏微分方程式非線形方程式ソルババンド構造熱設計カオスA/DコンバータISO-I2Cフォトカプラ三端子レギュレータシュミットトリガLEDGW近似LM358アナログスイッチ数値微分TL43174HC4053マフィンティン半径発振回路サーボ直流動作点解析カレントミラーPC817CUSB単振り子bzqlty開発環境BSch2ちゃんねる電子負荷イジング模型LDAチョッパアンプ量子力学補間アセンブラFFTブラべ格子標準ロジックパラメトリック解析基本並進ベクトルewidthキュリー温度QSGWGGA失敗談MaximaSMPTLP621スイッチト・キャパシタ熱伝導コバルト相対論スピン軌道相互作用六方最密充填構造繰り返しFETランダムウォークcygwingfortran不規則合金状態方程式ラプラス方程式抵抗スレーターポーリング曲線位相図格子比熱マントルデータロガー自動計測ダイヤモンドガイガー管QNAPUPS固有値問題条件分岐井戸型ポテンシャルシュレディンガー方程式詰め回路MCU第一原理計算起電力熱力学スーパーセルVCALM555仮想結晶近似awkTLP521NE555ubuntufsolveブラウン運動OpenMPVESTA最大値テスタ差し込みグラフFXA-7020ZRWriter509三角波TLP552平均場近似最適化最小値過渡解析LMC662トランスPIC16F785CapSenseMBEナイキスト線図CK1026フィルタP-10負帰還安定性EAGLEAACircuit2SC1815OPA2277PGAノコギリ波縮退非線型方程式ソルバL10構造fcc面心立方構造結晶磁気異方性TeX全エネルギー固定スピンモーメントFSMウィグナーザイツ胞interp1ヒストグラム確率論マテリアルデザインspecx.fジバニャン方程式等高線初期値フェルミ面正規分布c/agnuplotBaO岩塩構造ルチル構造ウルツ鉱構造ZnO重積分SIC二相共存スワップ領域リジッドバンド模型半金属合金multiplotハーフメタルデバイ模型edeltquantumESPRESSOフォノンifortUbuntuマンデルブロ集合キーボードRealforce関数フィッティングフラクタルクーロン散乱CIF化学反応三次元最小二乗法日本語直流解析PCトラックボールExcelTS-110パラメータ・モデル等価回路モデルTS-112疎行列文字列HiLAPW両対数グラフ片対数グラフ熱拡散方程式陰解法境界条件連立一次方程式Crank-Nicolson法グラフの分割軸ラベルヒストグラム不規則局所モーメント入出力円周率Gimp凡例線種シンボルMAS830L

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ