реклама на сайте
подробности

 
 
> Использование библиотеки freemodbus, Как скомпилировать cof-файл для библиотеки freemodbus
AlexKas
сообщение Jun 24 2009, 12:13
Сообщение #1





Группа: Участник
Сообщений: 3
Регистрация: 28-06-08
Из: СПб
Пользователь №: 38 613



Доброго времени суток!!!


Есть мультиплатформенная библиотека freemodbus (http://freemodbus.berlios.de/), которая позволяет реализовать протокол Modbus(slave). Очень хочется ее использовать.

Я только начинаю работать с WinAVR, поэтому испытываю трудности при работе с make-файлами. В данной ситуации у меня не получается скомпилировать cof-файл для demo.c . Какие изменения необходимо внести в make-файл, чтобы получить cof-файл?Прикрепленный файл  Makefile.rar ( 1.18 килобайт ) Кол-во скачиваний: 147


Подскажите, как скомпилировать и запустить на моделирование demo в AVRStudio без внешнего make-файла?

Спасибо за помощь!!!

Примечание: Спасибо ARV за помощь с hex!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
alux
сообщение Jan 24 2011, 23:50
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447



Пытаюсь запустить freeModBus для AVR. Переделал код под IAR.
Код
#define REG_INPUT_START 1000
#define REG_INPUT_NREGS 4

/* ----------------------- Static variables ---------------------------------*/
static USHORT   usRegInputStart = REG_INPUT_START;
static USHORT   usRegInputBuf[REG_INPUT_NREGS];

/* ----------------------- Start implementation -----------------------------*/
int
main( void )
{
    eMBErrorCode    eStatus;

    eStatus = eMBInit( MB_RTU, 0x01, 0, 9600, MB_PAR_NONE );
    __enable_interrupt();

    /* Enable the Modbus Protocol Stack. */
    eStatus = eMBEnable(  );

    for(;; )
    {
        ( void )eMBPoll(  );

        /* Here we simply count the number of poll cycles. */
        usRegInputBuf[0]++;
    }
}


От Мастера даю запрос на чтение одного регистра:
Код
mb.ReadOutputRegisters(0x01, 1000, 1, wTempData);

упорно отвечает ошибкой:
Код
01 83 02 C0

Контроллер Mega128, F_CPU 11059200, MB_TIMER_PRESCALER 1024

Другая реализация протокола ModBus для Mega128 на этот запрос отвечает нормально. Наблюдаю в PortMonitor. А c FreeModBus - ошибка. Уже не знаю что и думать... Куда копать?

Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jan 25 2011, 06:26
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(alux @ Jan 25 2011, 02:50) *
От Мастера даю запрос на чтение одного регистра:
Код
mb.ReadOutputRegisters(0x01, 1000, 1, wTempData);

упорно отвечает ошибкой:
Код
01 83 02 C0

Контроллер Mega128, F_CPU 11059200, MB_TIMER_PRESCALER 1024

Другая реализация протокола ModBus для Mega128 на этот запрос отвечает нормально. Наблюдаю в PortMonitor. А c FreeModBus - ошибка. Уже не знаю что и думать... Куда копать?

Посмотрите диапазон адресов по умолчанию.
Скорее всего он начинается не с 1000, а с 0х1000.
Ну и код ошибки. Скорее всего, это оно и есть.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 21:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016