Community Translation - Using Additional Timers in PSoC 4S Series – KBA230963

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi,               

I would like to translate KBA230963 into Japanese.

Please confirm to my work.

Thanks,

Kenshow

0 Likes
2 Replies
JennaJo
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi, Kenshow-san

Confirm to work this KBA.

Thanks

Jenna

Jenna Jo
0 Likes
Kenshow
Level 8
Level 8
Distributor - Marubun (Japan)
50 solutions authored 25 solutions authored 10 solutions authored

Hi Jenna-san,

                                

Japanese translation was over.
Please check below.

Original KBA:

Using Additional Timers in PSoC 4S Series – KBA230963

Thanks.

Kenshow

==============================

タイトル: PSoC 4Sシリーズで追加のタイマーを使用する – KBA230963

バージョン:**

質問: PSoC® 4Sシリーズでどのように「タイマーの追加」を行えばよろしいでしょうか?

回答:ウォッチドッグタイマー(WDT)は、予期しないファームウェア実行パスまたはCPUの機能を危険にさらす電圧低下がある場合に、デバイスを自動的にリセットするために使用されます。WDTは、ILOによって生成されたLFCLKから実行されます。タイマーは、リセットを回避するためにファームウェアで定期的に処理する必要があります。そうしない場合には、タイマーが経過してデバイスがリセットされます。WDTは、低電力モードで割り込みソースまたはウェイクアップソースとして使用できます。

WDTの他に、WDT0WDT1、およびWDT23つの追加の汎用タイマーがあります。これらの3つのタイマーは、ILOまたはWCOからクロック供給され、WCO_WDT_CLKENレジスタへの書き込みによって選択されます。これらのタイマーは、アクティブ、スリープ、およびディープスリープモードで実行でき、割り込みを生成できます。

1.デフォルトのシステムクロックの設定

pastedImage_5.png  

                         

Timer01 Hzタイマーとして構成する2は、デフォルトでILOを使用します)

解決策1

2示すように、クロックエディターを使用して構成します

2. 設定後にシステムクロックを構成する

     pastedImage_6.png

プロジェクトのビルド中に、プロジェクトの基礎となるコードは、cyfitter_cfg.cファイルのstatic void ClockSetup(void)APIでクロック構成情報を生成します

main.cファイル、コールバック関数を呼び出し、次のコードスニペットに示すように、タイマカウンターを有効にする必要があります。

    /* 特定のDeepSleepタイマーカウンターのISRコールバック関数を設定します */

CySysTimerSetInterruptCallback(CY_SYS_TIMER0 Timer0_1s_isr;

/* 指定したDeepSleepタイマーカウンターを有効にします */

CySysTimerEnable(CY_SYS_TIMER0_MASK );

その後、デバイスは1秒ごとにvoid Timer0_1s_isrvoid APIで実行されます。

解決策2

クロックエディターでは設定を行わず、次のコードを使用してタイマーを構成します。

void Timer0_1s_isr(void

{

  

//ユーザーはここにアプリケーションコードを配置できます。割り込みが発生すると、コードはここにジャンプします。

}

#define ENABLE_WDT_TIMER0_IN_CLICKEDITOR   (0u)

    #if (!ENABLE_WDT_TIMER0_IN_CLICKEDITOR )

    /* ここでタイマーソースを設定し、WCOまたはILOを選択 */

CySysClkSetTimerSource(CY_SYS_CLK_TIMER_SRC_ILO);

/* タイマーモード、フリーランニングまたは割り込み、カウンター01の一致で生成される割り込み、counter2のビットトグルで設定します */

CySysTimerSetMode(CY_SYS_TIMER0, CY_SYS_TIMER_MODE_INT );

/* サイクルを取得するためにmatch値を使用します */

CySysTimerSetMatch(CY_SYS_TIMER0, 0x9C3E );

    /* ビットを有効にする:0 - カウンターフリーラン; 1 – match上のカウンターをクリア */

CySysTimerSetClearOnMatch(CY_SYS_TIMER0, 1);

  

    #endif

    /* 特定のDeepSleepタイマーカウンターのISRコールバック関数を設定します */

CySysTimerSetInterruptCallback(CY_SYS_TIMER0, Timer0_1s_isr);

/* 指定したDeepSleepタイマーカウンターを有効にします */

CySysTimerEnable(CY_SYS_TIMER0_MASK );

==============================

10-August-2020

  Kenshow