Но очень не хватает таймера и прерываний. Системный таймер похоже не мой, он занят под SysTick или что-то еще. LPT-порт в режиме EPP и ECP может генерить прерывание, и вот вопрос: можно ли каким-то образом свой обработчик прерывания порта разместить в своей программе? Без необходимости взаимодействия с ядром или еще чем-то непонятным.
Микроконтроллер из компа. Таймер, прерывания.
- Сообщения: 270
- Зарегистрирован: Вс окт 20, 2019 13:03:56
Потихоньку осваиваиваю LPT порт, в качестве порта ввода-вывода. Программы типа помигать светодиодом, вывести на 1602 вполне удаются. GCC нормально так ворочает битами, в гнутом хозяйстве нашелся даже аналог _delay_us(), причем аж 32-битный.
Но очень не хватает таймера и прерываний. Системный таймер похоже не мой, он занят под SysTick или что-то еще. LPT-порт в режиме EPP и ECP может генерить прерывание, и вот вопрос: можно ли каким-то образом свой обработчик прерывания порта разместить в своей программе? Без необходимости взаимодействия с ядром или еще чем-то непонятным.
Но очень не хватает таймера и прерываний. Системный таймер похоже не мой, он занят под SysTick или что-то еще. LPT-порт в режиме EPP и ECP может генерить прерывание, и вот вопрос: можно ли каким-то образом свой обработчик прерывания порта разместить в своей программе? Без необходимости взаимодействия с ядром или еще чем-то непонятным.
- Реклама
- Сообщения: 1779
- Зарегистрирован: Вт авг 15, 2017 10:51:13
[uquote="Shuspano",url="/forum/viewtopic.php?p=4616262#p4616262"]Потихоньку осваиваиваю LPT порт, в качестве порта ввода-вывода.[/uquote]LPT-порт в 2024-м году???! Ужас!
В какой вечной мерзлоте вы спали последние ~30 лет? LPT-порт уже давно никто не использует для ввода-вывода. Для этого есть более подходящие: UART, USB, Bluetooth, Ethernet, WiFi, etc. Используйте один из них.
Заглавие темы сформулировано странно. Насколько я в курсе, в компе нет МК, есть его штатный процессор. О каких прерываеиях идёт речь? О таймерных, обрабатываемых операционной системой? Так с ними вроде разбирается драйвер порта.
Jack_A, ну, вообще говоря, на некоторых материнках есть специализированные МК, специально для работы с UEFI bios. Кроме того, технология Intel ME тоже суть есть отдельный МК.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Для пработы под DOS и/или win98 соорудить из персоналки на основе материнок с процессорами от 386 до пенька 1го (да еще и с ISA шиной) мощный вариант прикладного контроллера нет никаких проблем.
Другое дело на чем более современном...
Правда и DOS и win98 запустить не особо проблема - разве что драйверов для этого софта под современное железо уже можно и не сыскать... Да и на PCI шинку подвесить плату прототипа уже заметно сложнее, чем на шинку ISA.
Вот на той плате прототипа (предусмотренной и железом и софтом) можно что угодно добавить - и таймеры и память и АЦП/ЦАП и чего еще пожелается.
Ностальжи... Или оригинальный эксклюзив в единственном варианте.
Другое дело работа с СОМ (USB-COM) -этот способ еще долго существовать будет.

Другое дело на чем более современном...
Правда и DOS и win98 запустить не особо проблема - разве что драйверов для этого софта под современное железо уже можно и не сыскать... Да и на PCI шинку подвесить плату прототипа уже заметно сложнее, чем на шинку ISA.
Вот на той плате прототипа (предусмотренной и железом и софтом) можно что угодно добавить - и таймеры и память и АЦП/ЦАП и чего еще пожелается.
Ностальжи... Или оригинальный эксклюзив в единственном варианте.
Другое дело работа с СОМ (USB-COM) -этот способ еще долго существовать будет.
- Реклама
- Сообщения: 1339
- Зарегистрирован: Вт ноя 19, 2019 06:10:18
Теперь, коллега, можешь представить моё ох..ние, когда я увидел шестипульсовый тиристорный выпрямитель для дизель-генератора на автомотрисе для РЖД, работающий под MS-DOS и управляющий тиристорами через LPT-порт. Это работало на плате с AMD Geode.jcxz писал(а):LPT-порт в 2024-м году???!
- Сообщения: 440
- Зарегистрирован: Ср сен 02, 2015 07:47:20
20+ лет назад я для своего ноута на 386 процессоре программу выгрузки программ на ЛК "Специалист", а затем руководитель кружка попросил адаптировать её на его ноут с 486 процессором. Но так как я использовал системный таймер адаптировать не пришлось - всё работало и так, хотя скорость процессора и отличалась. Вот пара скринов из проги (работает только в чистом DOS, винду детектит):




