2013年2月3日日曜日

LPC1114 システムクロックについて(Systick)

LPC1114FN28のシステムクロック設定の検証を続けています。
今回はSystickタイマの動作を確認することでメインクロックの動作を確認しました。

Systickタイマのサンプルコードは「lpc11xx.keil-examples-CMSIS-update.zip」にあるプロジェクト「systick」のsysticktest.cのみを利用しました。

1.Systick割り込みでGPIOのHigh/Low出力を行い。出力周波数を計測。
  1)サンプルコード systicktest.c について
    以下のコードで 10mS でSystick割り込みを実現しています。
    #define SYSTICK_DELAY  (SystemCoreClock/100)
    SysTick_Config( SYSTICK_DELAY );
  2)割り込みで呼ばれる SysTick_Handler(void)にGPIO PIO1_4のHigh/Low出力を追加。
       void SysTick_Handler(void)
       {
         int i;
         TimeTick++;
         TimeTick &= 0x7fffffff;
          i = TimeTick & 0x01;
         GPIOSetValue( 1, 4, i );
       }
  3)GPIO出力周波数測定。
    測定された周波数は40~50Hz。(自作の周波数カウンタでの結果)
    Systickの設定を 10μS にして実行 測定周波数 49700Hz
       #define SYSTICK_DELAY  (SystemCoreClock/100000)

    また、メインクロックは48MHzであった。
  こkまでの結果をみると、Systick設定、システムクロックの設定で整合性はとれているおもわれる。    。。。。?
      
 

※ユーザーマニュアル17章「システムtick タイマ」の記載「システムクロックの周波数の半分に固定されています。」 で SysTick_Config()や、SystickのRELOADに設定される値はコーディング上二分の一される必要があると思われる。

0 件のコメント:

コメントを投稿