-
- мдя, на си уже пишут функции-заменители асмовских команд... Жесть. - mazur(24.09.2010 10:52)
- флаговые регистры сбрасываются неправильно. нельзя к ним применять код |= и &=~, поскольку сброс битов осуществляется при записи 1 - mandigit(23.09.2010 13:00)
- ну дак единица и записывается при |=, а больше как? - z00f(23.09.2010 14:55)
- while(!gbi(UCSR1A,UDRE1)); newflag(42 знак., 23.09.2010 11:00)
- Вы правы. Перепутал с UDRIE. Возможно причина в FIFO-буфере. Попробуейте cbi(UCSR1B,RXEN1); в начале sbi(UCSR1B,RXEN1); в конце. - newflag(23.09.2010 12:39)
- Вы что-то путаете уважаемый. Нет в этом регистре такого флага. Он в UCSR1A 5й по счету. Там где вы сказали только его флаг прерывания - z00f(23.09.2010 11:19)
- А флаг принудительно очистить после запрета и перед разрешением прерывания нельзя? - rezident(23.09.2010 00:59)
- RXC ? - Сбрасывал, бестолку. Скажите какой? Весь мозг уже себе вынес... - z00f(23.09.2010 10:25)
- Могу запостить своё решение для rs485, ассемблер, на прерываниях. Будете разбираться? - maik-vs(24.09.2010 10:26 - 10:51)
- Да все уже спасибо, разобрался. Все работает. - z00f(25.09.2010 00:19)
- Зал в нетерпении - где была засада? - Cepгeй Бopщ(25.09.2010 00:30)
- похоже UDR может хранить около 3х байт, если их не вычитывать. Поэтому после отправки каждого байта дожидаюсь TXCn а затем вычитываю байт, жду UDREn затем сбрасываю TXCn и отправляю, новый байт, жду TXCn, вычитываю байт итп... т.к. у меня на драйвере z00f(124 знак., 26.09.2010 21:01)
- Где же 3 байта? Один UDR, один регистр-сдвигатель в Tx и один "задвигатель из Rx - они?. maik-vs(169 знак., 27.09.2010 15:38)
- Один в UDR и два в двухуровневом FIFO-буфере. - newflag(27.09.2010 16:05)
- "похоже" - интересный подход. В даташите четко сказано - один приемный регистр (сдвигатель) и один буферный. А почему бы вам просто не отключать прием (RXEN)? - Cepгeй Бopщ(26.09.2010 21:11)
- Где же 3 байта? Один UDR, один регистр-сдвигатель в Tx и один "задвигатель из Rx - они?. maik-vs(169 знак., 27.09.2010 15:38)
- похоже UDR может хранить около 3х байт, если их не вычитывать. Поэтому после отправки каждого байта дожидаюсь TXCn а затем вычитываю байт, жду UDREn затем сбрасываю TXCn и отправляю, новый байт, жду TXCn, вычитываю байт итп... т.к. у меня на драйвере z00f(124 знак., 26.09.2010 21:01)
- Зал в нетерпении - где была засада? - Cepгeй Бopщ(25.09.2010 00:30)
- Да все уже спасибо, разобрался. Все работает. - z00f(25.09.2010 00:19)
- А кто будет вычитывать накопившееся в UDR? И кто будет сбрасывать TXC перед передачей (см. его описание)? - Cepгeй Бopщ(23.09.2010 11:00)
- да, делал так тоже не помогаетъ... ( z00f(399 знак., 23.09.2010 11:22)
- Могу запостить своё решение для rs485, ассемблер, на прерываниях. Будете разбираться? - maik-vs(24.09.2010 10:26 - 10:51)
- RXC ? - Сбрасывал, бестолку. Скажите какой? Весь мозг уже себе вынес... - z00f(23.09.2010 10:25)