nik_al (18.08.2005 09:17, просмотров: 1) ответил POV на В 125-ом такого нет, всё работает отлично....
Уточнение:(последний вариант) Имееется 8051F122 100mHz, работают оба UARTа(по прерываниям). Скорсть 0-го 4800-115200, скорость 1-го 1250000
Вот кусочек где инициализируется передача пакета по UART1:
SFRPAGE=UART1_PAGE;
EA = 0;
SCON1&= ~0x10; //выкл.приемник
SBUF1=START_BYTE; //начало пакета
tx_count1=0;
EA = 1;
while(tx_count1<tx_tail1));//ждем когда байты пакета передадутся по прерыванию
Если убрать запрещение/разрешени прерыван. (EA=0/1) то программа переодически(раз в несколько часов) виснет в цикле while(tx_count1<tx_tail1)). Т.е. в SBUF1 байт положили а прерывание на передачу не пришло.
А по опросу хуже получается - приходится запрещать прерывания на время передачи всего пакета :(
P.S. Спрашивал еще на silabs.ru но там видно народа маловато.