チャレンジ課題(2)PICマイコン入門-実践PICマイコン入門-実践SPI通信とデバッグ機能のチャレンジ課題です。SPI通信で湿度データを1バイト読み取るこれまでの記事で、SPI通信でセンサのチップIDの値(1バイト)を取得するプログラムを、デバッグ機能を利用して実行しました。チャレンジ課題の1つ目として、湿度データを読み取ってみたいと思います。湿度データはメモリマップで以下の場所にあります。湿度データは2バイト、つまり16ビットで構成されています。アドレス0xFDには湿度データの上位1バイト、0xFEには下位1バイトが格納されています。取得できるデータですが、センサは電源投入後は測定指示しない限り、温湿度・気圧データはデフォルトの値が入っています。メモリマップにデフォルト値も書かれている通り、湿度データの上位1バイト(アドレス0xFD)は0x80が入っています。そこで、湿度データの上位1バイトを取得するプログラムを作成し、デバッグ機能を利用して実際に0x80が取得できるか確認してみてください。SPI通信で湿度データを2バイト読み取る湿度データは実際には2バイトです。そこで、湿度データ格納用に以下の16ビットの変数を宣言し、この変数に湿度データが入るプログラムを作成してみてください。humidity;なお、湿度データの上位1バイト、下位1バイトについて、それぞれアドレスを指定して読み取ることもできますが、このセンサのSPI通信は、以下のようにアドレス指定後、クロックを継続して送ると、センサは次のアドレスのデータ、その次のアドレスのデータ、というようにアドレスを1つずつ増やしながらデータを送ってきてくれます。この機能を利用してプログラムを作成してみてください。