CY3210-MiniEval上のPORT0_1につながっている半固定抵抗の電圧を、いちばん簡単な6bit-ADCことSAR6で読んでみた。
まだ使ってないけど、User Modules見ると12bitや14bitのADCもある。あとでやる。
プログラムよりもDevice Editorでの結線が大変だったけど勉強になった。
■ビデオ
■ソースコード一式
Source Code (PSoC Designer 4.3 + ImageCraft C Compiler)
CY3210-MiniEval上のPORT0_1につながっている半固定抵抗の電圧を、いちばん簡単な6bit-ADCことSAR6で読んでみた。
まだ使ってないけど、User Modules見ると12bitや14bitのADCもある。あとでやる。
プログラムよりもDevice Editorでの結線が大変だったけど勉強になった。
■ビデオ
■ソースコード一式
Source Code (PSoC Designer 4.3 + ImageCraft C Compiler)
これを使うと、Skypeを操れる。GoogleEarth COM APIの時と同じ様に、自分の作ったアプリケーションからリモートコントロールできる
サンプルルン
Source Code(VisualStudio2005 C#2.0)
■準備
Skype4COMからSkype4COM.dllとドキュメントをダウンロードしてきて、dllを適当な所に置く。
(c:\lib\Skype4COM.dllに置いた)
そしてDLLを登録する
コマンドプロンプトで
regsvr32 c:\lib\skype4com.dll
するとVisualStudioの ツールボックス→アイテムの選択 で追加できるようになっている。
Formにドラッグアンドドロップすれば初期化やパスなどは処理してくれるのでok
AxSKYPE4COMLibとSKYPE4COMLibの名前空間が使えるようになっている。
■プログラムを書く
C#でやってみる。
まずSkypeと自作のアプリを接続する。
axSkype1.Attach();
Attach()はプロトコルバージョンを指定する事もできるが、引数無しでも動いた。
Attachすると、初回はダイアログが出るので「許可します」を選ぶ。
そしてコールする
axSkype1.PlaceCall(“echo123”);
コールは引数4つのメソッドもあって、4人同時に呼べる。
相手が取ってくれれば通話できる。
CY3210-MiniEval基盤にCY8C29466マイコンを置いて、16ビットタイマーを4つ置いて動かした。
1秒毎?ぐらいで動かしてみたが、動いたは動いたけどまだ正確な仕組みがわからない。特にクロックの分周まわり。
ちなみに16bitタイマーはデジタルブロックを2つ消費するので、29466では同時に8個まで使える。
今回はPSoC CPU 基板 (ストロベリーリナックス社) – 趣味の電子工作研究工房 – 楽天ブログ(Blog)がとても参考になった。
■今回のコード
Source Code (PSoC Designer4.3 + C Compiler)
■タイマーの配置とクロック設定
Device EditorのUser Module Selection Viewから選択してくる。
CQ出版のMakeみたいな雑誌「エレキジャック」のblog
その右下、ismlogとs.h.logが。
このXPortの本の関連blog、という事らしい。読んだこと無いけど。
前の記事s.h.log: PSoC Designer – CY8C29466でスイッチ入力と同じ動作を、割り込みでやってみた。
基盤も同じくCY3210-MiniEvalを使った。
動き方もまったく同じのを作っちゃったのでビデオは省略。ただスイッチの扱い方が違うだけ。
SourceCode (PSoC Designer 4.3 + C Compiler)
■動作設定
Device EditorのInterconnect Viewで
基本的にs.h.log: PSoC Designer – CY8C29466でスイッチ入力と同じだが、
タクトスイッチの接続されているPORT2-4のInterruptをFailingEdgeにする。
割り込みの仕方は3種類あり、
・FailingEdge → 立下り割り込み
・RisingEdge → 立ち上がり割り込み
・ChangeFromRead → 両エッジ変化割り込み
から選ぶ。
AVRのSIG_INTERRUPT0、SIG_INTERRUPT1はそれぞれINT0, INT1ピンの状態が変化を監視する外部入力割り込みだが、
PSoCの外部入力割込みはAVRのSIG_PIN_CHANGEの方と同じく、どのピンに変化があっても割り込みが発生してしまう。
だから、複数のピンの割り込みを有効にする場合は実際にどのピンの変化が割り込みを発生させたのか?をいちいち確認しなければならない。今回はマスクレジスタで1つのピン(PORT2-4)だけをenableにしているので必要ないけど。
軽くまとめると、PSoCの割り込みの設定は
・マスクレジスタで「どのピンの変化を監視するか」を指定
・ピン毎に「立ち上がり/下がり/両方の、どの条件で割り込むか」を指定
できる。でもこれはPSoC Designerが自動生成してくれるので下手に触る必要は無い。
マスクで複数enableに指定した場合は、実際にどのピンが反応したか?はプログラミングでなんとかする。(1回前のPRTnDRの状態をglobal変数に保存しておいて比較するとか)
この辺ははじめてのPSoCマイコンの「入出力&割り込みのしくみとスイッチ&LEDを使った実験」p.67に詳しく書かれている。