質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

1回答

894閲覧

NTPサーバから取得した時刻データgTimeinfoをTFTに表示させたい。

MaeharaKenji

総合スコア86

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2020/06/16 01:13

編集2020/06/16 01:28

NTPサーバから時刻情報を取得するようにしました。
現在のテストプログラム

cpp

1//----------(中略)---------------------------------------- 2struct tm gTimeinfo; 3 4void printLocalTime() 5{ 6 //struct tm timeinfo; 7 if(!getLocalTime(&gTimeinfo)){ 8 Serial.println("Failed to obtain time"); 9 return; 10 } 11 Serial.println(&gTimeinfo, "%A, %B %d %Y %H:%M:%S"); // 12} 13

ここで得られた情報をILI9488のLCDに表示したいと思い、

cpp

1 2//----------(中略)---------------------------------------- 3 4 tft.drawCentreString(gTimeinfo[0] , 10, 100, 7); 5 tft.drawCentreString(gTimeinfo[1], 10+20, 100, 7); 6 7//----------(中略)----------------------------------------

このようにコードしてみたのですが、次のようなエラーが出ました。

(エラー内容) Arduino:1.8.12 (Windows Store 1.8.33.0) (Windows 10), ボード:"ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None" D:\mywork\esp32_ILI9488Ctl\exsamples\20200610_rtosTest\TASK_TFTScreen.ino: In function 'void timeCharClock()': TASK_TFTScreen:308:37: error: no match for 'operator[]' (operand types are 'tm' and 'int') tft.drawCentreString(gTimeinfo[0] , 10, 100, 7); ^ TASK_TFTScreen:309:37: error: no match for 'operator[]' (operand types are 'tm' and 'int') tft.drawCentreString(gTimeinfo[1], 10+20, 100, 7); ^ 「SD.h」に対して複数のライブラリが見つかりました 使用済:C:\Users\kmaeh\OneDrive\ドキュメント\ArduinoData\packages\esp32\hardware\esp32\1.0.4\libraries\SD 未使用:C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.33.0_x86__mdqgnx93n4wtt\libraries\SD 「WiFi.h」に対して複数のライブラリが見つかりました 使用済:C:\Users\myUser\OneDrive\ドキュメント\ArduinoData\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi 未使用:C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.33.0_x86__mdqgnx93n4wtt\libraries\WiFi exit status 1 no match for 'operator[]' (operand types are 'tm' and 'int') 「ファイル」メニューの「環境設定」から 「より詳細な情報を表示する:コンパイル」を有効にすると より詳しい情報が表示されます。

このエラーの回避して、LCDに時刻を表示できる解決方法をご教示よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

no match for 'operator[]' (operand types are 'tm' and 'int')

[]が付いてるのがおかしい(意訳)といってます

tft.drawCentreString(gTimeinfo[0] , 10, 100, 7);

提示されたコードには定義が載ってませんが、
gTimeinfoってのは配列なんでしょうか

投稿2020/06/16 01:20

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MaeharaKenji

2020/06/16 01:28

このように宣言しています。
y_waiwai

2020/06/16 01:30

間違った記述してるところに、間違っている、というエラーが出てます。 記述を正しくなるように修正しましょう
MaeharaKenji

2020/06/16 02:05

回答頂きありがとうございます。エラー解消されました。
MaeharaKenji

2020/06/16 02:06

tft.drawNumber(gTimeinfo.tm_hour , xPoint, 100, 7); xPoint += 80; このような感じで記述できるのですね。 この構造体の中身もこんな感じになっているのですね。
y_waiwai

2020/06/16 02:08

解決なされてなによりです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問