Микроконтроллер из компа. Таймер, прерывания.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Грызет канифоль
Аватара пользователя
Сообщения: 270
Зарегистрирован: Вс окт 20, 2019 13:03:56

Сообщение Shuspano »

Потихоньку осваиваиваю LPT порт, в качестве порта ввода-вывода. Программы типа помигать светодиодом, вывести на 1602 вполне удаются. GCC нормально так ворочает битами, в гнутом хозяйстве нашелся даже аналог _delay_us(), причем аж 32-битный.
Но очень не хватает таймера и прерываний. Системный таймер похоже не мой, он занят под SysTick или что-то еще. LPT-порт в режиме EPP и ECP может генерить прерывание, и вот вопрос: можно ли каким-то образом свой обработчик прерывания порта разместить в своей программе? Без необходимости взаимодействия с ядром или еще чем-то непонятным.
Реклама
Мудрый кот
Сообщения: 1779
Зарегистрирован: Вт авг 15, 2017 10:51:13

Сообщение jcxz »

[uquote="Shuspano",url="/forum/viewtopic.php?p=4616262#p4616262"]Потихоньку осваиваиваю LPT порт, в качестве порта ввода-вывода.[/uquote]LPT-порт в 2024-м году???! Ужас! :facepalm: В какой вечной мерзлоте вы спали последние ~30 лет? LPT-порт уже давно никто не использует для ввода-вывода. Для этого есть более подходящие: UART, USB, Bluetooth, Ethernet, WiFi, etc. Используйте один из них.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6337
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

Заглавие темы сформулировано странно. Насколько я в курсе, в компе нет МК, есть его штатный процессор. О каких прерываеиях идёт речь? О таймерных, обрабатываемых операционной системой? Так с ними вроде разбирается драйвер порта.
Изображение
Друг Кота
Аватара пользователя
Сообщения: 3497
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Сообщение smacorp »

Jack_A, ну, вообще говоря, на некоторых материнках есть специализированные МК, специально для работы с UEFI bios. Кроме того, технология Intel ME тоже суть есть отдельный МК.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 15700
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Для пработы под DOS и/или win98 соорудить из персоналки на основе материнок с процессорами от 386 до пенька 1го (да еще и с ISA шиной) мощный вариант прикладного контроллера нет никаких проблем.
Другое дело на чем более современном...
Правда и DOS и win98 запустить не особо проблема - разве что драйверов для этого софта под современное железо уже можно и не сыскать... Да и на PCI шинку подвесить плату прототипа уже заметно сложнее, чем на шинку ISA.
Вот на той плате прототипа (предусмотренной и железом и софтом) можно что угодно добавить - и таймеры и память и АЦП/ЦАП и чего еще пожелается.
8)
Ностальжи... Или оригинальный эксклюзив в единственном варианте.
Другое дело работа с СОМ (USB-COM) -этот способ еще долго существовать будет.
:roll:
Реклама
Это не хвост, это антенна
Сообщения: 1339
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

jcxz писал(а):LPT-порт в 2024-м году???!
Теперь, коллега, можешь представить моё ох..ние, когда я увидел шестипульсовый тиристорный выпрямитель для дизель-генератора на автомотрисе для РЖД, работающий под MS-DOS и управляющий тиристорами через LPT-порт. Это работало на плате с AMD Geode.
Реклама
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Ср сен 02, 2015 07:47:20

Сообщение HardWareMan »

20+ лет назад я для своего ноута на 386 процессоре программу выгрузки программ на ЛК "Специалист", а затем руководитель кружка попросил адаптировать её на его ноут с 486 процессором. Но так как я использовал системный таймер адаптировать не пришлось - всё работало и так, хотя скорость процессора и отличалась. Вот пара скринов из проги (работает только в чистом DOS, винду детектит):
Изображение
Изображение
Друг Кота
Аватара пользователя
Сообщения: 6673
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Сообщение AlexS4 »

судя по тому что ТС упомянул GCC и SysTick речь скорее о чемто посовременнее DOS ))

