PSoC4

2015/06/07からのアクセス回数 4328

参考資料

基板付き体験編 ARM PSoCで作るMyスペシャル・マイコン に倣って、LEDチカチカ(ソフト版)を試してみます。

プロジェクトの作成

PSoC4/LEDチカチカ(ハード版)と同様に新しいプロジェクトをPSoC4_LED_Interruptという名前で作成します。

TopDesignでPorts and PinsからDigital Output Pinをドラッグし、ダブルクリックでConfigureを開き、 以下の様に名前をLEDとし、HW connectionのチェックを外します。

th_LED_Cfg.jpg

次にPSoC4_LED_INterrupt.cydwrを開き、PinsタグでLEDにP1[6]を割り当てます。

システムのクロックの設定には、Clocksタブを開きEdit Clock...をクリックして、

th_Edit_Clock.jpg

以下の様に内蔵発振回路(IMO)を使って最高の48MHzにセットします。

th_Clock_Setting.jpg

ビルド

main.cを編集する前に、ハード構成だけでビルドをします。 Build→Build PSoC4_LED_interruptを選択します。

次にmain.cをダブルクリックして、以下の様に編集し、再度ビルドします。

  • CLOCK_FREQ=48000000, INT_FREQ=1000で1m秒での割込とします
  • CY_ISRは割込関数を定義するときに使用するマクロです
  • CyIntSetSysVectorでSysTickの割込ベクタ15にSysTick_Handlerをセットします
  • SysTick_Configで割込間隔をセットします
  • CyGlobalIntEnableマクロで割込可能にします
#include <project.h>

#define     CLOCK_FREQ     48000000L     // クロック周波数
#define     INT_FREQ     1000          // 割り込み周波数
volatile uint32 gTick = 0;

// SysTick Interrupt Handler
CY_ISR(SysTick_Handler)
{
     gTick++;
}

// Delay Routine
void Delay(uint32 tick_delay)
{
     uint32 tick_entry = gTick;
     // wait for tick
     while ((gTick - tick_entry) < tick_delay)
          continue;
}
int main()
{
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    
     // Set the SysTick Interrupt Vector (=15) in Vector Table in RAM
     CyIntSetSysVector(15, (cyisraddress)SysTick_Handler);
     // Start SysTick periodic Interrupt
     SysTick_Config(CLOCK_FREQ/INT_FREQ);     // SysTick=1000Hz(1ms)
     // Enable global interrupts
    CyGlobalIntEnable;
    for(;;)
    {
        /* Place your application code here. */
          LED_Write(~LED_Read());     // Toggle LED Terminal
          Delay(500);
    }
}

プログラムの書き込み

Debug→Programでプログラムが書き込まれます。

コメント

選択肢 投票
おもしろかった 1  
そうでもない 1  
わかりずらい 0  

皆様のご意見、ご希望をお待ちしております。勉強会で分からなかったこと等、お気軽に問い合わせて下さい。

スパム防止に画像の文字列も入力してください。


(Input image string)


添付ファイル: fileth_LED_Cfg.jpg 1011件 [詳細] fileth_Edit_Clock.jpg 1051件 [詳細] fileth_Clock_Setting.jpg 1031件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-01-15 (日) 12:49:48 (468d)
SmartDoc