Цитата(vetalxh @ Mar 15 2009, 22:31)

Здравия желаю всем !
Делаю устройство на Mega162 с двумя протоколами modbus.
USART0 - master, посылает всего 11 разных запросов. USART1 - slave, отвечает на эти 11 запросов с некоторыми корректировками. То есть устройство устанавливается между master и slave и общается с ними с нужными мне исправлениями.
В общем, сделал отдельно master и slave - работает, но когда все в целом, то работает только slave, а master зацикливается на 1-й посылке, иногда 2-я проскакивает.
Вроде проблема с прерываниями, т.к. slave постоянно принимает и отвечает, и не дает master работать. Игрался с запретом прерываний, но ничего не помогло.
Также делал чтобы slave принял, ответил, а потом master послал, принял, поочередно, но так теряется слейвом фреймы.
У кого могут быть какие идеи? Такое устройство возможно ли вообще?
Мега162, кварц - 3,6864... Параметры связи обоих 2400-О-1...
Делал такое: модбас на меге 162 в два USARTA, без прерываний (только переполнение таймера для интервалов), работает устойчиво на 115200. Кстати, действительно, почему такая маленькая частота кварца? Подсчёт контрольной суммы "на лету". Написано на ассемблере. Если интересно могу выслать исходник без дешифратора команд и других "прибамбасов".
Только работа USATR'ов. Мой адрес sitafern@ukr.net