Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Help! Proteus+COMPIM+0модем нет приема :(
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
asf
Есть компонент работы с СОМ портом, загружаю уже даже example по COMPIM , подключаю к СОМу компа ноут с 0-модемным кабелем, начинаю тыкать кнопки на ноуте в HyperTerminal, RXD у COMPIM мигает, но у контроллера нихрена не возникает прерывание!
инициализировал так:
UCSRA = _BV(U2X); /* improves baud rate error @ F_CPU = 1 MHz */
UCSRB = _BV(TXEN)|_BV(RXEN)|_BV(RXCIE); /* tx/rx enable, rx complete intr */
UBRRL = (F_CPU / (8 * 9600UL)) - 1; /* 9600 Bd */
sei(); /* enable interrupts */

а инфу из кома жду уже даже так: if (UCSRA & (1<В чем может быть засада? (при этом TX работает на выход)

Два Hyperterminal друг с другом дружат прекрасно sad.gif

Что может быть? blink.gif
asf
Мужики! Точу гранит науки blink.gif по этой теме в продолжение:

Почему на чтение оно работает:
while (!(UCSRA & (1<<RXC)))
{
}
putchr(UDR);

а как прерывание нет:
CONTROL_DDR = _BV(CLOCKOUT) | _BV(FLASH);
UCSRA = _BV(U2X); /* improves baud rate error @ F_CPU = 1 MHz */
UCSRB = _BV(TXEN)|_BV(RXEN)|_BV(RXCIE); /* tx/rx enable, rx complete intr */
UBRRL = (F_CPU / (8 * 9600UL)) - 1; /* 9600 Bd */
sei(); /* enable interrupts */


ISR(USART_RXC_vect)
{
uint8_t c;

c = UDR;
if (bit_is_clear(UCSRA,FE))
{
rxbuff = c;
intflags.rx_int = 1;
}
}

чЁ за хня?
asf
В общем все решилось версией 6.9 SP5 biggrin.gif
upc2
Протеус реально открывает СОМ порт.Если еще кто-то пытается открыть этот порт,то возникает конфликт.Поэтому для связи Протеуса с приложением на этом же компьютере надо брать разные порты. СОМ1 и СОМ2, и соединить их нуль модемным кабелем.
Проблем не будет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.