IDE Ругается на скетч из примера библиотеки

Тема в разделе "Arduino & Shields", создана пользователем TheNail314, 19 фев 2019.

Метки:
  1. TheNail314

    TheNail314 Нерд

    "DS1302 does not a name a type"
    Код (C++):
    // Example sketch for interfacing with the DS1302 timekeeping chip.
    //
    // Copyright (c) 2009, Matt Sparks
    // All rights reserved.
    //
    // http://quadpoint.org/projects/arduino-ds1302
    #include <stdio.h>
    #include <DS1302.h>

    namespace {

    // Set the appropriate digital I/O pin connections. These are the pin
    // assignments for the Arduino as well for as the DS1302 chip. See the DS1302
    // datasheet:
    //
    //   http://datasheets.maximintegrated.com/en/ds/DS1302.pdf
    const int kCePin   = 5;  // Chip Enable
    const int kIoPin   = 6;  // Input/Output
    const int kSclkPin = 7;  // Serial Clock

    // Create a DS1302 object.
    DS1302 rtc(kCePin, kIoPin, kSclkPin);

    String dayAsString(const Time::Day day) {
      switch (day) {
        case Time::kSunday: return "Sunday";
        case Time::kMonday: return "Monday";
        case Time::kTuesday: return "Tuesday";
        case Time::kWednesday: return "Wednesday";
        case Time::kThursday: return "Thursday";
        case Time::kFriday: return "Friday";
        case Time::kSaturday: return "Saturday";
      }
      return "(unknown day)";
    }

    void printTime() {
      // Get the current time and date from the chip.
      Time t = rtc.time();

      // Name the day of the week.
      const String day = dayAsString(t.day);

      // Format the time and date and insert into the temporary buffer.
      char buf[50];
      snprintf(buf, sizeof(buf), "%s %04d-%02d-%02d %02d:%02d:%02d",
               day.c_str(),
               t.yr, t.mon, t.date,
               t.hr, t.min, t.sec);

      // Print the formatted string to serial so we can see the time.
      Serial.println(buf);
    }

    }  // namespace

    void setup() {
      Serial.begin(9600);

      // Initialize a new chip by turning off write protection and clearing the
      // clock halt flag. These methods needn't always be called. See the DS1302
      // datasheet for details.
      rtc.writeProtect(false);
      rtc.halt(false);

      // Make a new time object to set the date and time.
      // Sunday, September 22, 2013 at 01:38:50.
      Time t(2013, 9, 22, 1, 38, 50, Time::kSunday);

      // Set the time and date on the chip.
      rtc.time(t);
    }

    // Loop and print the time every second.
    void loop() {
      printTime();
      delay(1000);
    }
    Код (C++):
      This report would have more information with
      "Show verbose output during compilation"
      enabled in File > Preferences.
    Arduino: 1.0.6 (Windows NT (unknown)), Board: "Arduino Uno"
    set_clock:22: error: 'DS1302' does not name a type
    set_clock:24: error: expected ',' or '...' before '::' token
    set_clock:24: error: ISO C++ forbids declaration of 'Time' with no type
    set_clock.ino: In function 'String<unnamed>::dayAsString(int)':
    set_clock:25: error: 'day' was not declared in this scope
    set_clock:26: error: 'Time' is not a class or namespace
    set_clock:27: error: 'Time' is not a class or namespace
    set_clock:28: error: 'Time' is not a class or namespace
    set_clock:29: error: 'Time' is not a class or namespace
    set_clock:30: error: 'Time' is not a class or namespace
    set_clock:31: error: 'Time' is not a class or namespace
    set_clock:32: error: 'Time' is not a class or namespace
    set_clock.ino: In function 'void<unnamed>::printTime()':
    set_clock:39: error: 'Time' was not declared in this scope
    set_clock:39: error: expected `;' before 't'
    set_clock:42: error: '
    t' was not declared in this scope
    set_clock.ino: In function '
    void setup()':
    set_clock:63: error: '
    rtc' was not declared in this scope
    set_clock:68: error: '
    Time' was not declared in this scope
    set_clock:68: error: expected `;'
    before 't'
    set_clock:71: error: 't' was not declared in this scope
    Что может быть? Это единственная библиотка, которую я нашел, что может запустить ИДЕ 1.0.6
    Возможно нужна другая библиотека? Если можно, ссылочку с:
     

    Вложения:

  2. parovoZZ

    parovoZZ Гуру

    Для DS1302 вообще не надо никаких библиотек. Она простая, как ведро.