このブログは@knight@のロボット・電子工作方面の活動を書いてるサイトです。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
現在フルカラーLEDスタンドの作成で疑似CCPによる色の変化を試みています
<疑似CCP>
CCPは出力をパルス波長にして対象に信号を送るものでサーボのPWM制御もこれを使うことですることが出来ます
今回はそれを応用して出力をLEDへの出力を調整することが目的です
しかしPICには1つのPICに対し大体CCPは1つしかないので複数の対象を制御するには足りなくなってしまいます
そこでそのCCPを「機能」としてはでなく「プログラム」で再現しようとするのがその仕組みです
必要なのはTIMERレジスタと各種変数レジスタで割り込み許可が必須です
流れは多く区分けて2つ、
<変数処理>
1、各種変数設定・タイマースタート・RGBピン=オン
2、RGB限界数値変更
3、処理停止(NOP)
4、2へ戻る
<RGB割り込み処理>
1、指定変数(RBG各変数)=>タイマー
※「~以上」に設定しているがもしものときは「同等」に変更予定
2、RGB出力をOFFに
3、割り込み終わり
<1周期割り込み処理>
1、1周期変数変数=>タイマー
2、RGB=オン
3、タイマー=0
4、割り込み終了
結構処理速を求めるので20MHzセラロックを搭載予定
完成は今週中を予定
<疑似CCP>
CCPは出力をパルス波長にして対象に信号を送るものでサーボのPWM制御もこれを使うことですることが出来ます
今回はそれを応用して出力をLEDへの出力を調整することが目的です
しかしPICには1つのPICに対し大体CCPは1つしかないので複数の対象を制御するには足りなくなってしまいます
そこでそのCCPを「機能」としてはでなく「プログラム」で再現しようとするのがその仕組みです
必要なのはTIMERレジスタと各種変数レジスタで割り込み許可が必須です
流れは多く区分けて2つ、
<変数処理>
1、各種変数設定・タイマースタート・RGBピン=オン
2、RGB限界数値変更
3、処理停止(NOP)
4、2へ戻る
<RGB割り込み処理>
1、指定変数(RBG各変数)=>タイマー
※「~以上」に設定しているがもしものときは「同等」に変更予定
2、RGB出力をOFFに
3、割り込み終わり
<1周期割り込み処理>
1、1周期変数変数=>タイマー
2、RGB=オン
3、タイマー=0
4、割り込み終了
結構処理速を求めるので20MHzセラロックを搭載予定
完成は今週中を予定
PR
この記事にコメントする