Микроконтроллеры | Непрерываная передача данных через UART PICа |
|
---|---|---|
Делаю приставку, которая отображает текстовую информацию, отправленную с ПК. У меня возникает мысль, что базовые библиотечные функции не успевают обрабатывать приятые байты... |
|
|
Приложите архив с проектом. Вставьте контрольные точки в прогу по этому методу и сразу найдете где прога у вас виснет. |
|
|
да, правильно. Происходит переполнение буфера приема (OERR=1) Да и сам код предельно простой: Karados: и сразу найдете где прога у вас виснет |
|
|
Лучше приложите весь исходник, ошибка-то не обязательно в этом куске может быть. Кстати, уже видна одна проблема - i++ нужно тоже делать в теле if |
|
|
chav1961: i++ нужно тоже делать в теле if |
|
|
А для чего тогда пропускать ее запись в буфер? Получается, что если код символа больше 47, мы в буфер заносим принятый символ, а если код меньше, мы в буфере оставляем неведомую фигню. I-то у Вас в любом случае сдвигается! |
|
|
это кусок для отладки, изначально там вместо "buffer[i]=Ch" байт выводился сразу на ЖК. Моих прерываний нету. |
|
|
Сергей, давайте все-таки весь исходник. Вывод на экран тоже не мгновенно делается. Не исключено, что проблема где-то в другом месте. |
|
|
исходник будет позже. chav1961: Вывод на экран тоже не мгновенно делается |
|
|
Сергей, ради интереса попробуйте вот такой трюк: getch(); // И так раз двадцать... Потом выплюньте в контроллер 20 байт 0xAA без пауз. Если дойти до вывода на ЖКИ не удастся - меняйте компилер или вставляйте ассемблерный кусок. Удастся - разбирайтесь с программой. |
|
|
Форум про радио — сайт, посвященный обсуждению электроники, компьютеров и смежных тем. pro-radio.online | Обратная связь |
© 2003—2024 |