Подскажите что случилось. (DS3231)

Viktor1306
Viktor1306 аватар
Offline
Зарегистрирован: 19.05.2016

Не понятно с чего при компиляции скетча стало выдавать кучу варнингов, при чём скетч компилится, а будильник по моему не работает. Есть подозрение что после очередного обновления библиотек плат. Вот что пишет компилятор:

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1206:11: warning: extra tokens at end of #endif directive

     #endif;

           ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp: In member function 'char* DS3231::dateFormat(const char*, RTCDateTime)':

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:173:10: warning: address of local variable 'buffer' returned [-Wreturn-local-addr]

     char buffer[255];

          ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp: In member function 'char* DS3231::dateFormat(const char*, RTCAlarmTime)':

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:301:10: warning: address of local variable 'buffer' returned [-Wreturn-local-addr]

     char buffer[255];

          ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp: In member function 'char* DS3231::strDayOfWeek(uint8_t)':

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:960:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "Monday";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:963:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "Tuesday";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:966:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "Wednesday";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:969:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "Thursday";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:972:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "Friday";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:975:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "Saturday";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:978:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "Sunday";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:981:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "Unknown";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp: In member function 'char* DS3231::strMonth(uint8_t)':

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:989:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "January";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:992:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "February";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:995:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "March";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:998:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "April";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1001:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "May";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1004:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "June";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1007:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "July";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1010:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "August";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1013:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "September";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1016:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "October";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1019:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "November";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1022:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "December";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1025:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "Unknown";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp: In member function 'char* DS3231::strAmPm(uint8_t, bool)':

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1035:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "AM";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1038:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "am";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1044:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "PM";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1047:20: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

             return "pm";

                    ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp: In member function 'char* DS3231::strDaySufix(uint8_t)':

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1056:16: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

         return "st";

                ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1060:16: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

         return "nd";

                ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1064:16: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

         return "rd";

                ^

C:\Program Files\Arduino\libraries\DS3231\DS3231.cpp:1067:12: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]

     return "th";

            ^

Перед этим отказалась работать библиотека Ultrasonic пришлось использовать код вместо библиотеки.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да, ничего не случилось. Похоже, у Вас раньше были предупреждения выключены. а сейчас Вы их включили и узнали много интересного.

Вот таково качество большинства ардуиновских библиотек.

Viktor1306
Viktor1306 аватар
Offline
Зарегистрирован: 19.05.2016

Но как включение предупреждений может повлиять на работу часов точного времени? ранньше они мне выдавали прерывание каждый час теперь не выдают вообще. Если И можно, посоветуйте модуль GPS с малым временем старта. пробовал VK16E и и Нео - 6м Холодный старт занимает 5 часов на подоконнике и часа полтора на открытой местности. В моём случае это приводит к тому что теряет смысл всякое энергосбережение ибо за полтора часа схема успевает высосать 15% аккумулятора. И поскольку обращение к этому модулю происходит раз в сутки, то каждый его старт воспринимается как холодный. А как я писал выше нужно сделать так, чтоб аккумулятор нужно было заряжать раз в год или минимум в полгода. СТавить КАМАЗовские аккумуляторы - не вариант устройство должно быть компактным. Или может я требую что то из разряда вечных двигателей? Пробовал делать подпитку йонистора на часах и на GPS модуле. Если на часах это худо бедно работает то GPS вообще начинает с ума сходить. Загружает спутники по 9-12 часов. Как это реализованно в промышленных навигаторах и всяких крутых мобилах. Там даже холодный пуск занимает не болеее 1 минуты.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, если она у Вас стала неправильно работатть после обновления библиотеки - верните старую библиотеку, в чём проблема-то?

Viktor1306
Viktor1306 аватар
Offline
Зарегистрирован: 19.05.2016

да библиотеку то вернул, теперь с GPS проблемы

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Но это уже другая сказка, как я понимаю.

Viktor1306
Viktor1306 аватар
Offline
Зарегистрирован: 19.05.2016

Сказка другая - автор один. Началось с того.что мне нужно было изменить номер устройства (GPS трекер совмещённый с сигнализацией работающий по GPRS). Я сменил номер устройства. и после этого у меня перестал работать сонар. Скачал новую библиотеку Ultrasomic. вообще отказался компилится. Пишет что функция Ranging(CM); отсутсвует в ultrasonic.h я посмотрел функция там есть. Вернул старую библу-всё осталось точно так же. опять ругается на функцию Ranging(CM); Я вместо библы написал кодом работу сонара. ТОгда начал ругаться на часы реального времени. Тут я вспомнил что у меня на ноуте стоит необновлённый Ардуино. Откомпилил там всё нормально прошло. только возникли ошибки загрузки скетча. Тогда я снова попробовал откомпилить на компе. К моему удивлению откомпилилось нормально и загрузилось то же. Но будильник сработал 3 раза и завял и GPS приёмник стал очень долго искать спутники на подокониике. где раньше находил за 15-20 минут на холодном старте нашёл через 10 часов. А на улице. где раньше находил за 30сек - 1 мин нашёл через 1 час 52 минуты. Я не пойму в чём дело. С часов убрана батарейка подпитки а с GPS йонистр и туда подаётся напряжение с аккумулятора через резисторы и диоды. Пробую пересобрать плату. купил новые РТС. GPS модуль и саму ардуинку. Но на 5 вольт. и теперь не могу найти DC/DC преобразователя с малым током холостого хода. Когда МК спит и вся схема отключена на 3,3 вольтовой ардуине ток потребления был 3 мкА а теперь только преобразователь ест 0,3 мА.