Работа с RTC
- Войдите на сайт для отправки комментариев
Пт, 27/05/2016 - 13:53
Помогите нубу разобраться.
Купил в "Амперке" Arduino UNO и модуль часов реального времени http://amperka.ru/product/troyka-rtc?utm_source=man&utm_campaign=troyka-rtc&utm_medium=wiki.
Всё подключил как полагается, скачал библиотеку к часам. Залил скетч:
#include <TroykaRTC.h> #include <Wire.h> #include <EEPROM.h> // размер массива для времени с учётом завершающего нуля #define LEN_TIME 12 // размер массива для даты с учётом завершающего нуля #define LEN_DATE 12 // размер массива для дня недели с учётом завершающего нуля #define LEN_DOW 12 // создаём объект для работы с часами реального времени RTC clock; void setup() { // открываем последовательный порт Serial.begin(9600); // инициализация часов clock.begin(); // метод установки времени и даты в модуль вручную // clock.set(10,25,45,27,07,2005,THURSDAY); // метод установки времени и даты автоматически при компиляции clock.set(__TIMESTAMP__); } void loop() { // массив для хранения текущего времени char time[LEN_TIME]={0}; // массив для хранения текущей даты char date[LEN_DATE]={0}; // массив для хранения текущего дня недели char dow[LEN_DOW]={0}; // запрашиваем данные с часов clock.read(); // сохраняем текущее время в массив time clock.getTimeStr(time, LEN_TIME); // сохраняем текущую дату в массив date clock.getDateStr(date, LEN_DATE); // сохраняем текущий день недели в массив dow clock.getDOWStr(dow, LEN_DOW); // выводим в serial порт текущее время, дату и день недели Serial.print(time); Serial.print("--"); Serial.print(date); Serial.print("--"); Serial.println(dow); // ждём одну секунду delay(1000); }
прямо с сайта, соответственно, как заведомо работающий пример... Ну и ожидал в консоли увидеть что-то вроде "21:57--27.05.2016--FRI", подключил putty к serial порту arduino, а там вывод такого плана
45:@5:85--@5.@5.2165--
45:@5:85--@5.@5.2165--
45:@5:85--@5.@5.2165--▒▒@5.@5.2
45:@5:85--@5.@5.2165--
45:@5:85--@5.@5.2165--
45:@5:85--@5.@5.2165--
45:@5:85--@5.@5.2165--
45:@5:85--@5.@5.2165--
45:@5:85--@5.@5.2165--
45:@5:85--@5.@5.2165--
45:@5:85--@5.@5.2165--▒▒@5.@5.2
45:@5:85--@5.@5.2165--
45:@5:85--@5.@5.2165--
Может кто-нибудь подсказать, это вообще что? Как из этого вытащить время и дату?
да, да именно ждём одну секунду, что бы что-то делать с RTC - правильной дорогой идёшь, товарищь.
Забейте в гугл, "45:@5:85--@5.@5.2165" - и вы поймете, что нужно было купить искру. Ну заодно узнаете, кто-такой айтуси (подпольная кличка тэвиай), и где его искать.
Спору нет, посыпаю голову пеплом. Самое простое решение вылетело из головы.
Всё оказалось просто - необходимо было поменять местами SCL и SDA.
Подскажите, кто работал с этой конкретной библиотекой - как добыть целочисленные значения часов, минут и прочего, без обратного частичного преобразования возвращаемой строки времени и даты ? Что то я туплю совсем.
UPD: открыл файл .h библиотеки и доперло! - getHour(), getMinute() и тд. всем спасибо :))
все свободны...
Товарищи, всем привет!
подскажите почему не могу получить время с DS1307 в обработчике прерывания таймера?
В лупе работает, как только обращаюсь в timer_it к RTC все виснет