DogPawlowa 0 20 сентября, 2014 Опубликовано 20 сентября, 2014 · Жалоба обычную функцию проверки готовности и разрешения прерывания Ага, спасибо! Уже запустил с отдельным флагом, в принципе можно в качестве флага разрешение и использовать, но переделывать уже не буду: Инициализация: OffFlag(tx_over); tx_head0=tx_tail0=0; IE1 |= URXIE0+UTXIE0; Укладка в буфер (DI/EI обязательны!) __disable_interrupt(); PUT_TO_BUFFER(c); #ifdef TX_INTERRUPT if (GetFlag(tx_over)) { IFG1 |= UTXIFG0; OffFlag(tx_over); } #endif __enable_interrupt(); Ну и прерывание: if (tx_tail0!=tx_head0) { d=tx_buf0[tx_tail0]; tx_tail0++; if (tx_tail0==TxBufSize0) tx_tail0=0; TXBUF0 = d; } #ifdef TX_INTERRUPT else OnFlag(tx_over); #endif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться