出力コンペア)PIC24Fには、タイマモジュールを使用した出力コンペア機能があります。出力コンペア機能には、以下の3つのモードがあります。今回はこの中で、2.デュアル比較一致モードの連続出力パルスモード機能を使用してみます。PIC:)PICについて書かれた資料や書籍を見ると、出力ピンの説明で”R-M-W”と書かれている場合があります。このR-M-Wは、Read,Modify,Writeの略です。PICでは出力ピンの特定ビットのみ(例えばPortBのRB0)を変更する場合でも、一旦PortBの全ビットに紐付くピンの電圧を読み取った後(Read)、プログラムで指定した値に書き換えられ(Modify)、PortBの全ビットを出力する(Write)という振る舞いをします。これは、アセンブラだとBSET,BCLRなどの特定ビットを操作する命令で起きます。C:)int型の変数に入っている値をswitch文で偶奇判定するプログラムです。PICkit3)本記事ではPICのC言語向けコンパイラである、C30コンパイラのインストールと動作確認を行います。DSCs”で、dsPICや,PIC24シリーズなどの16bitマイコンで使用可能なCコンパイラです。C30コンパイラはPRO、Standard、Liteと3つのバージョンがありますが、今回は無償で利用可能なLite版を使用します。C#:)ファイルの中身を2進数でダンプする必要があったので、勉強もかねてC#で作ってみました。コマンドラインプログラムで、以下の様な感じで使います。C#:)ファイルなどのストリームからデータを1文字読み込むためのメソッドとしてRead()というものが有ります。このメソッドは”1文字”読み込むのだから戻り値はcharでよいはずなのですが、なぜかint型になっています。それは、Read()メソッドの戻り値は、ファイルから取得した文字に加えて、ファイルの終端(EOF)を返してくるからです。EOFというのは、読み込んでいるファイルがファイルの最後に達してしまい、それ以上読むべきデータが無い状況です。文字コード)C#で、数字で指定されたASCIIコードをstring型の文字列に変換する方法です。基本的には、charにキャストした上でToString()をコールすれば良いです。0x02(制御コードのSTX)が入ります。キャストを忘れると正しく動作しません。Frameworkで用意されているWebBrowerコントロールを使用して、JavaScriptを実行できるプログラムを作成しました。実行するJavaScriptは素のままだと使い辛いので、jQueryを自動ロードしています。PIC:)PICに搭載されているTimer2タイマにはCCP機能というものがあり、PWMとして使用することが出来ます。この際、レジスタにセットした値とPWMで出力できる周波数の対応が分かり辛かったので、Excelで一覧表を計算できるようにしてみました。8MHz駆動時にの周波数は以下の通りです。PIC16F88は、T2CONbits.T2CKPSレジスタの値によって最大1/16まで分周することが出来るのですが、8Mhz駆動だと限界まで遅くしても488Hz以下には出来ない事がわかります(クロックを落とせばもっと低い音も出せます)。C#:WebBrowser)以下のコードで、指定されたアドレスのページを表示させる事が出来ます。ラの音が基準で440Hzになる。WordPress:)WordPressのテーマ編集で、以下の様なタイトル表示を行わせてみます。上記の要件を満たすコードは以下の通りとなります。PIC16F88)PIC16F88等の18ピンのPICを使用している場合、RB6,RB7ピンが入力として使えない場合があります。このような際ににチェックする事を羅列してみました。RB6,RB7は、アナログ入力のAN5,AN6と共用になっています。PORTBのデジタル入出力として利用したい場合は,ANSELレジスタの値を0にする必要があります。PIC16F88)PIC16F88にあるPortAのうち、RA0-RA4はアナログ入力と兼用になっているのですが、デフォルトではアナログ入力側が有効になっているのでデジタルのI/Oとして使用できません。Register)をデジタル入出力として設定する必要があります。Codeを読んでのメモです。元記事を訳したものと、感想・意見がごちゃまぜで箇条書きで書いてあります。DBの変更は全て、人が読める形でバージョン管理システムで管理する。DBオブジェクト生成を行えるようにしておく。PIC16F88)PICの16F88はTimer0,1,2という3つのタイマーモジュールを持っており、それぞれのタイマーは役割が異なっています。Cを使用してTimer1割り込みを利用し、0.5秒周期でLEDを点灯させてみます。クロックは16F88の内部オシレータを8MHzで駆動させます。正規表現)Stringオブジェクトの文字列中に制御文字(0x00~0x19)が入ると、TextBoxなどに値を表示する際、制御文字が入っている事を確認する事が出来ません。このような場合、制御文字を他のテキスト文字に置き換えると分かりやすいです。いう訳で今回は、制御文字を可視化(例えば0x02を[STX]に置き換えるなど)させるコードを紹介します。変換作業は、正規表現による置換機能を利用します。正規表現を使って制御文字をマッチさせたいのですが、幸いな事に.Netでは、制御文字は「\p{Cc}」というパターンであらわす事が可能です。...続きを読む[C#]ComboBoxのSelectedIndexをオブジェクト指定でセットする。C#:ComboBox)ComboBoxでどの項目が選択されているかを,コードから指定(変更)したい場合があります。このような場合、SelectedIndexプロパティをセットする事で目的を達成できるのですが、Index番号では無くItemsに登録されたオブジェクトで指定を行いたい場合も有ります。このような場合は、以下のようにSelectedItemを使用すればOKです。31お勧め書籍webアプリのセキュリティ対策の為に。