[uquote="Shuspano",url="/forum/viewtopic.php?p=4616262#p4616262"]Системный таймер похоже не мой, он занят под SysTick или что-то еще. LPT-порт в режиме EPP и ECP может генерить прерывание, и вот вопрос: можно ли каким-то образом свой обработчик прерывания порта разместить в своей программе? Без необходимости взаимодействия с ядром или еще чем-то непонятным.[/uquote]
чтоб совсем без взаимодействия с ядром - это врядли :dont_know: :dont_know: , но например можно использовать готовые модули низкоуровневых юзерспэйс интерфейсов gpio напр.
ищи gpio-cdev или его предшественника libgpio
и прочитаай про uio концепцию,
uio_event_notifi напр интересная функция
и впринципе писать приметивные модули ядра - это не так уж заоблачно.
а затем через файлы /dev/ и sysfs обмениваться юзерспэйсным софтом написанным без специфических либов, чисто open/read/write 8)
Мучитель микросхем
Сообщения: 440
Зарегистрирован: Ср сен 02, 2015 07:47:20

Сообщение HardWareMan »

[uquote="AlexS4",url="/forum/viewtopic.php?p=4618964#p4618964"]судя по тому что ТС упомянул GCC и SysTick речь скорее о чемто посовременнее DOS ))[/uquote]
Ну не может же он путать LPT (с его EPP и ECP) и GPIO там, где есть настоящий SysTick? Просто, вероятно, человек назвал привычным словом сущность, которая выглядит как SysTick. Он же сказал явно "Системный таймер похоже не мой, он занят под SysTick". А там, где есть настоящий SysTick он сам является аппаратным выделенным таймером с этим названием.
Грызет канифоль
Аватара пользователя
Сообщения: 270
Зарегистрирован: Вс окт 20, 2019 13:03:56

Сообщение Shuspano »

Я просто думаю, как использовать оборудование компьютера в качестве аналогов тех устройств, что обычно встречаются в МК. Там есть таймер, есть прерывания, есть практически все что надо, но до всего этого непонятно как добраться.
Без прерываний можно только унылые polling и bitbang, но контроллер прерываний APIC занят.
OKF
Это не хвост, это антенна
Сообщения: 1432
Зарегистрирован: Вт июн 07, 2011 08:03:18

Сообщение OKF »

Да уж. Суровый у вас получается "микроконтроллер".)
Тут, иной раз думаешь куда девать старинные процессоры, типа z80 и им подобных. И, как ни крути, ну нигде им места не находится! Потому что сегодняшние МК выигрывают по всем показателям у своих предков. А тут...
Друг Кота
Аватара пользователя
Сообщения: 3497
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Сообщение smacorp »

Что значит как до них добраться? Любой язык программирования содержит встроенные компоненты для работы с тем же таймером, COM и т.д., нужно лишь уметь программировать под Windows, Linux, Android и прочие ОС.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Друг Кота
Аватара пользователя
Сообщения: 15700
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Посмотреть старые учебники по начинке компов и средствах доступа к ним.
Времён начала DOS.
(Если терпения и настроения хватит).
Ознакомиться с литературой по комплектам периферийных БИС, начиная с КР580ххххи далее К1810хххх семейство Интел 82хххх - там книжек три - четыре минимум.
Да очень хорошее пособие по применению IBM PC в качестве самодельного прибора:

"Сопряжение датчиков и устройств ввода данных с компьютером IBM PC. "
Пер. с англ. /Под ред. У. Томпкинса, Дж. Уэбстера.
- М.: Мир, 1992.

Очень полезная книжка!
:hunger: :hunger: :hunger:
Друг Кота
Аватара пользователя
Сообщения: 6673
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Сообщение AlexS4 »

думаю ТС надо просто обьявить каким образом он хочет запускать самописный софт на PC:
1. из современной os вроде linux (все современные удобства вроде nginx,sshd,fuse,bridge,md,,...)
2. из современных загрузчиков вроде refind, grub2 (будет поддержка разделов, файлов, терминалов, минимальный ip (dhcp,tftp,...))
3. из msdos/pcdos mbr-boot с подменой command.com или через него (будет урезанная поддержка из 2. ограниченная старыми стандартами на размеры дисков, имена файлов итп)
4. вообще писать свой стартер в mbr (будет поддержка прерываний (функций) bios)
5. заменять bios своим кодом (будет ПОЛНАЯ СВОБОДА ... в разумных пределах ;) )