судя по тому что ТС упомянул GCC и SysTick речь скорее о чемто посовременнее DOS ))
[uquote="Shuspano",url="/forum/viewtopic.php?p=4616262#p4616262"]Системный таймер похоже не мой, он занят под SysTick или что-то еще. LPT-порт в режиме EPP и ECP может генерить прерывание, и вот вопрос: можно ли каким-то образом свой обработчик прерывания порта разместить в своей программе? Без необходимости взаимодействия с ядром или еще чем-то непонятным.[/uquote]
чтоб совсем без взаимодействия с ядром - это врядли
, но например можно использовать готовые модули низкоуровневых юзерспэйс интерфейсов gpio напр.
ищи gpio-cdev или его предшественника libgpio
и прочитаай про uio концепцию,
uio_event_notifi напр интересная функция
и впринципе писать приметивные модули ядра - это не так уж заоблачно.
а затем через файлы /dev/ и sysfs обмениваться юзерспэйсным софтом написанным без специфических либов, чисто open/read/write
[uquote="Shuspano",url="/forum/viewtopic.php?p=4616262#p4616262"]Системный таймер похоже не мой, он занят под SysTick или что-то еще. LPT-порт в режиме EPP и ECP может генерить прерывание, и вот вопрос: можно ли каким-то образом свой обработчик прерывания порта разместить в своей программе? Без необходимости взаимодействия с ядром или еще чем-то непонятным.[/uquote]
чтоб совсем без взаимодействия с ядром - это врядли
ищи gpio-cdev или его предшественника libgpio
и прочитаай про uio концепцию,
uio_event_notifi напр интересная функция
и впринципе писать приметивные модули ядра - это не так уж заоблачно.
а затем через файлы /dev/ и sysfs обмениваться юзерспэйсным софтом написанным без специфических либов, чисто open/read/write
- Сообщения: 440
- Зарегистрирован: Ср сен 02, 2015 07:47:20
[uquote="AlexS4",url="/forum/viewtopic.php?p=4618964#p4618964"]судя по тому что ТС упомянул GCC и SysTick речь скорее о чемто посовременнее DOS ))[/uquote]
Ну не может же он путать LPT (с его EPP и ECP) и GPIO там, где есть настоящий SysTick? Просто, вероятно, человек назвал привычным словом сущность, которая выглядит как SysTick. Он же сказал явно "Системный таймер похоже не мой, он занят под SysTick". А там, где есть настоящий SysTick он сам является аппаратным выделенным таймером с этим названием.
Ну не может же он путать LPT (с его EPP и ECP) и GPIO там, где есть настоящий SysTick? Просто, вероятно, человек назвал привычным словом сущность, которая выглядит как SysTick. Он же сказал явно "Системный таймер похоже не мой, он занят под SysTick". А там, где есть настоящий SysTick он сам является аппаратным выделенным таймером с этим названием.
- Сообщения: 270
- Зарегистрирован: Вс окт 20, 2019 13:03:56
Я просто думаю, как использовать оборудование компьютера в качестве аналогов тех устройств, что обычно встречаются в МК. Там есть таймер, есть прерывания, есть практически все что надо, но до всего этого непонятно как добраться.
Без прерываний можно только унылые polling и bitbang, но контроллер прерываний APIC занят.
Без прерываний можно только унылые polling и bitbang, но контроллер прерываний APIC занят.
- Сообщения: 1432
- Зарегистрирован: Вт июн 07, 2011 08:03:18
Да уж. Суровый у вас получается "микроконтроллер".)
Тут, иной раз думаешь куда девать старинные процессоры, типа z80 и им подобных. И, как ни крути, ну нигде им места не находится! Потому что сегодняшние МК выигрывают по всем показателям у своих предков. А тут...
Тут, иной раз думаешь куда девать старинные процессоры, типа z80 и им подобных. И, как ни крути, ну нигде им места не находится! Потому что сегодняшние МК выигрывают по всем показателям у своих предков. А тут...
Что значит как до них добраться? Любой язык программирования содержит встроенные компоненты для работы с тем же таймером, COM и т.д., нужно лишь уметь программировать под Windows, Linux, Android и прочие ОС.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Посмотреть старые учебники по начинке компов и средствах доступа к ним.
Времён начала DOS.
(Если терпения и настроения хватит).
Ознакомиться с литературой по комплектам периферийных БИС, начиная с КР580ххххи далее К1810хххх семейство Интел 82хххх - там книжек три - четыре минимум.
Да очень хорошее пособие по применению IBM PC в качестве самодельного прибора:
"Сопряжение датчиков и устройств ввода данных с компьютером IBM PC. "
Пер. с англ. /Под ред. У. Томпкинса, Дж. Уэбстера.
- М.: Мир, 1992.
Очень полезная книжка!

