[an error occurred while processing this directive]
вот эта штука будет работать у тебя всегда, без всяких глупых счетчиков CharCount
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ы 05 октября 2005 г. 20:39
В ответ на: Вообще проблема такая: отправлено <font color=gray>Lexandro</font> 05 октября 2005 г. 18:34


u16_t безнаковое 16 бит
s16_t знаковое 16 бит


static u16_t GetTxFreeSz(void) {
s16_t d = ucTXWrNdx - ucTXRdNdx;
if (d < 0) {
d += TXBUFSIZE;
}
return TXBUFSIZE - d;
}


void rsPutByte(BYTE byte) {
u8_t WrNdxBkp;

while(GetTxFreeSz() < 1){};

WrNdxBkp = ucTXWrNdx;
ucTXBuffer[ WrNdxBkp++] = byte;
WrNdxBkp &= TXBUFSIZE - 1;
ucTXWrNdx = WrNdxBkp;

IE2 |= UTXIE1;
}


#pragma vector = UART1TX_VECTOR
__interrupt void usart1_tx(void) {
_EINT();
TXBUF1 = ucTXBuffer[ucTXRdNdx++];
ucTXRdNdx &= TXBUFSIZE - 1;
if(ucTXRdNdx == ucTXWrNdx) {
IE2 &= ~UTXIE1;
}
}


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru