2012-01-05 4 views
2

Я использую библиотеку, которая, к сожалению, кажется, что разработчик больше не работает или не отвечает на проблемы в своем репозитории Git. Библиотека используется для управления HT1632C светодиодных матричных драйверов, и, хотя она работает в 0022/0023, она не работает в Arduino 1.0. При компиляции, мой Sketch дает следующее сообщение об ошибке:Проблема с преобразованием библиотеки Arduino из Arduino 0023 в 1.0

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"

Line 200: size_t write(uint8_t); //changed to resolve conflict with 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)» что это будет работать?

Я попытался сделать это, и он скомпилируется, но я не знаю, заменил ли я слово «пусто» на «size_t» или мне нужно заменить «uint8_t» на «size_t».

ответ

2

так,

size_t ht1632c::write(uint8_t chr) 

является правильным изменение функции. Вы должны также добавить

return 1; 

сразу после линии

sendframe(); 

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

+0

Awesome, спасибо за подтверждение моих результатов и Питер Спасибо за добавление ссылок на термины Arduino! –

Смежные вопросы