 |
Dingo (24.11.2017 13:50 - 25.11.2017 12:29) , в ответ на если printf в обработчике, то это жесткое турецкое порно. на крайняк какой-нибудь TxDMA_Post(). PUTCHAR где-то там же. все подслова SEND для пакетов читаю как нечто, ожидающее завершения отправки, потому дальше не понял автор: Vit
Оно же не срабатывает? Или всё одно тормозить может(каким образом тогда?!)? Вот поди ж ты - оно! Спасибо. Но почему - всё равно не понял. Внутри версия.
PUTCHAR_PROTOTYPE
{
/* Place your implementation of fputc here */
/* e.g. write a character to the USART */
/* Loop until the end of previeous transmission */
while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)
{}
USART_SendData(EVAL_COM1, (uint8_t) ch);
return ch;
}
printf(); не вызывался вообще за контролируемые интервал времени.
PUTCHAR(); как видите - проверяет флаг, если есть место - запихивает(и тогда ничего не ждёт).
А.. кажется есть правдоподобный вариант: печать отладочной информации завершалась по запихиванию последнего символа, на 57600 это 10 бит => 1/5760 = 173 мксек = ~30000 циклов на 168 МГц. Вот на хвост этого ожидания, пока освободится регистр я и нарывался.
/*рукалицо*/ |