Probleme mit Libary Time

Hallo Zusammen

ich habe probleme mit der Time - Bibliothek.
Ein Sketch der vor zirka einem 1/2 Jahr noch ohne Fehler Kompiliert wurde spuckt jetzt bei der Kompilierung folgende Fehlermeldung aus:

Arduino: 1.5.7 (Linux), Board: "Arduino Nano, ATmega328"

Verwende die Bibliothek Time im Ordner: /home/rudi/Arduino/libraries/Time (legacy)
Verwende die Bibliothek Wire im Ordner: /home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire (legacy)
Verwende die Bibliothek DS1307RTC im Ordner: /home/rudi/Arduino/libraries/DS1307RTC (legacy)

/home/rudi/Desktop/arduino-1.5.7/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/cores/arduino -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/variants/eightanaloginputs -I/home/rudi/Arduino/libraries/Time -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire -I/home/rudi/Arduino/libraries/DS1307RTC /tmp/build3932441227709209754.tmp/TimeRTC.cpp -o /tmp/build3932441227709209754.tmp/TimeRTC.cpp.o 
/home/rudi/Desktop/arduino-1.5.7/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/cores/arduino -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/variants/eightanaloginputs -I/home/rudi/Arduino/libraries/Time -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire -I/home/rudi/Arduino/libraries/DS1307RTC -I/home/rudi/Arduino/libraries/Time/utility /home/rudi/Arduino/libraries/Time/Time.cpp -o /tmp/build3932441227709209754.tmp/Time/Time.cpp.o 
/home/rudi/Desktop/arduino-1.5.7/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/cores/arduino -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/variants/eightanaloginputs -I/home/rudi/Arduino/libraries/Time -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire -I/home/rudi/Arduino/libraries/DS1307RTC -I/home/rudi/Arduino/libraries/Time/utility /home/rudi/Arduino/libraries/Time/DateStrings.cpp -o /tmp/build3932441227709209754.tmp/Time/DateStrings.cpp.o 
In file included from /home/rudi/Arduino/libraries/Time/DateStrings.cpp:10:0:
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:18:18: error: variable 'monthStr1' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr1[] PROGMEM = "January";
                  ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:19:18: error: variable 'monthStr2' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr2[] PROGMEM = "February";
                  ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:20:18: error: variable 'monthStr3' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr3[] PROGMEM = "March";
                  ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:21:18: error: variable 'monthStr4' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr4[] PROGMEM = "April";
                  ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:22:18: error: variable 'monthStr5' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr5[] PROGMEM = "May";
                  ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:23:18: error: variable 'monthStr6' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr6[] PROGMEM = "June";
                  ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:24:18: error: variable 'monthStr7' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr7[] PROGMEM = "July";
                  ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:25:18: error: variable 'monthStr8' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr8[] PROGMEM = "August";
                  ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:26:18: error: variable 'monthStr9' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr9[] PROGMEM = "September";
                  ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:27:19: error: variable 'monthStr10' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr10[] PROGMEM = "October";
                   ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:28:19: error: variable 'monthStr11' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr11[] PROGMEM = "November";
                   ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:29:19: error: variable 'monthStr12' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr12[] PROGMEM = "December";
                   ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:31:22: error: variable 'monthNames_P' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 PGM_P monthNames_P[] PROGMEM = 
                      ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:37:26: error: variable 'monthShortNames_P' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthShortNames_P[] PROGMEM = "ErrJanFebMarAprMayJunJulAugSepOctNovDec";
                          ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:39:16: error: variable 'dayStr0' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr0[] PROGMEM = "Err";
                ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:40:16: error: variable 'dayStr1' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr1[] PROGMEM = "Sunday";
                ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:41:16: error: variable 'dayStr2' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr2[] PROGMEM = "Monday";
                ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:42:16: error: variable 'dayStr3' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr3[] PROGMEM = "Tuesday";
                ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:43:16: error: variable 'dayStr4' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr4[] PROGMEM = "Wednesday";
                ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:44:16: error: variable 'dayStr5' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr5[] PROGMEM = "Thursday";
                ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:45:16: error: variable 'dayStr6' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr6[] PROGMEM = "Friday";
                ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:46:16: error: variable 'dayStr7' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr7[] PROGMEM = "Saturday";
                ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:48:20: error: variable 'dayNames_P' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 PGM_P dayNames_P[] PROGMEM = { dayStr0,dayStr1,dayStr2,dayStr3,dayStr4,dayStr5,dayStr6,dayStr7};
                    ^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:49:24: error: variable 'dayShortNames_P' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThrFriSat";

