Сейчас удалось скомпилировать проект. Помогло произвести замену
SIG_OUTPUT_COMPARE1A -> TIMER1_COMPA_vect
SIG_UART_RECV -> USART_RXC_vect
SIG_UART_DATA -> USART_UDRE_vect
Что так нужно сделать нашёл здесь:
viewtopic.php?f=57&t=147747&hilit=freemodbusСейчас не пойму как проверить работу этой демо программы. С помощью qmodbus посылаю команды на контроллер. Логическим анализатором проверяю есть ли хоть какой-то ответ, но его нет.
Я так понимаю, что если я делаю не широковещательный запрос с указанием неверного id, то его и не должно быть, верно?
Не совсем понятно что происходит в строчке: eStatus = eMBInit( MB_RTU, 0x0A, 0, 38400, MB_PAR_EVEN ); Что это за конструкция? eStatus - что это за переменная, которой присваивается значение функции eMBInit. В целом, я так понимаю, что здесь происходит инициализация протокола. Адрес устройства: 10, скорость 38400, именно такие параметры я устанавливал в qmodbus.
Непонятно что происходит здесь: eStatus = eMBSetSlaveID( 0x34, TRUE, ucSlaveID, 3 ); Меняется id устройства на 52? И что это за массив констант: const UCHAR ucSlaveID[] = { 0xAA, 0xBB, 0xCC };?