- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
お世話になります。
毎度レベルの低い質問ですみません。
~使い方1~3では、ご指導いただきありがとうございました。
添付ファイルをご覧いただきたいのですが、
外部入力パルスがCH1(黄色)、
LED出力がCH2(青色)になります。
8ビットシフトレジスタでしたが、現在32ビットのシフトレジスタとしています。
問題ですが、
回路駆動時に、タイマでタイミングをとっているはずの
LED出力の幅がときおり極端に短くなる場合があります。(ファイルtek0012.png)
点灯タイミングがずれると視認できてしまうため、こまっています。
どこかにバグがあると思うのですが、見つけられずにいます。
ご教示いただけると幸いです。
よろしくお願い致します。
解決済! 解決策の投稿を見る。
- ラベル:
-
PSoC 5LP
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
こんにちは、
さっと拝見しただけなのですが、
入力信号の下りエッジとパルス生成カウンタの位相がずれているような気がします。
試しに CY_ISR(freq_isr) を下記の様に変更されて
改善がみられるかお試しいただけますか?
====================
CY_ISR(freq_isr)
{
Timer_Stop() ; // <----
Timer_ReadStatusRegister() ; // <----
FreqCounter_Stop() ;
freq_count = FreqCounter_ReadCapture() ;
Timer_WritePeriod((freq_count / 32)) ;
Timer_WriteCounter(0) ;
Timer_Start() ; // <---
FreqCounter_WriteCounter(0) ;
FreqCounter_ReadStatusRegister() ;
FreqCounter_Start() ;
}
====================
moto
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
こんにちは、
さっと拝見しただけなのですが、
入力信号の下りエッジとパルス生成カウンタの位相がずれているような気がします。
試しに CY_ISR(freq_isr) を下記の様に変更されて
改善がみられるかお試しいただけますか?
====================
CY_ISR(freq_isr)
{
Timer_Stop() ; // <----
Timer_ReadStatusRegister() ; // <----
FreqCounter_Stop() ;
freq_count = FreqCounter_ReadCapture() ;
Timer_WritePeriod((freq_count / 32)) ;
Timer_WriteCounter(0) ;
Timer_Start() ; // <---
FreqCounter_WriteCounter(0) ;
FreqCounter_ReadStatusRegister() ;
FreqCounter_Start() ;
}
====================
moto
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- Permalink
- 印刷
- 不適切なコンテンツを報告
Timerが動いていたのですね。
オシロでは未確認ですが、
現状ちらつきがなくなっているように見受けられます。
ありがとうございました。