Dasselbe geschiet auch wenn ich das Beispiel in der LIB verwende.
Auch bei IDE 1.5.5 und unter Windows.
Mit den selben IDE? hats doch vor einiger Zeit funktioniert . Kann eventuell jemand sagen woran das liegt?
Den Sketch hab ich mal unten angehängt.

Vielen Dank schon im Vorraus Rudi01

_37_Pumpe1_zuschalten_bei_Kollektortemp___110_C.ino (21.5 KB)

Das hatte ich schon mal nebenbei erwähnt

Das hängt damit zusammen dass die avr libc endlich mal aktualisiert wurde und jetzt PROGMEM Konstanten unbedingt const sein müssen. Vorher war die PROGMEM Implementierung nicht ganz regelgerecht. Und gerade bei String Arrays gibt das Fehler, da die wenigsten Leute wohl const Pointer auf const Daten deklarieren.

Ist aber sofort behoben. Öffne die Datei DateStrings.cpp. Dann mache alle einfachen Strings const. z.B.:

const char monthStr1[] PROGMEM = "January";
const char monthStr2[] PROGMEM = "February";

Und ganz wichtig hier:

const char* const monthNames_P[] PROGMEM =

Darunter ist nochmal ein anderes Array. Gleiches Prinzip. Vorher stand da glaube ich nur "const char*". Was heißt das nur die Daten const sind, aber man dem Zeiger selbst was anderes Zuweisen kann . Mit dem zweimal const hat man jetzt einen const Zeiger auf const Daten.

Das hatte ich hier mal erklärt:
http://forum.arduino.cc/index.php?topic=257673.msg1821535#msg1821535
Zuerst allgemein, aber darunter auch PROGMEM erwähnt

Gerademal auf Github nachgesehen:

Da gibt eine aktualisierte Version wenn du es nicht per Hand ausbessern willst :slight_smile:

Hi danke für die schnelle Antwort.

ich habe die DateStrings.cpp gesucht und geöffnet.
Die Strigs const char monthStr1[] PROGMEM = "January"; habe ich nicht gefunden stattdessen :

char monthStr1[] PROGMEM = "January";
char monthStr2[] PROGMEM = "February";
char monthStr3[] PROGMEM = "March";
char monthStr4[] PROGMEM = "April";
char monthStr5[] PROGMEM = "May";
char monthStr6[] PROGMEM = "June";
char monthStr7[] PROGMEM = "July";
char monthStr8[] PROGMEM = "August";
char monthStr9[] PROGMEM = "September";
char monthStr10[] PROGMEM = "October";
char monthStr11[] PROGMEM = "November";
char monthStr12[] PROGMEM = "December";

soll ich alle Strings in zB. in char monthStr12[] PROGMEM = "December"; in char const monthStr12[] PROGMEM = "December"; ändern?

Am besten du lädst einfach die aktuelle Version von github herunter:
https://github.com/PaulStoffregen/Time/archive/master.zip

Rudi01:
Die Strigs const char monthStr1[] PROGMEM = "January"; habe ich nicht gefunden stattdessen :

Das ist ja der Fehler! PROGMEM Daten müssen const jetzt zwingend const sein. Und bei Arrays aus Strings braucht man const char* const für die Zeiger Arrays die die einzelnen Strings enthalten.

Deshalb wie du sagtest, so:

const char monthStr1[] PROGMEM = "January";

ob const char oder char const ist egal, aber ersteres ist üblicher.

Dann hier:

PGM_P monthNames_P[] PROGMEM = { ... }

PGM_P ist ein Makro für const char*. Daher ist das gleiche wie:

const char* monthNames_P[] PROGMEM = { ... }

Das muss aber heißen:

const char* const monthNames_P[] PROGMEM = { ... }

Analog bei dayNames_P

Merci für die Hilfe

jetzt hab ich mal die DateStrings.cpp angepasst aber die Fehlermeldungen kommen immernoch wenn auch wenigere.

hier mal die fehlermeldungen:(ich musste sie Einkürzen)

/Desktop/arduino-1.5.7/hardware/arduino/avr/cores/arduino -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/variants/micro -I/home/rudi/Arduino/libraries/DS3232RTC -I/home/rudi/Arduino/libraries/Time -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire -I/home/rudi/Arduino/libraries/OneWire -I/home/rudi/Arduino/libraries/LiquidCrystal_I2C2004V1 -I/home/rudi/Arduino/libraries/DallasTemperature -I/home/rudi/Arduino/libraries/DS3232RTC/utility /home/rudi/Arduino/libraries/DS3232RTC/DS3232RTC.cpp -o /tmp/build2117321466707983116.tmp/DS3232RTC/DS3232RTC.cpp.o
/home/rudi/Desktop/arduino-1.5.7/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x2341 -DUSB_PID=0x8037 -DUSB_MANUFACTURER= -DUSB_PRODUCT="Arduino Micro" -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/cores/arduino -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/variants/micro -I/home/rudi/Arduino/libraries/DS3232RTC -I/home/rudi/Arduino/libraries/Time -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire -I/home/rudi/Arduino/libraries/OneWire -I/home/rudi/Arduino/libraries/LiquidCrystal_I2C2004V1 -I/home/rudi/Arduino/libraries/DallasTemperature -I/home/rudi/Arduino/libraries/Time/utility /home/rudi/Arduino/libraries/Time/Time.cpp -o /tmp/build2117321466707983116.tmp/Time/Time.cpp.o
/home/rudi/Desktop/arduino-1.5.7/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x2341 -DUSB_PID=0x8037 -DUSB_MANUFACTURER= -DUSB_PRODUCT="Arduino Micro" -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/cores/arduino -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/variants/micro -I/home/rudi/Arduino/libraries/DS3232RTC -I/home/rudi/Arduino/libraries/Time -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire -I/home/rudi/Arduino/libraries/OneWire -I/home/rudi/Arduino/libraries/LiquidCrystal_I2C2004V1 -I/home/rudi/Arduino/libraries/DallasTemperature -I/home/rudi/Arduino/libraries/Time/utility /home/rudi/Arduino/libraries/Time/DateStrings.cpp -o /tmp/build2117321466707983116.tmp/Time/DateStrings.cpp.o
In file included from /home/rudi/Arduino/libraries/Time/DateStrings.cpp:10:0:
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:18:18: error: variable 'monthStr1' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr1[] PROGMEM = "January";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:19:18: error: variable 'monthStr2' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr2[] PROGMEM = "February";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:20:18: error: variable 'monthStr3' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr3[] PROGMEM = "March";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:21:18: error: variable 'monthStr4' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr4[] PROGMEM = "April";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:22:18: error: variable 'monthStr5' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr5[] PROGMEM = "May";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:23:18: error: variable 'monthStr6' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr6[] PROGMEM = "June";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:24:18: error: variable 'monthStr7' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr7[] PROGMEM = "July";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:25:18: error: variable 'monthStr8' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr8[] PROGMEM = "August";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:26:18: error: variable 'monthStr9' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr9[] PROGMEM = "September";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:27:19: error: variable 'monthStr10' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr10[] PROGMEM = "October";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:28:19: error: variable 'monthStr11' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr11[] PROGMEM = "November";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:29:19: error: variable 'monthStr12' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr12[] PROGMEM = "December";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:31:22: error: variable 'monthNames_P' must be const in order to be put into read-only section by means of 'attribute((progmem))'
PGM_P monthNames_P[] PROGMEM =
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:37:26: error: variable 'monthShortNames_P' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthShortNames_P[] PROGMEM = "ErrJanFebMarAprMayJunJulAugSepOctNovDec";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:39:16: error: variable 'dayStr0' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char dayStr0[] PROGMEM = "Err";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:40:16: error: variable 'dayStr1' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char dayStr1[] PROGMEM = "Sunday";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:41:16: error: variable 'dayStr2' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char dayStr2[] PROGMEM = "Monday";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:42:16: error: variable 'dayStr3' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char dayStr3[] PROGMEM = "Tuesday";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:43:16: error: variable 'dayStr4' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char dayStr4[] PROGMEM = "Wednesday";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:44:16: error: variable 'dayStr5' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char dayStr5[] PROGMEM = "Thursday";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:45:16: error: variable 'dayStr6' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char dayStr6[] PROGMEM = "Friday";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:46:16: error: variable 'dayStr7' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char dayStr7[] PROGMEM = "Saturday";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:48:20: error: variable 'dayNames_P' must be const in order to be put into read-only section by means of 'attribute((progmem))'
PGM_P dayNames_P[] PROGMEM = { dayStr0,dayStr1,dayStr2,dayStr3,dayStr4,dayStr5,dayStr6,dayStr7};
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:49:24: error: variable 'dayShortNames_P' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThrFriSat";
^

die DateSprings.cpp die ich verändert habe hänge ich mal unten an.

DateStrings.cpp (2.79 KB)

Weiß nicht was er da noch so groß meckert. Das sieht aber nicht so aus als ob er die Änderungen übernommen hätte. In den Fehlermeldungen steht immer noch kein const und immer noch das PGM_P Makro. Seltsam.

Der Teil ist falsch:

const char* const dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThrFriSat";

Das ist ein normaler String. Kein Array aus Strings. Also ist das zweite const überflüssig.

Es ist aber deutlich dass dir nicht klar ist was du genau machst und wieso diese Änderungen nötig sind. Also lass es lieber sein. Die Methoden selbst sollst du nicht verändern! Also das hier:

const char* const monthShortStr(uint8_t month)

Auch wenn es vielleicht nicht so falsch wäre dass es nicht kompilieren würde (abgesehen davon dass die Deklaration im Header noch anders ist). Die Methode soll aber wie vorher einen char* zurückgeben.
Wenn man einen const char* zurückgibt bedeutet dass man den Rückgabewert nicht in einem normalen char* zuweisen kann und dass man die Daten danach nicht verändern kann. Das ist oft sinnvoll, aber nicht nötig. Einen const char* const kann man auch einem const char* zuweisen. Bringt also nichts.

Jedenfalls muss man nur die PROGMEM Strings anpassen. Sonst nichts!!

Hast du mal probiert einfach die neue Lib Version installieren? Bei mir geht die. Einfach was du schon installiert hast überschreiben und gut ist.

Hallo serenify

danke für die weitere Hilfe.
Du hast recht leider weiß ich nicht wirklich genau was ich da tue meine Hoffnung war dass ich die Änderungen einfach hinbekomme.
Es ist anscheinend nicht so einfach.
jetzt hab ich im Netz die unten aufgeführte DateStrings.cpp überschrieben ( hier sind die von Dir empfohlene Änderungen gemacht) doch leider erhalte ich wieder Folgende Fehlermeldungen: ( stark eingekürtzt)

Arduino: 1.5.7 (Linux), Board: "Arduino Micro"

Verwende die Bibliothek Time im Ordner: /home/rudi/Arduino/libraries/Time (legacy)
Verwende die Bibliothek Wire im Ordner: /home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire (legacy)
Verwende die Bibliothek DS1307RTC im Ordner: /home/rudi/Arduino/libraries/DS1307RTC (legacy)

