реклама на сайте
подробности

 
 
> Si1000 забывает выставлять прерывание
Vladimir Prokofi...
сообщение Apr 29 2011, 14:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 9-03-11
Пользователь №: 63 481



Проблема есть.

Включаем прерывание на получение символа и ошибку CRC.

Читаем регистр н3 с информацией о приеме символа. Если в этом регистре установлены соответствующие битики, читаем что пришло и снова включаем прием.

Все почти работает -- иногда он "забывает" выставить прерывание. Такое ощущение, что где-то в другом месте читается этот регистр и сбрасывает битики.

Конечно, как только теряется одно прерывание то микросхему я не перевожу в прием. Дальше связи разумеется нет, прерывание не выставляется так как прием выключен.

Я пробовал включить прием всегда, но тогда этот принятый символ не вычитывается из буффера и по новому принятому вычитывается старый байт.

Я пробовал читать из буфера до тех пор, пока буфер не пуст, но тут еще страннее, микросхема иногда "забывает" что я прочитал фифо, считает что он не пуст, и получается бесконечный цикл по прочитыванию последнего байта из фифо.

Вобщем я не понимаю как правильно сделать ей цикл приема.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 07:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01337 секунд с 7
ELECTRONIX ©2004-2016