My Arduino Nano Board only prints out first two letters of String.
My Code:
#include <ArduinoSTL.h>
#include <map>
#include <vector>
#include <utility>
#include <initializer_list>
#include <RTClib.h>
#include <Wire.h>
#include <Adafruit_NeoPixel.h>
RTC_DS1307 rtc;
Adafruit_NeoPixel strip(114, 6, NEO_GRB + NEO_KHZ800);
std::vector<int> make_vector(const std::initializer_list<int> &init_list)
{
std::vector<int> *vec = new std::vector<int>;
for (int *i = init_list.begin(); i != init_list.end(); i++)
{
vec->push_back(*i);
}
return *vec;
}
std::map<uint8_t, std::vector<int>> minutes, hours;
std::vector<int> single_mins, es_ist, uhr, startup_leds;
void setup_vars() {
minutes = {
std::make_pair(5, make_vector({1, 2, 3, 4, 42, 43, 44, 45})),
std::make_pair(10, make_vector({13, 14, 15, 16, 42, 43, 44, 45})),
std::make_pair(15, make_vector({24, 25, 26, 27, 28, 29, 30, 42, 43, 44, 45})),
std::make_pair(20, make_vector({17, 18, 19, 20, 21, 22, 23, 42, 43, 44, 45})),
std::make_pair(25, make_vector({1, 2, 3, 4, 35, 36, 37, 53, 54, 55, 56})),
std::make_pair(30, make_vector({53, 54, 55, 56})),
std::make_pair(35, make_vector({1, 2, 3, 4, 42, 43, 44, 45, 53, 54, 55, 56})),
std::make_pair(40, make_vector({17, 18, 19, 20, 21, 22, 23, 35, 36, 37})),
std::make_pair(45, make_vector({34, 33, 32, 31, 24, 25, 26, 27, 28, 29, 30})),
std::make_pair(50, make_vector({13, 14, 15, 16, 35, 36, 37})),
std::make_pair(55, make_vector({1, 2, 3, 4, 35, 36, 37}))};
hours = {
std::make_pair(1, make_vector({57, 58, 59, 60})),
std::make_pair(2, make_vector({64, 65, 66, 67})),
std::make_pair(3, make_vector({75, 76, 77, 78})),
std::make_pair(4, make_vector({68, 69, 70, 71})),
std::make_pair(5, make_vector({46, 47, 48, 49})),
std::make_pair(6, make_vector({79, 80, 81, 82, 83})),
std::make_pair(7, make_vector({95, 96, 97, 98, 99, 100})),
std::make_pair(8, make_vector({86, 87, 88, 89})),
std::make_pair(9, make_vector({105, 106, 107, 108})),
std::make_pair(10, make_vector({102, 103, 104, 105})),
std::make_pair(11, make_vector({49, 50, 51})),
std::make_pair(12, make_vector({90, 91, 92, 93, 94}))};
single_mins = make_vector({12, 0, 113, 101});
es_ist = make_vector({11, 10, 8, 7, 6});
uhr = make_vector({110, 111, 112});
startup_leds = make_vector({87, 50, 36, 81, 109, 8, 2, 62});
}
String time_to_string(DateTime time) {
return String((char *)time.hour()) + ":" + String((char *)time.minute()) + ":" + String((char *)time.second()) + " " + String((char *)time.dayOfTheWeek()) + " " + String((char *)time.year());
}
void setup() {
Serial.begin(9600);
for (int i = 10; i > 0; i--) {
Serial.println(i);
delay(500);
}
Serial.println("This is a test");
setup_vars();
if (!rtc.begin())
{
Serial.println("Couldn't find RTC");
while (1)
;
}
if (!rtc.isrunning())
{
Serial.println("RTC is NOT running!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
Serial.println("test");
Serial.println(time_to_string(rtc.now()));
}
void loop() {
// put your main code here, to run repeatedly:
}
Anyone knows what the problem is?