[ create a new paste ] login | about

Link: http://codepad.org/uag9wPCU    [ raw code | output | fork ]

C++, pasted on Nov 8:
// なぜかGPSのデータが取得できないスケッチ
// 1ppsの信号が取れてない?
// スケッチ5

#include <M5Stack.h>
#include <TimeLib.h>
#include <TinyGPSPlus.h>

static const uint32_t GPSBaud = 115200;
TinyGPSPlus gps;
HardwareSerial ss(2);

#define LGFX_M5STACK
#include <LovyanGFX.hpp>
static LGFX lcd;
static LGFX_Sprite sprite(&lcd);

const int offset = 9;
int now_year, now_mon, now_day, now_hour, now_minute, now_second;
static const char *wday[] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
const char *now_weekday;
boolean ap_view = true;

unsigned long clock_start_time;
int preview_second = 0;
boolean colon_view = true;

void setup(void) {
  M5.begin();
  delay(1000);
  ss.begin(GPSBaud);
  pinMode(35, INPUT); // 1ppsの入力
  pinMode(2, OUTPUT); // 1ppsの確認用のLED
  dacWrite(25, 0); // スピーカーは使わないからオフにする
  lcd.init();
  lcd.setBrightness(4);
  delay(1000);
  sprite.setColorDepth(16);
}

void loop() {
  while(digitalRead(35) == LOW) { // LOWの間は待つ (=HIGHになったら通過) 
  }
  while (ss.available()) {
    if (gps.encode(ss.read())) {
      if (gps.date.age() < 500) {
        setTime((gps.time.hour()), (gps.time.minute()), (gps.time.second()), (gps.date.day()), (gps.date.month()), (gps.date.year()));
        adjustTime(offset * SECS_PER_HOUR);
        // adjustTime(offset * SECS_PER_HOUR + 1); // なぜか1秒遅れてるから+1足した
      }
    }
  }

  now_year = year();
  now_mon = month();
  now_day = day();
  now_hour = hour();
  now_minute = minute();
  now_second = second();
  now_weekday = wday[weekday() - 1];

  // 時刻とコロンの表示
  if (now_second != preview_second && colon_view == true) {
    clock_start_time = millis();
    sprite.createSprite(320, 98);
    sprite.clear(TFT_BLACK);
    sprite.setFont(&fonts::Font7);
    sprite.setTextDatum(top_left);

    char clock_hh_mm[6];
    // 12-24時間表記の切り替え
    if (ap_view == true) { // 12時間表記
      now_hour = hourFormat12();
      sprite.setFont(&fonts::Font0);
      sprite.setTextSize(2.5);
      sprite.setTextColor(TFT_WHITE);
      sprite.setTextDatum(top_left);
      if (isPM()) { // 午後
        sprite.drawString("PM", 3, 12); // PM
      }
      if (isAM()) { // 午前
        sprite.drawString("AM", 3, 12); // AM
      }
      sprite.setFont(&fonts::Font7);
      sprite.setTextColor(TFT_WHITE);
      sprite.setTextDatum(top_left);
      sprite.setTextSize(1.9);
      if (now_hour == 12) {
        now_hour = 0;
      }
      if (now_hour < 10) {
        sprintf(clock_hh_mm, "%01d:%02d", now_hour, now_minute);
        sprite.drawString(String(clock_hh_mm), 63, 6); // 時:分
      } else {
        sprintf(clock_hh_mm, "%02d:%02d", now_hour, now_minute);
        sprite.drawString(String(clock_hh_mm), 3, 6); // 時:分
      }
    } else { // 24時間表記
      sprintf(clock_hh_mm, "%02d:%02d", now_hour, now_minute);
      sprite.setTextColor(TFT_WHITE);
      sprite.setTextSize(1.9);
      sprite.drawString(String(clock_hh_mm), 3, 6); // 時:分
    }

    char clock_ss[3];
    sprintf(clock_ss, "%02d", now_second);
    sprite.setTextSize(0.8);
    sprite.drawString(String(clock_ss), 268, 52); // 秒
    sprite.pushSprite(0, 22);

    preview_second = now_second;
    colon_view = false;
    Serial.println(gps.satellites.value()); // GPSの数の確認
    delay(1);
  }

  // コロンを消す (0.5秒後)
  if ((millis() >= (clock_start_time + 500)) && colon_view == false) {
    sprite.createSprite(15, 90);
    sprite.clear(TFT_BLACK);
    sprite.pushSprite(123, 30);
    colon_view = true;
    delay(1);
  }
}


Output:
1
2
3
4
5
6
Line 20: error: M5Stack.h: No such file or directory
Line 20: error: TimeLib.h: No such file or directory
Line 24: error: TinyGPSPlus.h: No such file or directory
Line 24: error: LovyanGFX.hpp: No such file or directory
Line 10: error: 'TinyGPSPlus' does not name a type
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: