平成27年10月21日
汎用の高速シリアル通信機能(13) 基板が完成
注文していた基板が出来上がってきました。写真は下記です。クリックで拡大表示されます。

基板の寸法は10cm x 10cmとそれ程大きくはないのですが、一部を両面実装にしてある分、さすがに窮屈な部分もあります。
プログラムをC言語のままなら、すぐに動かせるのですが、どうせならC++言語に置き換えながら動かしたいので、組み立てはお預けにしています。
C++言語の習得は三歩前身二歩後退といった感じで中々思うようには進まないのですが、大抵はそんなものでしょう。
特にC++言語の場合は、その使い方について出来るだけ良いサンプルがないか探しているのですが良いものが見つかりません。
組み込み用のドライバのサンプルプログラムなど何処かにないでしょうか?
例えば、グローバル変数を減らすために
・名前空間を使って特定の名前空間内にグローバル変数やクラスのインスタンスを置いた方がいいのか
・クラスをグローバル領域でインスタンス化して、そのクラスの中に多くの変数を定義したほうが良いのか
・割り込み処理関数とメイン側でデータをやり取りする目的の変数はグローバルでいいのか、クラス変数とした方がいいのか
(クラス変数とする場合、クラスのインスタンスはグローバル領域にある必要が出てくる)
多分、言語に慣れた人からすればケースバイケースかどちらでも良いのでしょうが、最初はこのような判断に苦労します。
これらの検証をMPLAB XとXC32の組み合わせで行うとき、比較的便利と感じたのがシミュレータの標準出力機能です。
プロジェクトのプロパティ画面でUSART IOをEnable、表示をWindowに設定し、プログラムに下記を追加すればcin, coutによるテキスト表示を確認できます。
__XC_UART = 1;
cout << "test" << endl; //デバッグ画面上にtestと表示される