Как считать состояние порта

На этом форуме Вы можете задать вопросы знатокам программы и автору.
Ответить
jimbaton
Рядовой
Сообщения: 9
Зарегистрирован: 19 май 2016, 09:33

Как считать состояние порта

Сообщение jimbaton »

Нужно считать значение единиц и нулей скажем с PortD целиком начиная с IO0 и заканчивая IO7. Потом это преобразовать в STRING в виде 1001101 и передать по UART. Как читать с порта целиком или частями я вроде разобрался, но с выдачей в ком-порт происходит беда. Когда в симуляторе Proteus запускаю программу я вижу что когда на вход порта поданы все нули в УАРТЕ я тоже вижу нули, далее начинаю подавать на каждый из пинов по единице и тоже вижу что происходят изменения, но в УАРТЕ вижу только смену с 0 на 1 а обратно не вижу. Допустим исходное состояние было 0000000, потом оно станет скажем 1111111, но когда я верну все входы обратно на 0000000 то я не увижу этого изменения, а увижу 1111111. Это проблемма в блоке или в чем? Я уже перепробывал разные настроики UART, но к успехам не привело. Вот так я опрашиваю порт, пишу в STRING и отправляю по UART

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13 окт 2015, 16:47
Контактная информация:

Как считать состояние порта

Сообщение Олег »

Вам здесь блок Byte совершенно не нужен, вместо него поставьте Switch (в группе Переключатели) не вход S подключаете выход, на входы 0 и 1 задайте константы 0 и 1 соответственно.
jimbaton
Рядовой
Сообщения: 9
Зарегистрирован: 19 май 2016, 09:33

Как считать состояние порта

Сообщение jimbaton »

согласен что через переключатель лучше. Но проблему вывода информации в COM порт это точно не исправит.Почему при изменении состояния порта в исходное состояние, на выходе ничего не меняется?
OlegAn1962
Лейтенант
Сообщения: 361
Зарегистрирован: 07 сен 2015, 23:53

Как считать состояние порта

Сообщение OlegAn1962 »

А Вы в курсе, что на уарт вы подаете не 7 бит, а 7 БАЙТ?
Последний раз редактировалось OlegAn1962 19 май 2016, 13:04, всего редактировалось 1 раз.
jimbaton
Рядовой
Сообщения: 9
Зарегистрирован: 19 май 2016, 09:33

Как считать состояние порта

Сообщение jimbaton »

Нет, не в курсе. Почему? Не понимаю.  Пните меня в нужном направлении.
По идее не важно сколько я там подаю. Я хочу видеть изменения из исходного состояния в измененное и обратно в исходное. Пока только вижу из исходного в измененное.
Последний раз редактировалось jimbaton 19 май 2016, 13:35, всего редактировалось 1 раз.
OlegAn1962
Лейтенант
Сообщения: 361
Зарегистрирован: 07 сен 2015, 23:53

Как считать состояние порта

Сообщение OlegAn1962 »

jimbaton писал(а):Почему? Не понимаю.  Пните меня в нужном направлении.
Потому что блок Byte преобразует в байты. Олег Вас уже пнул, а Вы сопротивляетесь  Изображение
jimbaton
Рядовой
Сообщения: 9
Зарегистрирован: 19 май 2016, 09:33

Как считать состояние порта

Сообщение jimbaton »

С такои схемои происходит все тоже самое
У вас нет необходимых прав для просмотра вложений в этом сообщении.
OlegAn1962
Лейтенант
Сообщения: 361
Зарегистрирован: 07 сен 2015, 23:53

Как считать состояние порта

Сообщение OlegAn1962 »

По идее, так должно работать, могу посоветовать еще включить подтягивающий резистор на вхоы и инвертировать их.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

Как считать состояние порта

Сообщение rw6cm »

jimbaton писал(а):Нужно считать значение единиц и нулей скажем с PortD целиком начиная с IO0 и заканчивая IO7. Потом это преобразовать в STRING в виде 1001101 и передать по UART
[spoiler=Спойлер][/spoiler]Схемка с первого поста должна работать.
OlegAn1962, правильно подсказал, в зависимости что будет на портах, нужны резисторы, физические подтяжки к 0, или 1, или программно к 1.
С открытым входом нормально не работает.
п/с В схемке выше добавлен блок детектор ( иногда помогает от лишних дублирования данных) хотя по хорошему все упирается в длинные провода, наводки питания и т д.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось rw6cm 20 май 2016, 07:56, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
jimbaton
Рядовой
Сообщения: 9
Зарегистрирован: 19 май 2016, 09:33

Как считать состояние порта

Сообщение jimbaton »

Неееет вы не понимаете я только симулирую в Протеусе. Это не реальное железо. Протеус чтоли глючит или блок какои корявый?
OlegAn1962
Лейтенант
Сообщения: 361
Зарегистрирован: 07 сен 2015, 23:53

Как считать состояние порта

Сообщение OlegAn1962 »

Так соберите схему вживую и узнаете.
jimbaton
Рядовой
Сообщения: 9
Зарегистрирован: 19 май 2016, 09:33

Как считать состояние порта

Сообщение jimbaton »

Дык нет пока возможности собрать вживую
Ответить

Вернуться в «Спросить у знатоков»

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

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