- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
CY8CKIT-145向け環境(CY8CKIT-145 Code Example.zip)でSleepとTimerを使ったサンプルコードが欲しいです。
Sleepは cyLib.h の void CyDelayUs() でしょうか?
Timerは [Cypress Component Catalog] - [Digital] - [Function] -[Timer Counter(TCPWM mode)]、[Timer Counter PWM(TCPWM]の
コンポーネントを追加しましたが、Terminal "clock" requires connection when it is bisible.というエラーが発生します。
TCPWM_P4_v2_10.pdf を確認しましたが、clock への接続方法が良く分かりませんでした。
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
One-shotのタイマーを張って、その(タイマー時間満了)割り込みを使用するのはどうでしょうか。
CE195385 – PSoC 4 TCPWM Periodic Interruptは周期的にタイマー割り込みを発生させLEDを点滅させるCEですが、
これをボタン押下後、(1秒)タイマーをスタートさせ、その割り込みをトリガとして次の動作をさせるは如何でしょうか。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
先ず前提として、御質問にSleepとTimerを使ったサンプルコードとありますが、具体的にどの様な動作、仕様を想定されていますか?
例えばWDTを使用していますが、
CE210290 - PSoC 4 CapSense Low-Power Ganged Sensor
CE210291 - PSoC® 4 CapSense® Low-Power One Button
があります。
一度ご確認ください。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
SleepもTimerもどちらも 数秒処理を遅らせる動作 を行いたいです。
具体的にはWatchDocTimerではなく、
ボタン押下検出後、1秒後に音を鳴らす 等の動作を追加したいです。
処理A
xxxxTimerStart(1000); // 1秒タイマ開始
:
void xxxxTimeOut() // 1秒経過後処理
{
処理B
}
CE210290、CE210291は確認します。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
CE210290、CE210291を確認しましたが、以下が分かりませんでした。
どこでタイマ時間を指定するのか?
タイムアウト時に何のAPIが呼び出されるのか?
タイマ時間は追加したタイマコンポーネントのconfigure 'Timer_1'
Timer/Counter Tab の Period の Register(Default=65535)でしょうか?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
タイマ時間はTimer/Counter Tab の Periodで設定可能です。
(下記はCE195385 – PSoC 4 TCPWM Periodic InterruptでのTimer Configurationです)
前回CE210290、CE210291を紹介いたしましたが、これはただ単に例であって、所望のシステムではないと認識しています。
再度ではございますが、詳細を頂けないでしょうか?
ボタン押下後、1秒のタイマーを張って音を鳴らしたい。その時Sleepはどのようにお考えか?
SleepはLow-power modeの認識ですが会ってますか?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
説明不足で申し訳御座いません。
私の言うSleepは省電力(Low-Power)用途ではなく、処理遅延(Deley)用途です。
具体例としては以下になります。
ボタン押下後、1秒のタイマーを張って音Aを鳴らし(*)、
0.5秒遅延後(Delay)にバイブを振動させる(*)。
(*)任意のポートをHi/Lowさせる
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
あとPeriodで設定したタイマー時間満了後の検知方法 or
呼び出されるAPI名について教えて下さい。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
One-shotのタイマーを張って、その(タイマー時間満了)割り込みを使用するのはどうでしょうか。
CE195385 – PSoC 4 TCPWM Periodic Interruptは周期的にタイマー割り込みを発生させLEDを点滅させるCEですが、
これをボタン押下後、(1秒)タイマーをスタートさせ、その割り込みをトリガとして次の動作をさせるは如何でしょうか。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
TimerコンポーネントにInterruptコンポーネントを追加し、
1回(One shot) 1秒でInterrupt関数が呼ばれる事を確認出来ました。
ただ、TimerコンポーネントはDigital/Functions配下、
Clock,InterruptコンポーネントはSystem配下と場所が異なっており、
見つけるのに時間が必要でした。
又、通常の処理遅延はcyLib.h のCyDelay(1000)で1秒遅れる事を確認しました。
Timer及びDelay処理動作を確認出来、問題解決しましたので、本件Closeします。