Можно тоже вопрос?
Через USART1 пытаюсь организовать прием/отправку байт(ну вобщем как по теме)
Вот собсно сам код процедуры
Код
void AT91F_US_Get(void) {
char inCh, outCh;
AT91F_PIO_ClearOutput(AT91C_BASE_PIOA, LED_MASK);
AT91F_PIO_SetOutput(AT91C_BASE_PIOA, LED_MASK);
while (!AT91F_US_RxReady(AT91C_BASE_US1));
inCh = (AT91C_BASE_US1->US_RHR) & 0x1FF;
outCh = inCh;
AT91C_BASE_US1->US_THR = outCh & 0x1FF;
}
В main() крутится цикл
Код
while(1) AT91F_US_Get();
Проблема в том, что отсылая, к примеру, 12 одинаковых байт через Comtest на USART1, обратно получаю неопределенное количество(8, 10, 9, очень редко 12). Даже если отсылаю по одному байту, то не всегда срабатывает ответ... Не могу найти причину...
З.Ы. Использую обработчик прерываний, который предоставил beer_warrior
Сообщение отредактировал Redaer - Jul 20 2006, 08:53