/home/rudi/Desktop/arduino-1.5.7/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x2341 -DUSB_PID=0x8037 -DUSB_MANUFACTURER= -DUSB_PRODUCT="Arduino Micro" -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/cores/arduino -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/variants/micro -I/home/rudi/Arduino/libraries/Time -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire -I/home/rudi/Arduino/libraries/DS1307RTC /tmp/build98487146593583551.tmp/TimeRTC.cpp -o /tmp/build98487146593583551.tmp/TimeRTC.cpp.o
/home/rudi/Desktop/arduino-1.5.7/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x2341 -DUSB_PID=0x8037 -DUSB_MANUFACTURER= -DUSB_PRODUCT="Arduino Micro" -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/cores/arduino -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/variants/micro -I/home/rudi/Arduino/libraries/Time -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire -I/home/rudi/Arduino/libraries/DS1307RTC -I/home/rudi/Arduino/libraries/Time/utility /home/rudi/Arduino/libraries/Time/Time.cpp -o /tmp/build98487146593583551.tmp/Time/Time.cpp.o
/home/rudi/Desktop/arduino-1.5.7/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega32u4 -DF_CPU=16000000L -DARDUINO=157 -DARDUINO_AVR_MICRO -DARDUINO_ARCH_AVR -DUSB_VID=0x2341 -DUSB_PID=0x8037 -DUSB_MANUFACTURER= -DUSB_PRODUCT="Arduino Micro" -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/cores/arduino -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/variants/micro -I/home/rudi/Arduino/libraries/Time -I/home/rudi/Desktop/arduino-1.5.7/hardware/arduino/avr/libraries/Wire -I/home/rudi/Arduino/libraries/DS1307RTC -I/home/rudi/Arduino/libraries/Time/utility /home/rudi/Arduino/libraries/Time/DateStrings.cpp -o /tmp/build98487146593583551.tmp/Time/DateStrings.cpp.o
In file included from /home/rudi/Arduino/libraries/Time/DateStrings.cpp:10:0:
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:18:18: error: variable 'monthStr1' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr1[] PROGMEM = "January";
^
/home/rudi/Arduino/libraries/Time/DateStrings.cpp:19:18: error: variable 'monthStr2' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char monthStr2[] PROGMEM = "February";
^

/home/rudi/Arduino/libraries/Time/DateStrings.cpp:49:24: error: variable 'dayShortNames_P' must be const in order to be put into read-only section by means of 'attribute((progmem))'
char dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThrFriSat";

Trotz langer Suche habe ich keine Time-Bibliothek ,bei der die DateStrings.cpp angepasst ist, gefunden.

Hast Du eventuell ein?

Danke Rudi01

DateStrings.cpp (2.72 KB)

Bei mir funktioniert die neue Lib. Und vorher hat es auch mit den Änderungen per Hand funktioniert. Ich hatte den Fehler sofort gemerkt als ich auf 1.5.7. umgestiegen bin. Bei UTFT gab es was ähnliches.

Schau dir mal die Fehler-Meldungen genau an. Das sieht nicht so als ob er die Änderungen übernommen hat. Das ist immer noch der alte Code. Kein const. Aber sie scheint im korrekten Verzeichnis zu sein. Vielleicht mal die Lib erst komplett löschen und dann die neue komplett installieren. Weiß auch nicht.

Trotz langer Suche habe ich keine Time-Bibliothek ,bei der die DateStrings.cpp angepasst ist, gefunden.

Das hatte ich doch schon mehrmals verlinkt:

Und als zip:
https://github.com/PaulStoffregen/Time/archive/master.zip

Aber bei mir ging das halt sofort. Ich habe nur alle Dateien entpackt und die alten Überschrieben.

Hi

jetzt hab ichs hinbekommen danke für den Link den vorher hab ich übersehen. In der IDE 1.5.5 läufts jetzt in der 1.5.7 nicht ist abe nicht so wild.

Nochmals vielen Dank Rudi01

Rudi01:
In der IDE 1.5.5 läufts jetzt

Das Update von avr gcc und der avr libc das diese Änderung nötig macht ist darin auch nicht enthalten:

Das ist der springende Punkt:

Upgraded AVR toolchain: gcc 4.8.1, avr-libc 1.8.0