Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2018-окт-17 09:14

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: 2018-май-23 18:50 
Не в сети

Зарегистрирован: 2016-июн-27 12:53
Сообщения: 11
Канал 1 таймера 3 настроен как вход Capture. Могу ли я просто прочитать уровень на этой ноге, как бит PORTx->RXTX, не перепрограммируя функцию ноги как порт?
Или вначале всё-же надо перестроить функцию ноги, как порт, а уже затем читать как бит PORTx->RXTX ?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-май-24 09:00 
Не в сети

Зарегистрирован: 2009-сен-21 12:39
Сообщения: 479
Пробовал на ВЕ9х, вход считывается и без перенастройки порта.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-май-24 09:07 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 395
Скорее всего да, но быстрее было бы попробовать, чем ждать ответ на форуме.
Если не получится, то можно использовать флаги событий из модуля таймера (MDR_TIMER->STATUS биты 13..16 и 5..8 ).
Если есть событие значит порт переключился.

_________________
О сколько нам открытий чудных
Готовит просвященья дух,
И опыт - сын ошибок трудных ... (Пушкин)

Пергаменты не утоляют жажду ("Фауст",Гете)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-май-24 09:39 
Не в сети

Зарегистрирован: 2017-апр-26 14:51
Сообщения: 159
Откуда: ПКК "Миландр"
Перенастраивать не надо, чтение PORTx->RXTX возвращает состояние линии.

_________________
Отдел технической поддержки support@milandr.ru


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-май-24 10:19 
Не в сети

Зарегистрирован: 2016-июн-27 12:53
Сообщения: 11
Vasiliy писал(а):
Перенастраивать не надо, чтение PORTx->RXTX возвращает состояние линии.

Огромное спасибо!

редактор писал(а):
но быстрее было бы попробовать

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-авг-24 16:18 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 11
Vasiliy писал(а):
Перенастраивать не надо, чтение PORTx->RXTX возвращает состояние линии.

А если обобщить?
Верны ли утверждения:
1. Вне зависимости от того, на какие функции (любые, в т.ч. и аналоговые) сконфигурированы выводы порта PORTx, операция чтения PORTx->RXTX всегда даст правильное логическое состояние выводов (естественно, с округлением значений до логических 0 или 1).
2. Вне зависимости от того, на какие цифровые функции (биты ANALOG_EN=1) сконфигурированы выводы порта PORTx, операция чтения PORTx->RXTX всегда даст правильное логическое состояние выводов (естественно, с округлением значений до логических 0 или 1). В случае настройки выводов порта в аналоговый режим данное утверждение не верно.

Судя по картинке тут второе утверждение должно быть верно, а первое нет, т.к. сигнал ANALOG[i]=0 блокирует буфера TX, RX и чтение из буфера RX в этом случае даст непредсказуемый результат.
Также на этой схеме показано, что с выхода буфера RX сигнал RXTXread не проходит через демультиплексор, где разделяется на 4 направления по функциональным блокам. Это подразумевает, что все 4 блока (GPIO, основной, альтернативный и переназначенный) используют один и тот же входной сигнал RXTXread для чтения состояния на ножке. Т.е. при работе в цифровом режиме вне зависимости от настроенной функции, чтение PORTx->RXTX всегда даёт верное логическое состояние на ножке микроконтроллера.

Если я ошибаюсь - поправьте меня. Или дополните.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-авг-24 17:11 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1154
Откуда: Тула
Professor Chaos писал(а):
... Верны ли утверждения:
1. ...
2. Вне зависимости от того, на какие цифровые функции (биты ANALOG_EN=1) сконфигурированы выводы порта PORTx, операция чтения PORTx->RXTX всегда даст правильное логическое состояние выводов (естественно, с округлением значений до логических 0 или 1). В случае настройки выводов порта в аналоговый режим данное утверждение не верно.

Второе утверждение взаимнопротиворечиво, потому верным быть не может (имхо).

Professor Chaos писал(а):
Судя по картинке тут второе утверждение должно быть верно, а первое нет, т.к. сигнал ANALOG[i]=0 блокирует буфера TX, RX и чтение из буфера RX в этом случае даст непредсказуемый результат.

От этого и можно исходить.
Professor Chaos писал(а):
Также на этой схеме показано, что с выхода буфера RX сигнал RXTXread не проходит через демультиплексор, где разделяется на 4 направления по функциональным блокам. Это подразумевает, что все 4 блока (GPIO, основной, альтернативный и переназначенный) используют один и тот же входной сигнал RXTXread для чтения состояния на ножке. ...

Более того, получается можно использовать внутреннее соединение и сигнал, сформированный одним функциональным блоком использовать другим блоком!
Например, настроить PF7 как TMR1_CH1N, а третьим таймером считать количество выданных импульсов через TMR3_CH1 на том же выводе.
Давно интересовало, всё никак не проверю на железе))

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-авг-25 22:34 
Не в сети

Зарегистрирован: 2018-янв-05 23:41
Сообщения: 11
prostoRoman писал(а):
Второе утверждение взаимнопротиворечиво, потому верным быть не может (имхо).

Есть такое.
Попробуем переформулировать тезис под номером 2, разбив его для ясности на 2 части:
Часть А
В случае настройки выводов порта в аналоговый режим (ANALOG[i]=0 и вне зависимости от состояния битовых полей MODEi[1:0] регистра FUNC) чтение PORTx->RXTX даст непредсказуемый результат, следовательно, не имеет смысла.
Часть Б
В случае настройки выводов порта в цифровой режим (ANALOG[i]=1) вне зависимости от состояния битовых полей MODEi[1:0] регистра FUNC, т.е. независимо от того, на какую именно из функций (GPIO, основную, альтернативную, переназначенную) назначены выводы порта, операция чтения PORTx->RXTX всегда даст правильное логическое состояние на выводах микроконтроллера.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


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

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB