GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
以前にGR-SAKURAにてaitendoの液晶with基板(2.4インチforさくら)ILI9325液晶を簡単に扱えるサンプルを公開したいと言っていた者ですが ようやく公開できるレベルのものが完成し、松浦様の同意も得ることができましたので提示致します。
添付のZIPファイル(SAKURA_ILI9325TFT.zip)には、各ライブラリ、サンプルプログラム、実行ファイル本体が含まれていますので、
これだけでタッチパネルとTFT液晶の動作を確認することが可能です。
サンプルプログラムの内容を変更したい場合はWEBコンパイラ上で v1.XX のテンプレートで空のプロジェクトを作成して、 プロジェクト名を右クリックして SAKURA_ILI9325TFT.zip をZIPインポートしてください。
メイン処理が記述されている gr_sketch.cpp に各処理がどのように行われているのかを記載していますので、 数値や実行の順番を変化させることでお好みの表示を映し出すことが可能です。
すこしC++を理解されている方であれば、 LCDUtil.h や RGB666.h の内容から、 どのような関数や色が定義されているかをご確認いただけるはずです。
GR-SAKURAに搭載されているRX63Nは地味に高機能ですので、 アイデア次第で「液晶とタッチパネルで操作可能なゲームプログラム」が書けるかもしれません。
上記以外のファイルはプログラムの実行に特に関係はありません。オレンジは改変、再配布等自由です。ピンク色については、ライセンスをご確認ください。基本的に個人で変更して遊ぶ分には全ファイル無制限のはずです。
各ファイルの作成や著作、ライセンスについては添付ファイル同封の NOTE.txt をご参照ください。
本作成物は松浦様が公開されていたGR-SAKURA用グラフィック描画ライブラリ & タッチパネルドライバに深く依存しています。 整理のために一旦公開を停止されていたところ無理を言って公開の許可をいただきました。ありがとうございます。 プログラムの使用および内容の確認や公開の許可をいただけたことに改めて御礼申し上げます。
SAKURA_ILI9325TFT.zip を使わせていただこうとして web compiler (GR-Sakura_Sketch_V1.08)にZIPファイルをアップロードし ビルドしてみたところ、次のようなwarning が出ます。
ただし生成したsketch.binをGR-Sakuraにロードして動作させると、日本語表示含めて 正常に動いています。このwarning は無視してもよいのでしょうか?
ーーーbuild_result.htmlの最初の部分ーーーー
rx-elf-gcc -Wall -g -O2 -Wl,--no-flag-mismatch-warnings -fsigned-char -I./exe_org -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -c -x c++ gr_sketch.cpp -o gr_sketch.o
rx-elf-gcc -Wall -g -O2 -Wl,--no-flag-mismatch-warnings -fsigned-char -I./exe_org -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -c -x c++ ili9325.cpp -o ili9325.o
rx-elf-gcc -Wall -g -O2 -Wl,--no-flag-mismatch-warnings -fsigned-char -I./exe_org -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -c -x c++ LCDUtil.cpp -o LCDUtil.o
In file included from LCDUtil.cpp:59:0:
font_s12.dat:6898:1: warning: missing braces around initializer for 'char [9]' [-Wmissing-braces]
font_s12.dat:6898:1: warning: narrowing conversion of '227' from 'int' to 'char' inside { } is ill-formed in C++11 [-Wnarrowing]
font_s12.dat:6898:1: warning: narrowing conversion of '128' from 'int' to 'char' inside { } is ill-formed in C++11 [-Wnarrowing]
font_s12.dat:6898:1: warning: narrowing conversion of '129' from 'int' to 'char' inside { } is ill-formed in C++11 [-Wnarrowing]
ーーー中略ー以下は最後の部分ーーー
font_s12.dat:6898:1: warning: narrowing conversion of '234' from 'int' to 'char' inside { } is ill-formed in C++11 [-Wnarrowing]
font_s12.dat:6898:1: warning: narrowing conversion of '164' from 'int' to 'char' inside { } is ill-formed in C++11 [-Wnarrowing]
font_s12.dat:6898:1: warning: narrowing conversion of '153' from 'int' to 'char' inside { } is ill-formed in C++11 [-Wnarrowing]
LCDUtil.cpp: In member function 'int DISPLAY_ILI9325::putChar(unsigned int, unsigned int, const char*, unsigned int, unsigned int)':
LCDUtil.cpp:67:64: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
LCDUtil.cpp:87:66: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
LCDUtil.cpp: In member function 'void DISPLAY_ILI9325::drawLine(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)':
LCDUtil.cpp:157:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
LCDUtil.cpp:165:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
LCDUtil.cpp: In member function 'void DISPLAY_ILI9325::fillRect(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)':
LCDUtil.cpp:198:33: warning: operation on 'width' may be undefined [-Wsequence-point]
LCDUtil.cpp:199:36: warning: operation on 'height' may be undefined [-Wsequence-point]
rx-elf-gcc -Wall -g -O2 -Wl,--no-flag-mismatch-warnings -fsigned-char -I./exe_org -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -c -x c++ RGB565.cpp -o RGB565.o
rx-elf-gcc -Wall -g -O2 -Wl,--no-flag-mismatch-warnings -fsigned-char -I./exe_org -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -c -x c++ RGB666.cpp -o RGB666.o
rx-elf-gcc -Wall -g -O2 -Wl,--no-flag-mismatch-warnings -fsigned-char -I./exe_org -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -c -x c++ SeeedTouchScreen.cpp -o SeeedTouchScreen.o
rx-elf-gcc -Wall -g -O2 -Wl,--no-flag-mismatch-warnings -fsigned-char -I./exe_org -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -c -x c font.c -o font.o
rx-elf-gcc -Wall -g -O2 -Wl,--no-flag-mismatch-warnings -fsigned-char -I./exe_org -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -c -x c gr_common/intvect.c -o gr_common/intvect.o
rx-elf-gcc -Wall -g -O2 -Wl,--no-flag-mismatch-warnings -fsigned-char -I./exe_org -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -c -x c gr_common/lowlevel.c -o gr_common/lowlevel.o
rx-elf-ld ./gr_common/gstart.o ./gr_sketch.o ./ili9325.o ./LCDUtil.o ./RGB565.o ./RGB666.o ./SeeedTouchScreen.o ./font.o ./gr_common/intvect.o ./gr_common/lowlevel.o ./gr_common/lib/libc.a ./gr_common/lib/libg.a ./gr_common/lib/libgcc.a ./gr_common/lib/libm.a ./gr_common/lib/librxduino.a ./gr_common/lib/libsim.a ./gr_common/lib/libstdc++.a ./gr_common/lib/libsupc++.a ./gr_common/lib/libtkdnhal.a -Map ./gr_build/sketch.map -L./gr_common/lib/ -lrxduino -lstdc++ -lsupc++ -lc -lsim -lgcc -lm -ltkdnhal -nostartfiles --no-flag-mismatch-warnings -T ./gr_common/gr_sakura.gsi -o ./gr_build/sketch.x
rx-elf-ld: warning: section `.bss' type changed to PROGBITS
rx-elf-objcopy -O binary ./gr_build/sketch.x sketch.bin
rx-elf-objcopy --srec-forceS3 --srec-len 32 -O srec ./gr_build/sketch.x ./gr_build/sketch.mot
rm -f *.o
Make process completed
見た感じ無視してよさげな警告が大半ですが、気になるようであれば font_s12.dat と LCDUtil.cpp の各行
font_s12.dat: 16: char cord[9]; LCDUtil.cpp: 67: for(; n<sizeof(font_list_6x12)/sizeof(font_list_6x12[0]); n++){ 87: for(; n<sizeof(font_list_12x12)/sizeof(font_list_12x12[0]); n++){ 157: for(unsigned int i=0;i<=dy;i++) LCD_DataWriteColor_ILI9325(color); 165: for(unsigned int i=0;i<=dx;i++) LCD_DataWriteColor_ILI9325(color); 198: width = (width<1)? 1:--width; 199: height = (height<1)? 1:--height;
を
font_s12.dat: 16: unsigned char cord[9]; LCDUtil.cpp: 67: for(; n<int(sizeof(font_list_6x12)/sizeof(font_list_6x12[0])); n++){ 87: for(; n<int(sizeof(font_list_12x12)/sizeof(font_list_12x12[0])); n++){ 157: for(int i=0;i<=dy;i++) LCD_DataWriteColor_ILI9325(color); 165: for(int i=0;i<=dx;i++) LCD_DataWriteColor_ILI9325(color); 198: width = (width<1)? 1:width-1; 199: height = (height<1)? 1:height-1;
にそれぞれ修正すれば警告は出なくなります。動作確認はしていません。
早速にありがとうございました。
ご指示のように変更したところ 警告は出なくなりました。
その後の報告です。
GR-Sakura, G-LCD, LPS331AP (気圧、I2C)、Sensirion のSHT1x(温度、湿度、2線式、SHT1x.ccp, SHT1x.h)を組み合わせて、3つの測定データを SDcardにログしながら G−LCD画面にトレンドを表示するシステムを作ろうとしています。
GR-SakuraとLPS331AP 、GR-SakuraとSHT1xは正常に測定でき、GR-SakuraとLPS331APと G-LCDの組み合わせでは問題なかったのですが、GR-SakuraとSHT1xとG-LCDを組み合わせると、lcd.init(); を入れたとたんに 読み取る温度、湿度のデータが とてつもなく大きくなったり負の値になったりします。ほかにいれているのは sdmmc.h, rtc.h などです。
この状況に 私は立ち尽くすばかりで、(温度はLPS331APでも計測できる)、湿度のセンサーを別にみつけて再挑戦しようかとしています。
使ってるピンが被ってるとかはないですか。
SHT1xの2線をつないでいるのは 9 と10、I2C(気圧)は 4と5で G-LCD(Aitendo LCD024GR-NP) の使っているピンと被ってはいないはずです。
SHT1xから測定値を読み出す変数名は temp_c と humidity で float と宣言しています。include文などすべて同じで setup() にlcd.init() を「入れる・入れない」と変えると Serial.printで読み出す temp_c と humidity が「吹き飛ぶ・正常値」と変わります。
SH1x.cpp のなかで 単純な変数名 たとえばD1 D1 C1 C2 C3 T1 T2とかが使われているのですが、G-LCDでの変数名と被るかもしれないということで 複雑な変数名に置き換えるおまじないは有効でしょうか?
IO10 は SPI_CS0 なので RXduino がなんかしてる可能性も考えられなくはないですが lcd.init() の有無で影響が確認できるなら多分問題はないと思います。
SH1x.cpp の中で使われてる C1,C2,C3,D1,D1,D2,D2,T1,T2 はすべて関数内のローカルで宣言された定数なので他への影響は考えられません。
lcd.init() の内容は
void DISPLAY_ILI9325::init(){ LCD_Init_ILI9325(); CLS(); }
だけなので、これの有無で問題の挙動が確認できるならば、問題の箇所の絞込みは簡単だと思います。先ず DISPLAY_ILI9325::init() 内の CLS() を外してみる。挙動が変わらなければ問題の部分は LCD_Init_ILI9325() の中なので LCD_Init_ILI9325() の後ろ半分をコメントアウトしてみる等を繰り替えしていけば、lcd.init() の中のどの部分が影響しているか特定できるはずです。
情報ありがとうございます。
ili9325.cpp の LCD_Init_ILI9325(void) にある
MPC.PFCSE.BIT.CS3E = 1;
をコメントアウトすると lcd.init() を入れても SHT-1x の読み出しに障害がでないのがわかりました。
コメントアウトしたまま このさき続けてもよいものか 教えていただけると幸いです。
MPC.PFCSE.BIT.CS3E = 1; MPC.PFCSS0.BIT.CS3S = 2;
でIO10を液晶モジュールへのCS信号に割り当てていますが、aitendoのLCDキャリー基板 for さくら [IFB024GR]では液晶モジュールのCS信号を結線してないようなので使わなくて問題ないと思われます。上の2行をコメントアウトすることでIO10は自由に使えると思います。
問題解決の方法も教えていただき 大変に参考になりました。年寄りにはボケ進行の抑止にもなります。ありがとうございました。
亀レスですが、今日、V1.08ライブラリベースで、Aitendo LCDシールドを使ってみました。写真は、中国製のPM2.5センサ―モジュール(PLANTOWER PMS 5003)からのい測定値を表示させています。
作品紹介は、下記に置いてます。
https://makershub.jp/make/1163
亀レスですが
テンプレート2.0で動くようにライブラリを変更する方法を教えてください。
そのままコンパイルするとエラーだらけでどうしていいかわかりません。
下記の内容のヘッダファイル 2つをプロジェクトに追加することで GR-SAKURA_Sketch_V2.13.zip でビルドは通りました。動作は確認してません。
rxduino.h:
#include <Arduino.h>
rxstring.h:
fujitaさん こんばんは
理屈はよくわかりませんがやってみたところ、コンパイルで binファイルができ。GR-SAKURAで動作しました。
やたらと、warningが出ましたが、問題なく動いて1.08版と動作は同じように見えます。
作るプログラムを、2.xxのテンプレートで統一したかったので、助かりました。
ありがとうございました。