Решил создать эту ветку для тех людей которые желают увязать микроконтроллер с ПК.
Сам долго мечтал об этой реализации, но никак не мог воплотить ее в жизнь по нехватке знаний
в программировании COM порта. После приобретения некоторых знаний в области С++ и WinAPI
наконец-то воплотил это в жизнь.
В данном случае увязка ПК происходит с МК ATmega8A.
Программа для работы с COM портом консольная. Будет время постараюсь ее сделать визуальной
на том же WinAPI .
В программе предусмотрена возможность управлять 3 объектами управления и просматривать
состояние 80 объектов контроля.
В данном случае объектами управления являются светодиоды, но это могут быть и светодиоды
оптронов.
Во вложении находятся файлы для прошивки ATmega8A и сама программа для работы с COM портом.
Если будут какие-то вопросы, то пишите в личку, постараюсь ответить что к чему.
СЦБист писал(а):Сам долго мечтал об этой реализации, но никак не мог воплотить ее в жизнь по нехватке знаний в программировании COM порта. После приобретения некоторых знаний в области С++ и WinAPI наконец-то воплотил это в жизнь.
Про библиотеки функций ничего не слышали?
То что вам нужно, решается довольно быстро даже на бейсике при минимальной затрате усилий.
СЦБист писал(а):Во вложении находятся файлы для прошивки ATmega8A и сама программа для работы с COM портом.
Файлы для МК есть, а вот программы для ПК в архиве не наблюдается.
Что касается Windows, то большинство так называемых "библиотек" для работы с COM портами это жалкие обертки над WinAPI.
Самая сложная задача - это получить список портов имеющихся в системе. Эту задачу можно решить чтением ветки реестра "HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM" или использовать SetupAPI. Первый способ проще, второй сложнее, но дает больше информации (полный путь к устройству который можно использовать при вызове CreateFile и Friendly Name которое можно отобразить в диалоге выбора порта).
Получив в результате HANDLE остальные задачи не представляют сложностей.
СЦБист писал(а):В С++ нету библиотеки для работы с COM портом.
Тут можно было-бы долго спорить что входит в "стандартный" "Ц++" а что не входит - но трата времени определённо не является ни вашей ни чьей-либо ещё целью. Ну кроме хронофагов. По существу, к примеру, Библиотека Библиотек boost http://www.boost.org/doc/libs/1_40_0/do ... ports.html чем не [почти что] стандартный Ц++? Понятное дело, что в борьбе со всяким фреймворком львиная доля времени уходит чтобы запихать фреймворковы телеса в прокрустово ложе наших представлений о работе нашей программки + надёжно примотать тесёмочками и изолентой оному фреймворку все щупальца дабы не выползали из ушей и ноздрей програмки когда ни попадя. Но это плата за универсальность. Минимализм-же рождает решения мало кому-нибудь ещё полезные кроме автора. Но то всё лирика - оставим её лирикам.
По существу-же я, как опенсорсник с дореволюционным стажем, всякое начинание безвозмездно поделиться плодами трудов своих вижу исключительно положительным фактом биографии пациента! Достаточно положительным, чтобы перевесить всякое желание язвить в его сторону на тему "отсутствия научной новизны" и "концептуального несовершенства очередной модели велисипеда". В этом ключе рекомендую завести аккаунт на каком нибудь портале для совместной разработки ПО с открытым кодом и публиковать проекты там. Надёжнее, может кто присоединится помогать, да и история разработки с возможностью отката в случае ошибок экономит массу времени. Придется разобраться с программами-системами контроля версий - но оно того стоит. В общем самые модные парни с района, вроде как сейчас на GitHub околачиваются - но сам git как по мне, при всей очевидной мощности и гибкости, с точки зрения обычного человека может казаться поделием в достаточной степени человеконенавистническим. Тогда подберите что-нибудь с mercurial - у него система комманд погуманнее, ИМХО. Удачи!
Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR!
СЦБист писал(а):
если есть притензии по поводу схемы, то выкладывайте ...
Никаких претензий.
V-USB позволяет поднимать виртаульный COM порт на том же самом микроконтроллере
не нужна материнская плата с COM портом и MAX232
Вот и всё.
Reloader писал(а):V-USB позволяет поднимать виртаульный COM порт
Почему конкретно V-USB ? В сети об программной эмуляции USB достаточно скептические отзывы ( сам не пробовал, честно ). Тот же эффект, только более стабильно работающий, можно получить на специальном преобразователе, напр., FT232
Последним логическим шагом будет отказ от виртуального COM (CDC USB) в пользу HID USB. Для сбора данных и управления - самое то.
0,5 Мбит/с и никаких проблем с портами.
СЦБист писал(а):зачем в быту 0,5 Мбит/с ? достаточно и ком порта.
Дело не в 0,5 Мбит/с. Дело в УДОБСТВЕ HID-USB. Не нужно открывать порты, автоматически определяется устройство и можно автоматически запускать ПО.
К тому же COM порты уже трудно найти в компьютерах.