2016年5月31日火曜日

NucleoF401RE(mbed)シーケンサー(途中)とPSoC4のSPI Slaveのテスト。

mbedでシーケンサーのひな型を作ってSPI通信でPSoCに受信させようと思ったがPSoC側のプログラムがどれがどれだか迷った。

やはり、1週間前に自分が何をやってたか忘れているっぽい(^q^;

寝ながらブログを見返していてPSoC4でSPI受信プログラムを書いたのを思い出した。「Nucleo F401RE(mbed)をMasterにしてPSoC4とSPI通信する

配線図


mbedのプログラム
https://developer.mbed.org/users/ryood/code/SpiSequencerSender_Test/

mbedのリポジトリにあげるとクラス化した部分はライブラリとしてカプセル化されてしまうようだ。

PSoC CreatorのProject
https://github.com/ryood/PSoC4_SPI_Slave_Test/tree/master/PSoC(Slave)/PSoC4_SPI_Slave_Test/PSoC4_SPI_Slave_Test_for_NucleoF401RE.cydsn

実行結果


上がmbed側、下がPSoC 4側のUART出力。

メモ:

自分流でクラス化していくと行く先が正しいか正しくないかわからない。

だが、クラス化すると単体テストがしやすくなるので拡張性は高くなりそう。

演算子のオーバーロードはできればしたくないが(頭が悪いので訳がわかなくなる)、getter, setter式の記述と単なる変数の代入が混在すると一瞬あれ?っとなる。

コンストラクタで変数の初期化をずらずら並べるとやっぱり後で訳がわかなくなりそう。

Windowsのプログラムみたいにからっぽのクラスの実体化と、オブジェクトの生成(init()とかで)分けた方がいいのか。