Я делал вот так. Работает нормально(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено AndrewKo 11 января 2004 г. 17:07
В ответ на: MSP430... Так что, таймеры в режиме мультивибратора не работают? А я хотел использовать для формирования сигнала направления RS485. Не подскажете, как сделать просто и красиво? отправлено Vladimir Ljaschko 09 января 2004 г. 23:14

правда тормозится немного при опросе флага.
#if __VER__ < 200
void interrupt [UART0TX_VECTOR] write_to_uart( void )
#else
#pragma vector=UART0TX_VECTOR
__interrupt void write_to_uart( void )
#endif
{


if (tx_chars <= 0) /* If tx buffer empty, turn */
{
IE1 &= ~UTXIE0;
IFG1 |= UTXIFG0;
while (!(UTCTL0 & TXEPT));
P3OUT &= ~0x08; // P4.0 disable externat transmitter

return;
}

TXBUF0 = tx_queue[tx_out++] ;

if (tx_out == TX_QUEUE_SIZE)
tx_out = 0;
tx_chars--;

}


void
putc( char c)
{


while (!(tx_chars < TX_QUEUE_SIZE)) ; /* Wait for non-full buffer */
IE1 &= ~UTXIE0; /* Interrupts off */
tx_queue[tx_in++] = c; /* Stuff character in queue */
if (tx_in == TX_QUEUE_SIZE) tx_in = 0; /* Wrap index if needed */
tx_chars++; /* Number of char's in queue */

P3OUT |= 0x08; // P4.0 enable externat transmitter
IE1 |= UTXIE0; /* Enable UART tx interrupt */

}

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

Ответы



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

E-mail: info@telesys.ru