PSoC® 3/PSoC 5LP ウェイクアップソースとしてのスリープタイマ (Sleep Timer) - KBA90926 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by MoTa_728816 Version: **
Translation - English: Sleep Timer as a Wake-Up Source in PSoC® 3 and PSoC 5LP – KBA90926
質問:PSoC 3 や PSoC 5LP でスリープタイマ (Sleep Timer) をウェイクアップソースとして使用する場合に注意する事は何ですか?
回答:
PSoC 3 や PSoC 5LP ではスリープタイマ (Sleep Timer) はオルタネートアクティブモードやスリープモードからのウェイクアップソースとして使用することが可能です。それは 1-kHz の内蔵低周波発振器 (ILO) に基づく、セントラルタイマホイール (CTW) を使用します。下図が PSoC Creator™で使用できる Sleep Timer コンポーネントです:
重要:
Sleep Timer がウェイクアップソースとして使用される場合、Sleep Timer が割込みを発生する度に SleepTimer_GetStatus API をコールする必要があります。Sleep Timer による割込み時に SleepTimer_GetStatus() 関数が呼ばれないと割込みがクリアされません。割込みから抜けたとたんに再度割込みに入ってしまいます。この関数は Sleep Timer の ISR 内に記述することが可能です。
SleepTimer_GetStatus() 関数は内部で CyPmReadStatus 関数を CY_PM_INT_SR_REG ステータスレジスタの2番目のビット CY_PM_CTW_INT を引数としてコールします。このステータスレジスタは FTW や OPPS 等他のイベントのステータスも含んでいますが、CTW イベントのマスクビットが渡されるために、CTW イベントに関係したビットのみがクリアされます。結果として CTW 割込みステータスがクリアされます。
Sleep Timer コンポーネントを正しく動作させるために、毎回デバイスがウェイクアップした時と毎回 Sleep Timer 割込みが発生した時には SleepTimer_GetStatus() 関数をコールする必要があります。