Я использую библиотеку, которая, к сожалению, похоже, что разработчик больше не работает или не отвечает на проблемы в своем репозитории Git. Библиотека используется для привода HT1632C светодиодных матричных драйверов, и, хотя она работает в 0022/0023, она не работает в Arduino 1.0. При компиляции мой Sketch выдает следующую ошибку:
In file included from Final_code__1_0compatible.cpp:7:
C:\arduino-1.0\libraries\ht1632c/ht1632c.h:182: error: conflicting return type specified for 'virtual void ht1632c::write(uint8_t)'
C:\arduino-1.0\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'
Ссылка на этот сайт: http://arduino.cc/forum/index.php?topic=82450.0, Я нашел комментарий от кого-то, у кого были те же ошибки компиляции, что и я (но с другой библиотекой). Похоже, что их исправить было заменить что-то на "size_t"
Строка 200: size_t write (uint8_t); // изменено для разрешения конфликта с print.h
Конфликтующие строки в файлах библиотеки .h и .cpp выглядят так:
.h:
void write(uint8_t chr);
.cpp:
void ht1632c::write(uint8_t chr)
{
byte x, y;
if (chr == '\n') {
//y_cur += font_height;
} else {
//x_cur += putchar(x_cur, y_cur, chr, GREEN, PROPORTIONAL);
//x_cur = 0;
//y_cur = 0;
}
//sendframe();
}
Я не эксперт по C / C ++, но я прав, если я изменю .h на "size_t write (uint8_t chr)" и .cpp на "size_t ht1632c :: write (uint8_t chr)" что это будет работать?
Я пытался это сделать, и он компилируется, но я не знаю, заменяю ли я слово «void» на «size_t» или мне нужно заменить «uint8_t» на «size_t».