все 5 путей совершенно реальны и все 5 дают разные возможности и требуют изучать разные вещщи. например если требуются готовые сетевые протоколы вроде ip-tls-https то разумнее не хвататься за неподьемный обьем и пойти по 1., а если не нужны никакие привычные комппютерные удобства, даже файлы то можно смело выбирать 4. и несмело 5. (в 5. потребуется изучать оборудование конкретной MB, что бывает адекватно задаче только если у вас 100500 одинаковых мамок в запасе, иначе лучше отвязаться от тучи железных мелочей (4.) )

как начать идти по 1му пути я намекнул выше :)
поискав по словам из пункта 2. можно дочитаться до путей в остальные 4 варианта.
:music:
Друг Кота
Сообщения: 7722
Зарегистрирован: Вс июл 24, 2011 11:38:09

Сообщение 74LS00 »

Из всех режимов у порта используют только один. Полноскоростной не использует никто в поделках.
Если не юзать порт напрямую на ключи, то проще делать МК по USB, и проще комп найти нужный. И можно сразу на андроид.

Порт работает через драйвер винды, под 64бит там ещё костыль надо с пробросом.

На сколько помню у порта 8 бит на вывод и 4 на ввод, при этом сам ПК определяет что делать.
Писать под винду не силён.
Контактная информация:
Грызет канифоль
Аватара пользователя
Сообщения: 270
Зарегистрирован: Вс окт 20, 2019 13:03:56

Сообщение Shuspano »

Эх, как все сложно. Чтоб приделать кнопку, по ходу надо писать модуль ядра :(
Под ДОС наверное проще, там прямой доступ к оборудованию. Но хочется еще чтоб комп был компом.
Друг Кота
Аватара пользователя
Сообщения: 6673
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Сообщение AlexS4 »

для кнопки - прерывания не являются необходимостью, там и эффективности опроса хватит с запасом даж для 10mS реакции.
еще кнопку можно обрабатывать uhid, юзерспэйсным обработчиком

в DOS - относительно прощще, там можно полностью забрать себе клавиатурное прерывание например, никто не помешает :) но компом в современном понимании дос комп можно назвать с серьезной натяжкой :dont_know:
Друг Кота
Аватара пользователя
Сообщения: 6337
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

[uquote="AlexS4",url="/forum/viewtopic.php?p=4622391#p4622391"]но компом в современном понимании дос комп можно назвать с серьезной натяжкой :dont_know:[/uquote]
В зависимости от задач. Стрелялки-пукалки, стримы на нём не заработают, но с задачей управления даже очень серьёзным оборудованием справится легко. Даже на не очень сильном железе, потому что будут убраны ненужные красивости-бантики.
Изображение
Друг Кота
Аватара пользователя
Сообщения: 6673
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Сообщение AlexS4 »

Jack_A, я выше приводил пример нужного красивого бантика: tls
(libssl+libgnutls) на дос это замучаешься порикручивать, а без них никакой современной связи :dont_know:
и так дальше, куда не плюнь, даж простейший opensshd уже оброс таким количеством трудноотделяемых бантиков что проще таки пойти на линукс чем изгаляться с dh, libcrypt в системе где нет нужной инфраструктуры, говорю как любитель собирать статические бизибоксы под минмалистичные конфиги :)
Грызет канифоль
Аватара пользователя
Сообщения: 270
Зарегистрирован: Вс окт 20, 2019 13:03:56

Сообщение Shuspano »

Недостаток поллинга что приходится вечно крутится в цикле ожидания. А я уже распробовал прерывания на обычных МК, и могу сказать что это вкусно.
Хочется теперь на 12-ядерном 64-битном МК :)
Ответить

Вернуться в «Разные вопросы по МК»