マイクロコントローラ回路
マイクロコントローラ回路
Jump to TINA Main Page & General Information
TINAはたくさんのPIC、AVR、Arduino, 8051、HCS、STM、ARM、TI-Tiva、TI-Sitara、Infineon-XMC)マイクロコントローラー; 新しいMCUは絶えず追加されています。 プロセッサで実行されているプログラムを表示、変更、およびデバッグできます。もちろん、独自のコードを作成することもできます。
TINAのマイクロコントローラにプログラムを提供する方法は2つあります。 標準コンパイラ(MPLAB for PICなど)で作成されたバイナリコードとデバッグファイルを使用することも、組み込みのアセンブラデバッガを使用してTINAで実行およびデバッグするためにアセンブリコードをロードすることもできます。
TINAでは、マイクロコントローラを単独でシミュレーションすることはできませんが、アナログ、デジタル、HDLまたは他のモデルと一緒にシミュレーションすることもできます。
MCUコードの実行と編集
ExamplesMicrocontrollersPicフォルダからPIC Flasher.TSC回路をロードします。
16F73 PICマイクロコントローラを使用した次の回路図は、16F73 PICマイクロコントローラと一緒に表示されます。
この回路は単純に順方向に1つずつカウントします。 を押す
ディスプレイは1つずつ進みます。
MCUをダブルクリックして、その中のASMコードを確認します。 (クイックスタートマニュアルの詳細を参照してください)。
TINAには、TINAで直接ソースコードを編集したり変更したりできる素晴らしい機能があります。
コードを次のように変更しましょう。
25行の(上で選択した)命令を変更します(コードエディタウィンドウの右下に行番号が表示されます)。
addlwからの01H
02Hを追加する方法
を押して、変更したコードをTINAに保存します。
を押すと
変更されたコードは自動的にTINAの.TSCファイルに保存されます。
デバッガを使う
もっと対話的な別のアプリケーションを見てみましょう。
ExamplesMicrocontrollersPicフォルダーからTINAのPIC16F84interrupt_rb0.TSC例をロードします。
ただし、SW-HL1スイッチをクリックすると、スイッチがLowからHighに変わるたびに1ずつ表示が進みます。
PICの割り込み処理機能により、スイッチの変更を検出できます。
次に、TINAのインタラクティブASMデバッガーを使用して操作を詳しく見てみましょう。
デバッガーをアクティブ化するには、[分析]メニューの[オプション]を選択します。 次に、以下の[分析オプション]ダイアログボックスに示すように、[MCUコードデバッガーを有効にする]チェックボックスを設定します。
OKボタンを押すと、MCUデバッガが表示されます。
を押して、プログラムの実行を段階的に見ていきましょう。
14をクリックした後、プログラムが無限ループに入っているように見えるPT1:ラベルに移動します。
PT1:INCF TEMP、F GOTO PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
COUNTERをインクリメントしてポートAにコピーすると、出力は1になります。 この後、プログラムはPT1の「無限ループ」に戻ります。
デバッガでコードを編集する
それでは、デバッガの使い方を示すためにプログラムを少し変更しましょう。 次のようにコピー&ペーストを使用してINCF COUNTER、Fステートメントを複製します。
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
今押すと
はいを押して
また、デバッガの連続実行モードで回路をチェックすることもできます。
デバッガは高速で実行されますが、スイッチを変更すると、「無限サイクル」が表示された後、割り込みサーバ部(INT_SERV:)にジャンプすることがあります。
ブレークポイントを作る
ステップバイステップモードを使用すると、プログラムの特定のポイントに到達することが不可能になることがよくあります。 たとえあなたが1000歩を踏み出すのに十分な忍耐力を持っていたとしても、プログラムの流れがあなたが望むところへ踏み出すことを可能にしないかもしれません。
特定の行で停止するには、「ブレークポイント」を設定してターゲットステートメントをマークできます。
を使用して、デバッガの連続モードでプログラムを実行します。
これを実証するには、INT_SERV:ラベルの後にある割り込みサーバーのincrementステートメントをクリックして
今すぐ
ブレークポイントを設定しても、コードの実行はブレークポイントに到達しないため停止しません。 ただし、スイッチをLowからHighに変更すると、プログラムはマークされた文で停止します。
INT_SERV: INCF COUNTER, F
今、あなたは一歩一歩どちらかを続けることができます