- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
WDTについてしえて下さい。
Low Frequency ClocksでILO,WCOを有効にしてLFCLKはILOを選択しています。
LFCLKはBLEとWDTで使用しています。
本来は、LFCLKをWCOとしたいのですがそうすると500msのWAITが入ってしまいイニシャル時の他との通信が間に合わないのでそのようにしています。
他との通信終了後にLFCLKをILO→WCOに変更しています。
CySysWdtDisable(CY_SYS_WDT_COUNTER0_MASK); → 他との通信の際にはWDTはいらないので無効にする。
他との通信処理
CySysClkSetLfclkSource(CY_SYS_CLK_LFCLK_SRC_WCO); → ILO→WCOに切替え
CySysClkIloStop(); → ILOを停止
CySysWdtEnable(CY_SYS_WDT_COUNTER0_MASK); → WDTを有効にする。
while(1);
上記だとWDTがかかりません。
CySysClkSetLfclkSourceとCySysClkIloStopをコメントにするとWDTがかかります。
おそらくWDTのソースをILO→WCOに変更するような処理が必要なのだと思いますがどのように変更すれば宜しいでしょうか?
解決済! 解決策の投稿を見る。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
CYBLE-222014-01であれば、WCOをWDTに使用していただいて問題ありません。
加えて、WCOが起動していない可能性がございます。
WCO使用時に、CySysClkWcoStart()は呼び出されておりますでしょうか。
必要となるAPIについては、以下のKBAをご参照ください。
Infineon Technologies
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
WDTを使用する際にはまず、IgnoreBitやMatch値を設定やInterruptのクリアをする必要があります。WDTの実装に必要となるAPIと一連の流れについては一度Code Exampleにてご確認ください。
https://github.com/Infineon/mtb-example-psoc4-wdt/blob/master/README.md
Infineon Technologies
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
このExampleのmain.cで使用されている関数はどこを見れば詳細がわかるのでしょうか?
例えば、Cy_WDT_ClearInterrupt,Cy_WDT_UnmaskInterrupt,Cy_WDT_SetMatchなどです。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
まず初めにどちらのデバイスを使用されているかご確認させていただいてもよろしいでしょうか。
デバイスによってはWDTにWCOを使用できない場合がございます。
Infineon Technologies
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
CYBLE-222014-01になります。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
CYBLE-222014-01であれば、WCOをWDTに使用していただいて問題ありません。
加えて、WCOが起動していない可能性がございます。
WCO使用時に、CySysClkWcoStart()は呼び出されておりますでしょうか。
必要となるAPIについては、以下のKBAをご参照ください。
Infineon Technologies