6219今回は、大野さんの「アナログ・マイコン!?PSoCに目覚める本」の6章に挑戦します。最初は、ピンの設定とプログラムだけでIOを制御するじゃんけんゲームが紹介されています。回路は、以下の様になっています。ブレッドボードで組んだ回路は以下の様になりました。470Ωの4種類を用意しておけば、実験ができます。今回の回路では、330Ωとありますが、ここでは470Ωを代わりに使っています。Upを使っているそうです。ピンのIO設定は、縦に隠れているPinout-プロジェクト名のタグをクリックすると表示されます。P[3]のLED制御のピンをStrong出力で初期値0とします。P2[1]をプルアップ出力で初期値1にします。本題のmain関数ですが、ポートのデータレジスタは、PRTnDRでnにポート番号を指定します。6章レッスン1では、スイッチは、P2[1]なので、PRT2DRの2bit目の値をチェックするため、0x2とのアンドを取ります。continue;とします。P0[7]へと点灯するLEDをシフトさせています。main関数は、以下の様になっています。次のレッスン6_2は、「キャラクタLCDに文字を表示」でした。後閑さんの「C言語によるPICプログラミング入門」で紹介されていた3行表示のLCDを用意しておくと便利です。DB4の4bitのデータバスでも表示ができるので、電子工作でよく使われます。コネクターの配線は、以下の様にしています。GNDPSoCとLCDの接続以下の様にします。DigitalからLCDを配置します。以下の様にPort2を出力ポートに設定します。†main関数で文字列を出力します。†PSoCにプログラムを書き込み、電源を入れると以下の様に表示されました。†6章の最後は、関門の割り込みでです。ブレッドボードは、レッスン4_1を使用します。周波数を出力するプログラムを作成します。†デジタルブロックにCounter8を配置します。今回は割り込みを使うので、配線はしません。P0[2]にAGNDを出力するようにセットします。VC2=10にセットします。Countに99*2とし、4kHzになるように設定します。P0[0]の出力をStrongに変更します。Configurationのメニューを実行して、Counter8のアセンブラコードが作成されます。Counter8_1INT.asmの74に以下のようにカスタムコード(Cの関数へのジャンプ命令)を書きます。_Counter8_1_IntBuild->Compileを選択してCounter8_1INT.asmをコンパイルします。†Cで割り込み関数を定義する場合、#pragma宣言で割り込み関数であることを明記します。関数名には、Counter8_1INT.asmで宣言した関数の先頭の_を除いた名前を指定します。ビット0を反転}main関数の定義は、以下の様にします。†プログラムを書き込み、動かすとピーとなります。無事割り込みが働いていることを確認することができました。0皆様のご意見、ご希望をお待ちしております。