Времён начала DOS.
(Если терпения и настроения хватит).
Ознакомиться с литературой по комплектам периферийных БИС, начиная с КР580ххххи далее К1810хххх семейство Интел 82хххх - там книжек три - четыре минимум.
Да очень хорошее пособие по применению IBM PC в качестве самодельного прибора:
"Сопряжение датчиков и устройств ввода данных с компьютером IBM PC. "
Пер. с англ. /Под ред. У. Томпкинса, Дж. Уэбстера.
- М.: Мир, 1992.
Очень полезная книжка!
думаю ТС надо просто обьявить каким образом он хочет запускать самописный софт на 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 варианта.

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 варианта.
- Сообщения: 7722
- Зарегистрирован: Вс июл 24, 2011 11:38:09
Из всех режимов у порта используют только один. Полноскоростной не использует никто в поделках.
Если не юзать порт напрямую на ключи, то проще делать МК по USB, и проще комп найти нужный. И можно сразу на андроид.
Порт работает через драйвер винды, под 64бит там ещё костыль надо с пробросом.
На сколько помню у порта 8 бит на вывод и 4 на ввод, при этом сам ПК определяет что делать.
Писать под винду не силён.
Если не юзать порт напрямую на ключи, то проще делать МК по USB, и проще комп найти нужный. И можно сразу на андроид.
Порт работает через драйвер винды, под 64бит там ещё костыль надо с пробросом.
На сколько помню у порта 8 бит на вывод и 4 на ввод, при этом сам ПК определяет что делать.
Писать под винду не силён.
- Сообщения: 270
- Зарегистрирован: Вс окт 20, 2019 13:03:56
Эх, как все сложно. Чтоб приделать кнопку, по ходу надо писать модуль ядра 
Под ДОС наверное проще, там прямой доступ к оборудованию. Но хочется еще чтоб комп был компом.
Под ДОС наверное проще, там прямой доступ к оборудованию. Но хочется еще чтоб комп был компом.
для кнопки - прерывания не являются необходимостью, там и эффективности опроса хватит с запасом даж для 10mS реакции.
еще кнопку можно обрабатывать uhid, юзерспэйсным обработчиком
в DOS - относительно прощще, там можно полностью забрать себе клавиатурное прерывание например, никто не помешает
но компом в современном понимании дос комп можно назвать с серьезной натяжкой 
еще кнопку можно обрабатывать uhid, юзерспэйсным обработчиком
в DOS - относительно прощще, там можно полностью забрать себе клавиатурное прерывание например, никто не помешает
[uquote="AlexS4",url="/forum/viewtopic.php?p=4622391#p4622391"]но компом в современном понимании дос комп можно назвать с серьезной натяжкой
[/uquote]
В зависимости от задач. Стрелялки-пукалки, стримы на нём не заработают, но с задачей управления даже очень серьёзным оборудованием справится легко. Даже на не очень сильном железе, потому что будут убраны ненужные красивости-бантики.
В зависимости от задач. Стрелялки-пукалки, стримы на нём не заработают, но с задачей управления даже очень серьёзным оборудованием справится легко. Даже на не очень сильном железе, потому что будут убраны ненужные красивости-бантики.
Jack_A, я выше приводил пример нужного красивого бантика: tls
(libssl+libgnutls) на дос это замучаешься порикручивать, а без них никакой современной связи
и так дальше, куда не плюнь, даж простейший opensshd уже оброс таким количеством трудноотделяемых бантиков что проще таки пойти на линукс чем изгаляться с dh, libcrypt в системе где нет нужной инфраструктуры, говорю как любитель собирать статические бизибоксы под минмалистичные конфиги
(libssl+libgnutls) на дос это замучаешься порикручивать, а без них никакой современной связи
и так дальше, куда не плюнь, даж простейший opensshd уже оброс таким количеством трудноотделяемых бантиков что проще таки пойти на линукс чем изгаляться с dh, libcrypt в системе где нет нужной инфраструктуры, говорю как любитель собирать статические бизибоксы под минмалистичные конфиги
- Сообщения: 270
- Зарегистрирован: Вс окт 20, 2019 13:03:56
Недостаток поллинга что приходится вечно крутится в цикле ожидания. А я уже распробовал прерывания на обычных МК, и могу сказать что это вкусно.
Хочется теперь на 12-ядерном 64-битном МК
Хочется теперь на 12-ядерном 64-битном МК



