Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 17.06.2020, 07:50   #1
NSS
Senior Member
 
Аватар для NSS
 
Регистрация: 25.02.2007
Возраст: 50
Сообщений: 990
Вес репутации: 414/63
NSS is just really niceNSS is just really niceNSS is just really niceNSS is just really niceNSS is just really nice
По умолчанию pic18f26k22. Вопрос по прерыванию USART

Всем здравствовать!

Возникла такая проблема. Необходимо отслеживать окончание передачи байта USART. Но не по прерыванию TXIF, а по факту завершения передачи. То есть по флагу TRMT. Но!!! Необходимо прерывание по этому событию, а TRMT прерывание не вызывает. Все дело в том, что по окончанию передачи необходимо менять состояние ноги PТТ (управление передатчиком FSK). Если переводить РТТ на прием по прерыванию TXIF, то это вызывает ошибку ибо TXIF возникает тогда, когда последний байт еще находится в TSR и он не передается в линию, так как РТТ уже находится на приеме. Очевидные и простые решения вроде задержек в прерывании, чтобы дать возможность TSR закончить передачу не прокатывают - они задерживают работу камня, а у него масса других дел пока идет передача данных. Да и некрасиво в прерывании делать какие то задержки.



Что посоветуете?
__________________
"Ignoramus et ignorabimus..."
NSS вне форума   Ответить с цитированием
Старый 17.06.2020, 08:33   #2
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,048
Вес репутации: 6060/180
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: pic18f26k22. Вопрос по прерыванию USART

Цитата:
Сообщение от NSS Посмотреть сообщение
Что посоветуете?
если прерывания, то просто заряжай на передачу на один байт больше, чем надо. А на этом последнем байте вместо (его) передачи, переключай трансивер.
Greg вне форума   Ответить с цитированием
Старый 17.06.2020, 08:41   #3
NSS
Senior Member
 
Аватар для NSS
 
Регистрация: 25.02.2007
Возраст: 50
Сообщений: 990
Вес репутации: 414/63
NSS is just really niceNSS is just really niceNSS is just really niceNSS is just really niceNSS is just really nice
По умолчанию Re: pic18f26k22. Вопрос по прерыванию USART

Привет! Спасибо, такая мысль тоже появилась. Видимо, другого выхода нет. Но это "затыкание дыры". А спрашивал, потому что думал, что может есть "штатное" решение. Ну да ладно, видимо так и придется сделать. Непонятно почему Microchip не сделает прерывание по оконачнию работы TSR. Из семейства в семейство кочует эта недоработка и все никак не разродятся. А ведь проблема реальная.
Спасибо за совет. Удачи! :-)
__________________
"Ignoramus et ignorabimus..."
NSS вне форума   Ответить с цитированием
Старый 17.06.2020, 11:18   #4
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 61
Сообщений: 3,336
Вес репутации: 4234/123
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: pic18f26k22. Вопрос по прерыванию USART

Цитата:
Сообщение от NSS Посмотреть сообщение
Из семейства в семейство кочует эта недоработка и все никак не разродятся.
Полагаю, что копировался код одного и того же периферийного модуля. Иногда с небольшими косметическими изменениями.
Однако уже:
Цитата:
34.2.1.5 TSR Status
The TXMTIF bit indicates the status of the TSR. This is a read-only bit. The TXMTIF bit is set when the TSR is empty
and idle. The TXMTIF bit is cleared when a character is transferred to the TSR from the UxTXB. The TXMTIF bit
remains clear until all bits, including the Stop bits, have been shifted out of the TSR and a byte is not waiting in the
UxTXB register.
The TXMTIF will generate a summary UxEIF interrupt when the TXMTIE bit is set.
http://ww1.microchip.com/downloads/e.../40002147C.pdf
Марк на форуме   Ответить с цитированием
Старый 17.06.2020, 11:39   #5
NSS
Senior Member
 
Аватар для NSS
 
Регистрация: 25.02.2007
Возраст: 50
Сообщений: 990
Вес репутации: 414/63
NSS is just really niceNSS is just really niceNSS is just really niceNSS is just really niceNSS is just really nice
По умолчанию Re: pic18f26k22. Вопрос по прерыванию USART

Да, интересно. Спасибо. :-)
__________________
"Ignoramus et ignorabimus..."
NSS вне форума   Ответить с цитированием
Старый 19.06.2020, 05:17   #6
al.kl
Senior Member
 
Регистрация: 11.10.2011
Возраст: 25
Сообщений: 305
Вес репутации: 978/45
al.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to beholdal.kl is a splendid one to behold
Отправить сообщение для al.kl с помощью ICQ
По умолчанию Re: pic18f26k22. Вопрос по прерыванию USART

Меня в таких случаях спасает таймер, коих в этом проце не мало.
По каждой передаче байта перезаряжаем таймер. По прерыванию от него имеем окончание передачи пакета.
al.kl вне форума   Ответить с цитированием
Старый 19.06.2020, 07:36   #7
NSS
Senior Member
 
Аватар для NSS
 
Регистрация: 25.02.2007
Возраст: 50
Сообщений: 990
Вес репутации: 414/63
NSS is just really niceNSS is just really niceNSS is just really niceNSS is just really niceNSS is just really nice
По умолчанию Re: pic18f26k22. Вопрос по прерыванию USART

Такая мысль тоже была. Но это такой чудовищный костыль...
А за совет спасибо, приму на вооружение. :-)
__________________
"Ignoramus et ignorabimus..."
NSS вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Снова вопрос по LwIP Petr Cетевые протоколы и технологии 49 05.04.2016 19:10
Вопрос по can-шине авто vw, а точнее по расшифровке данных. Dmitriy_1000 Общетехнические вопросы 0 02.12.2013 09:40
Вопрос по Visual Studio 2008 KSB31 Общетехнические вопросы 12 10.01.2013 01:37
вопрос по сохранению контекста в прерываниях PIC24 Максим2008 Продукция MICROCHIP 5 25.11.2009 09:34
Вопрос по PIC16F916 USART soecho Продукция MICROCHIP 10 27.02.2007 11:06


Часовой пояс GMT +3, время: 19:46.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot