- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
CY9BF116RPMCのタイマについてお聞きしたいです。
ベースタイマを16/32ビットリロードタイマのワンショットモードで使用した場合に,起動からアンダーフロー発生までの時間に対して,カウント値の設定はタイマ起動のオーバーヘッド分を考慮して設定する必要がありますでしょうか。
ベースタイマを使用し,信号出力のON時間を制御していますが,タイマ周期設定値よりもON時間が1.5us程度長くなっています。タイマ周期設定値を大きくしても,増加分はほぼ一定であり,タイマ起動のレジスタ操作からタイマが動き出すまでに1.5us程度の遅延(オーバーヘッド)があるように見受けられます。
STRGをONしてからタイマが起動するまでに遅延時間は存在するのでしょうか。また、遅延時間が存在する場合,その数値はいくつでしょうか(遅延時間が存在する場合,必ず一定でしょうか)。
よろしくお願いします。
解決済! 解決策の投稿を見る。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
今回のオーバーヘッド”1.5us”は①~②のソフトウェア処理(レジスターセット)に対する時間と考えられます。
(タイマーの時間を長くしても、ソフトウェア処理が変わらない,且つ割込み等が発生していないのであれば”1.5us”も一定)
今回の目的がはっきりしませんが、もしタイマーの誤差を確認したい場合、HWトリガーを使用し、タイマーの出力を見ることにより確認可能と考えます。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
今回の時間の測定はどの様に行われているのでしょうか?
もしGPIOをトグルさせてオシロスコープ等で確認されているのでしょうか?
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
ご回答ありがとうございます。
具体的には、
初期設定
TMCR = 0x0036
TMCR2 = 0x00
STC = 0x00
PCSR = 0x0081 ← 72MHzの1分周で129カウント
= 約1.8usとなるように設定
---------------①--------------- ←信号出力ON
●タイマ起動時
TMCR_f.CTEN = ON
STC_f.TGIR = OFF
STC_f.UDIR = OFF
TMCR_f.STRG = ON
●アンダーフロー検出
STCレジスタのUDIRビット = 1で検出
---------------②--------------- ←信号出力OFF
としてオシロで確認しています。
確認方法が誤っている(もしくはこうしたほうがいいなどのアドバイス)があればおっしゃってください。
よろしくお願いします。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
今回のオーバーヘッド”1.5us”は①~②のソフトウェア処理(レジスターセット)に対する時間と考えられます。
(タイマーの時間を長くしても、ソフトウェア処理が変わらない,且つ割込み等が発生していないのであれば”1.5us”も一定)
今回の目的がはっきりしませんが、もしタイマーの誤差を確認したい場合、HWトリガーを使用し、タイマーの出力を見ることにより確認可能と考えます。