Задача: дополнить (видоизменить) код, чтобы получить работающие ф-и putchar(), getchar() в CV_AVR с интерфейсом RS485 (для тестирования функций получения/отправки символа с помощью терминала).
Исходные данные:
1)Работающий на прерываниях RX Complete, TX Complete (проверенный на железе) автоматич. код программы обмена по RS-232. Комп (RS232)==================RS232/USART0 MEGA2560.
2)Собранная схема: Комп ---RS232/RS485==========RS485/USART0 MEGA2560 (считаем что аппаратная часть схемы работает).
При переделке кода возможно потребуются:
- прерывание USART0_UDRE в добавок имеющимся USART0_RXC, USART0_TXC. (в коде уже присутствует функция обработчика в закомментированном виде).
- идентификаторы включения приема/передачи(TX() и RX() (уже описаны в коде)
- внесение паузы между приемом и передачей размером 1mc (2mc). //по совету Ю.Ревича t(сек)=1*10/9600, где 10 число бит в посылке, 9600 скорость обмена//
Примечание. Решение использовать (как основу) готовый код для работы с USART объясняется следующими причинами:
- функции обработчиков уже включают ф-и проверки переполнения буфера, защиты от ошибок;
- код проверен в работе (с RS232 работает надежно);
- позволяет использовать стандартные ф-и getchar(), putchar();
- автоматически инициализирует USART;
- экономит время написания программы.
Столкнулся с трудностями при реализации. Буду признателен, кто поможет решить данную задачу.
Код обмена по RS-485 в CV_AVR (на базе кода Wizarda).
Код обмена по RS-485 в CV_AVR (на базе кода Wizarda).
- Вложения
-
- 27_09_11.c
- Работающий на прерываниях RX Complete, TX Complete (проверенный на железе) автоматич. код программы обмена по RS-232. Комп (RS232)===RS232/USART0 MEGA2560.
- (5.95 КБ) 362 скачивания
- Реклама