ピグとかピコとかいろいろ -3ページ目
78K0/Ke2 シュミレータ
タイマ50を使用して割り込みデバッグポートでLEDを点滅させる

8000000 ÷ 2^13(8192) = 976hz
1 ÷ 976 = 0.001(1secごとにカウント)
0.001 * 96 =100msec

Applilet設定



メイン・システム・クロック  
サブクロック          
高速内蔵発振器クロック  
低速内蔵発振器クロック  
CPUクロック         
オンチップデバッグ     
ウォッチドックタイマ     




高速内蔵発振器
使用しない
8Mhz
240Khz
8000Khz(fxp)
使用する
使用しない

タイマ設定 TM50 方形波出力 100msec

ソースコードの変更
void main (void)
{
   // 追加
  PM1 = 0b00000000;
  P1 = 0b00000000;.
  TM50_Start();
  while (1);
}

__interrupt void MD_INTTM50( void )
{
  // 以下追加
  static unsigned char cnt;
  if (P1.0) {
    P1.0 = 0;
  } else {
    P1.0 = 1;
  }

  if (cnt ++ >= 10) {
   if (P1.1) {
     P1.1 = 0;
    } else {
     P1.1 = 1;
    }
   cnt = 0;
  }
}


ビルド&デバッガ(シュミレータ)の起動

XXXのブログ

OKをクリック

XXXのブログ


「はい」をクリック

XXXのブログ



以下のようなシュミレータデバッガが表示されます

XXXのブログ

「シュミレータ」→「入出力パネル」を選択

XXXのブログ

「部品」→「LED」で入出力パネルに貼り付ける

XXXのブログ

右クリックプロパティで端子を「P10」と「P11」とする XXXのブログ





実行ボタンで実行しP10のLEDが点滅しおよそ10回でP11が点滅する

XXXのブログ XXXのブログ

ブレークポイントを設定する

XXXのブログ

編集→時間→ミリ秒と設定

右クリックで端子をP10とP11を選択する
マーカAを配置しP10のFailling Edgeの一番最初を検索する

マーカBを配置しP10のRising Edgeの一番最初を検索する

図を見るとAとBのマーカ間が99.ミリ秒と設定した約100msecであることが分かる

XXXのブログ

「実行」→「無条件トレーサ」を選択


「オプション」→「トレーサオン」を選択

「ブラウズ」→「トレース」で「TraceView」が表示される


アセンブルしたコードやアドレス、データ値など確認できる

XXXのブログ