picoとQVGA液晶パネルの組合せで表示器としての動作例を再現して遊んでいましたが、今度は、せっかく表示器にタッチパネルが付いているので、タッチパネルのサンプルプログラムを動作させてみました。example/320x240/Keypad_240x320.inoというプログラムを試しました。その前に、タッチパネルが動作できるように、インターフェス信号の配線を追加して、以下のような接続にしました。
これに合わせて、User_setup.hを以下のように変更しました。
#define TFT_MISO 16
#define TFT_MOSI 19
#define TFT_SCLK 18
#define TFT_CS 17
#define TFT_DC 28
#define TFT_RST 22
#define TOUCH_CS 1
それなりに動作しましたが、起動毎にタッチパネルのキャリブレーションをする点が気になりました。プログラムに記述された通りなら、初回のみキャリブレーションを行い、2回目以降はファイルにセーブされたデータを読み出して、キャリブレーションなしで動作する筈です。
原因は、元のプログラムではSPIFFSが使用されていますが、このファイルシステムが、どうもデフォルト状態のpicoでは上手く動作しないみたいです。ファイルシステムをSPIFFSからLittleFSに変更したら期待通りに初回のみキャリブレーションするようになりました。
具体的には、次のよう変更しました。
1)Arduino IDEの「ツール」タブのFlash sizeを、取り敢えず 2MB(Sketch:1792KB,FS:256KB)にしました。
2)ソースプログラムを次のように変更しました。
#include "SPIFFS.h" を#include "LittleFS.h"に置き換えて、"SPIFFS."を全部"LittleFS."に置き換えました。
※コメント投稿者のブログIDはブログ作成者のみに通知されます