Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/24: Рейтинг темы: голосов - 24, средняя оценка - 4.83
troyt777
0 / 0 / 0
Регистрация: 24.09.2011
Сообщений: 1
1

Обмен данными по RS-485 в CodeVisionAVR (на базе кода Wizard

27.09.2011, 23:13. Просмотров 4469. Ответов 2
Метки нет (Все метки)

Задача: дополнить (видоизменить) код на С (в CodeVisionAvr) , чтобы получить работу функций приема/передачи (getchar, putchar) по RS485. Тестирование функций - с помощью терминала по схеме: Комп/RS232/RS485==========RS485/USORT0 MEGA2560.

Исходные данные:
1)Работающий на прерываниях RX Complete, TX Complete (проверенный на железе) автоматич. код программы обмена по RS-232. Комп/RS232==================RS232/USORT0 MEGA2560.

2)Собранная схема: Комп /RS232/RS485==========RS485/USORT0 MEGA2560 (считаем что аппаратная часть схемы работает). Переключение прием/передача с помощью вывода PE7.

Задача: дополнить (видоизменить) код, чтобы получить работающие ф-и putchar(), getchar() в CV_AVR с интерфейсом RS485 (для тестирования функций получения/отправки символа с помощью терминала).

При переделке кода возможно потребуются:
- прерывание USORT0_UDRE в добавок имеющимся USORT0_RXC, USORT0_TXC. (в коде уже присутствует функция обработчика в закомментированном виде).
- идентификаторы включения приема/передачи(TX() и RX() (уже описаны в коде)
- внесение паузы между приемом и передачей размером 1mc (2mc). //по совету Ю.Ревича t(сек)=1*10/9600, где 10 число бит в посылке, 9600 скорость обмена//

Столкнулся с трудностями при реализации. Буду признателен, кто поможет решить данную задачу.

[6.04 Кб]
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2011, 23:13
Ответы с готовыми решениями:

Обмен данными между МК через RS-485 (MAX487)
Доброго времени суток. Сразу к делу: В сообщении прикреплено фото и файл исходного кода...

Обмен данными c ПЛК Moeller-SC-CPU-201 (CodeSys) по Modbus-протоколу в сети RS-485
Добрый день! Прошу помощи, уже отчаялся искать в чем проблема: Есть ПЛК moeller-xc-cpu-201,...

Проблема с обменом данными по RS-485
Доброго времени суток. Пытаюсь наладить обмен данными между мегой с ADM485 и промышленным датчиком...

IDE CodeVisionAVR Пропала область отображения кода
Драсте! Подскажите, как восстановить? Нажимаю на файл *.c не помогает

Проверка подключения RS-485 через преобразователь USB/RS-485
Добрый вечер, форумчане! Я относительно навичек софт-программист, и уж тем более навичек в...

2
Midyk88
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 213
27.09.2011, 23:41 2
ну если МК будет слейв, то его нужно держать в режиме приема. когда нужно отравить байт (путчар): делаешь TX() (твой макрос), записываешь данные в выходной буфер, там же взводишь таймер на 2 мс. по прерыванию таймера из буфера выталкиваешь байт в порт. по прерыванию UDRE (данные отправились) переводишь режим работы опять на прием. опять же нужно учесть 2 мс (для пущей надежности запретить на это время прием, чтоб не принять мусор). ну и, конечно, со сторона компа выдерживать 2 мс после приема, перед тем как слать данные.
0
Midyk88
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 213
27.09.2011, 23:43 3
для уменьшения размера прерывания (чтобы не работать с буфером в прерывании, ибо это достаточно долго, в функции путчар достаешь нужный байт, пихаешь его в глобальную переменную. а по прерыванию таймера просто эту переменную суешь в UDR. и она отправляется.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2011, 23:43

Замена кода в console wizard на код в C++ builder
#include <vcl.h> #include<iostream.h> #include<string.h> #pragma argsused int main(int argc,...

Обмен данными
Добрый день, подскажите как реализовать следующее в базе данных создаем поручение отправляем...

Обмен данными
Здраствуйте, я начинающий и делаю вертолёт на р.у. Нужно сделать обмен данными(не отправка в один...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru