PIC12/16F Software delay その1

PIC12/16Fでのタイマをつかわないソフトウェアでの一定時間の時間稼ぎプログラムの時間計算方法について。
考え方の基本となる、ネストが1段階の場合まで。


○ネストが1段階のとき

さしあたって、汎用レジスタの確保。
        udata   H'20'
TMP res D'1'


コード本体
LOOP
decfsz TMP,F
goto LOOP


汎用レジスタTMPは8bitなので、符号なし整数でD'0'~D'255'まで扱えますが、ディレイが最大になるのは、最初にTMPにD'0'を代入したときです。それ以外では、D'255',D'254',・・・,D'1'の順にディレイが短くなります。D'0'のときはD'256'と考えると

TMPの初期値がxであるとき、LOOPの実行サイクル数は

(i) decfszは必ず1回だけスキップを実行 : 2 cycle
(ii) decfszは(i)以外は1cycle : x-1 cycle
(iii) gotoは(ii)と同じ回数×2cycle実行 : 2(x-1) cycle
(i)~(iii)を合計して : 3x-1 cycle

        movlw   x                       ;1 cycle
movwf TMP ;1 cycle
LOOP
decfsz TMP,f
goto LOOP ;3x-1 cycle


合計すると'''3x+1 cycle'''となる。

1≦x≦256なので、
delay(max)= 3*256+1=769 cycle
delay(min)= 3*1+1=4 cycle

○cycle数と実時間の相互変換
PICの動作クロックをFOSC[Hz]とし、t[s]のソフトウェアディレイを作る場合の実行サイクル数nは以下のように求められる。

PICは、1cycleに4clockを要するので1cycleにかかる時間は

4/FOSC [s]

よって、t[s]のディレイに必要な実行サイクル数nは

n=t/(4/FOSC)=(t*FOSC)/4

4≦n≦769の条件を満たす場合、1段階のネストで実装できます。nからxをもとめるには、n=3x+1をxについてとけばよいので

x=(n-1)/3

端数はNOPで調整します。


tag: PIC アセンブラ 

comment

Secret

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

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoC強磁性CPAPICOPアンプecalj状態密度常微分方程式モンテカルロ解析トランジスタodeDOSインターフェーススイッチング回路定電流PDS5022分散関係半導体シェルスクリプト乱数レベルシフトHP6632A温度解析ブレッドボード可変抵抗I2Cトランジスタ技術R6452A確率論バンド構造セミナーバンドギャップ反強磁性数値積分熱設計絶縁非線形方程式ソルバ偏微分方程式PWscfA/Dコンバータマフィンティン半径フォトカプラカオスISO-I2CGW近似LM358LEDシュミットトリガ三端子レギュレータ74HC4053アナログスイッチUSBサーボ数値微分直流動作点解析補間カレントミラーTL431PC817C発振回路FFT電子負荷VESTA開発環境量子力学単振り子bzqlty基本並進ベクトル2ちゃんねるチョッパアンプ標準ロジックパラメトリック解析アセンブラブラべ格子BSchQuantumESPRESSOイジング模型LDA状態方程式GGA仮想結晶近似VCA熱伝導SMPスイッチト・キャパシタキュリー温度Quantum_ESPRESSOスーパーリーグTLP621トレーナーバトルewidth最適化Maxima抵抗失敗談相対論コバルト繰り返し位相図六方最密充填構造ポケモンGOスピン軌道相互作用gfortranランダムウォークFETスレーターポーリング曲線cygwinQSGW不規則合金ラプラス方程式MCU条件分岐データロガーマントルUPS固有値問題格子比熱シュレディンガー方程式熱力学詰め回路ガイガー管QNAP井戸型ポテンシャルダイヤモンドOpenMPTLP521ハーフメタルLM555ubuntu平均場近似ブラウン運動フェルミ面NE555ZnOゼーベック係数TLP552xcrysdenCIF最小値最大値awkfsolveテスタ第一原理計算Ubuntu差し込みグラフFXA-7020ZR三角波過渡解析Writer509自動計測スーパーセル起電力トランスCK1026MAS830LフィルタPGAP-10MBEOPA2277ナイキスト線図ノコギリ波AACircuitEAGLE2SC1815PIC16F785LMC662CapSense負帰還安定性入出力固定スピンモーメントFSMTeX結晶磁気異方性全エネルギーc/a合金multiplotgnuplot非線型方程式ソルバL10構造正規分布等高線ジバニャン方程式初期値interp1fcc面心立方構造ウィグナーザイツ胞半金属デバイ模型磁気モーメント電荷密度重積分SIC不純物問題擬ポテンシャル状態図cif2cellPWgui二相共存ウルツ鉱構造edeltquantumESPRESSOフォノンリジッドバンド模型スワップ領域BaO岩塩構造ルチル構造ヒストグラム確率論マテリアルデザインフラクタルマンデルブロ集合キーボードRealforceクーロン散乱三次元疎行列縮退化学反応関数フィッティング最小二乗法Excel直流解析PCTS-110TS-112日本語パラメータ・モデル等価回路モデル文字列不規則局所モーメント陰解法熱拡散方程式HiLAPWCrank-Nicolson法連立一次方程式specx.fifort境界条件両対数グラフ片対数グラフGimp円周率ヒストグラムシンボル線種グラフの分割軸ラベル凡例トラックボール

最新コメント
リンク

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