<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>AVR-USB-MEGA16: быстрая разработка USB приложений на C# при помощи класса-обертки ATMega16</title>
		<description>Обсуждение AVR-USB-MEGA16: быстрая разработка USB приложений на C# при помощи класса-обертки ATMega16</description>
		<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html</link>
		<lastBuildDate>Sat, 13 Jun 2026 18:43:52 +0300</lastBuildDate>
		<generator>JComments</generator>
		<atom:link href="https://microsin.ru/component/option,com_jcomments/format,raw/limit,10/object_group,com_content/object_id,812/task,rss/" rel="self" type="application/rss+xml" />
		<item>
			<title>xglass написал:</title>
			<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1480</link>
			<description><![CDATA[Как работать с watchdog? Как из обёртки производить запись в него, как в firmware работать с ним? В общем смысл такой - работаю с несколькими датчиками температуры и влажности, в зависимости от полученных данных, происходит коммутация различных устройств(ТЭНы, поливалки и т. д.), так вот не хотелось бы, чтоб всё залило водой, если кто то нечаянно выдернет USB кабель... Хочу чтоб по событию watchdog - останавливались все мои процессы... Не сочтите за наглость, но не могли бы вы привести кусочек кода? Просто добавлять свои какие то дополнительные функции в usbFunctionSetu p я могу, это не проблема, потом прописал их в обёртке и готово, а с watchdog что то вообще не пойму куда лезть... Хотя конечно можно было бы кинуть переменную в цикл и проверять её каждую секунду на предмет записи какого ни будь значения хостом, но хотелось бы разобраться с watchdog. И ещё, подскажите, отключение watchdog (стирание wdt_enable(WDTO _1S)) сильно разгружает процессор? microsin: для надежного функционировани я системы управления ТЭН-ами, поливалками и проч., нужно предусмотреть оптронную развязку между цепями макетной платы и управлением выходными устройствами. Кроме того, нужно в firmware добавить такую логику, чтобы при отсутствии управления по USB (к примеру в течение 10 секунд) состояние портов переключалось в заданное неактивное состояние (соответствующе е отключению полива и обогрева). Лучше, если схема изначально будет спроектирована так, что такое состояние будет работать сразу после сброса микроконтроллер а (или после включения питания, или после срабатывания настроенного watchdog) - когда все порты ввода вывода микроконтроллер а находятся в третьем (отключенном) состоянии. watchdog хорошо описан в даташите на кристалл ATmega32. Отключение/включение watchdog никак не влияет на загрузку ядра AVR. Чтобы из обертки управлять watchdog, нужно организовать запись в регистры watchdog точно так же, как уже реализована запись в другие регистры (например порты ввода вывода), адреса регистров можно также узнать из даташита. Если в обертке запись в регистры watcdog не предусмотрена, Вы легко это можете добавить по аналогии с другими регистрами.]]></description>
			<dc:creator>xglass</dc:creator>
			<pubDate>Fri, 09 Sep 2011 17:07:17 +0300</pubDate>
			<guid>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1480</guid>
		</item>
		<item>
			<title>Serhey написал:</title>
			<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1458</link>
			<description><![CDATA[Большое спасибо автору за статьи и за платку, использую давно и успешно. Но возник вопрос: при подключении устройство определяется как LEDControl, как изменить наименование устройства? microsin: можно поменять имя устройства, если изменить макроопределени е USB_CFG_DEVICE_ NAME в файле usbconfig.h. Если при этом поменялась длина имени, то также необходимо скорректировать и макроопределени е USB_CFG_DEVICE_ NAME_LEN. Если на Вашем компьютере использовалось устройство под старым именем (LEDControl), то нужно в реестре Windows удалить старое описание USB-устройства (см. ветку реестра HKEY_LOCAL_MACH INE SYSTEM CurrentControlS et Enum USB).]]></description>
			<dc:creator>Serhey</dc:creator>
			<pubDate>Mon, 29 Aug 2011 13:34:09 +0300</pubDate>
			<guid>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1458</guid>
		</item>
		<item>
			<title>zapla написал:</title>
			<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1409</link>
			<description><![CDATA[Может прошивку для данного устройства выложите где есть еще управление всеми остальными регистрами, а то что-то не могу сделать hex файл. Постоянно чего то не хватает и огромная куча ошибок. microsin: к сожалению, не успеваю все делать, не хватает времени, и помочь Вам ничем не могу. Просто разберитесь с ошибками, посмотрите код (все исходники есть), и добавьте тот функционал, что Вам нужен.]]></description>
			<dc:creator>zapla</dc:creator>
			<pubDate>Tue, 26 Jul 2011 13:20:17 +0300</pubDate>
			<guid>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1409</guid>
		</item>
		<item>
			<title>zapla написал:</title>
			<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1405</link>
			<description><![CDATA[:lol: ура пример управления портами (мигаем светодиодом) заработал. причем попробовал для нескольких бит нескольких портов- работает]]></description>
			<dc:creator>zapla</dc:creator>
			<pubDate>Sat, 23 Jul 2011 02:22:51 +0300</pubDate>
			<guid>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1405</guid>
		</item>
		<item>
			<title>Victor написал:</title>
			<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1384</link>
			<description><![CDATA[какие минимально нужны DLL-ки, чтобы на другом компе (без уст. #C) запускались LedTest.exe и LedTest.host.exe ? microsin: чтобы программы работали, нужно установить пакеты библиотек .NET от Microsoft и LibUSB-win32 от libusb.org. Какие именно файлы DLL нужны, и как они должны быть зарегистрирован ы отдельно вручную - этого я не знаю, чтобы ответить на такой вопрос, нужно экспериментиров ать на чистой Windows.]]></description>
			<dc:creator>Victor</dc:creator>
			<pubDate>Mon, 11 Jul 2011 19:42:22 +0300</pubDate>
			<guid>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1384</guid>
		</item>
		<item>
			<title>xREMx написал:</title>
			<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1241</link>
			<description><![CDATA[Продолжение поста .... обмен с ПК или нет, и если в течении допустим 3 обмена не было - определённые ноги определённых портов стбрасывались бы в 0 ? Я это представляю примерно так - контроллер считывает из озу какое ни будь число каждые 3 секунды, и если по истечении 3х секунд оно не поменялось - сброс! А комп в свою очередь должен через каждых 3с по таймеру записывать новое число. Можно так сделать? Я в программировани  и AVR не силён, зашил ваши готовые прошивки... В идеале было бы здорово, если бы контроллер проверил число, и записал бы тоже число+1, а комп в свою очередь проверял это число и записывал новое, как бы реализация двусторонней проверки связи. Спасибо! microsin: то, что Вы хотите, можно сделать без особых проблем, однако без переделки firmware, прошиваемого в микроконтроллер , тут никак не обойтись, поэтому осваивать программировани  е AVR Вам все равно придется. Даже если кто-то напишет готовый код, его все равно придется кому-то отлаживать, а без знания программировани  я никакая отладка у Вас не получится - программировани  е и отладка кода тесно взаимосвязаны. Если у Вас еще появятся вопросы - пожалуйста, пишите в почту (см. Контакты), загромождать статью многострочными комментариями я не буду.]]></description>
			<dc:creator>xREMx</dc:creator>
			<pubDate>Wed, 20 Apr 2011 16:23:21 +0300</pubDate>
			<guid>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1241</guid>
		</item>
		<item>
			<title>xREMx написал:</title>
			<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1240</link>
			<description><![CDATA[microsin, респект за ваши статьи, они очень помогают в разработках, но у меня есть один вопросик. У меня на стиральной машине Bosh выгорела вся электроника. Машина дорогая, ЭБУ стоит дорого, да и то, только под заказ. Сделал свой ЭБУ. Atmega16 управляет всеми реле, симисторами и т.д. Сделал программу на csharp, уже могу с компьютера открывать клапаны воды, включать сливную помпу, управлять скоростью вращения коллекторного двигателя с ОС, считывать показания с датчика температуры, уровня воды, тахогенератора, сейчас пишу логику. И вот в конце моего пути я озадачился одним вопросом - если допустим открылся клапан воды, ребёнок задел ногой USB кабель, либо повис комп, либо сгорел USB порт на компе(ну мало ли...) - будет продолжаться не контролируемый набор воды, затоплю квартиру и соседей)) ? Суть моего вопроса в следующем - нельзя ли в ПО контроллера добавить какую ни будь функцию, по которой он проверял бы, происходит ли...]]></description>
			<dc:creator>xREMx</dc:creator>
			<pubDate>Wed, 20 Apr 2011 16:22:49 +0300</pubDate>
			<guid>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1240</guid>
		</item>
		<item>
			<title>REM написал:</title>
			<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1194</link>
			<description><![CDATA[Здравствуйте, спасибо автору за статью, правда у меня есть проблемка - спаял платку, контроллер atmega16a-pu, через usbbootloader прошиваю вашу готовую прошивку (ноги развёл так же, как на Вашей макетной плате AVR-USB-MEGA16), в системе определяется устройство LEDcontrol, в сведениях об устройстве USBVID_16C0&PID_05DC....., но драйвер из папки 90617atmega16-Csharp-classwindows-driver не ставится, говорит в указанных файлах нет информации об устройстве, пробовал на разных компах с XP x32, win 7 x64, подскажите что не так делаю? microsin: среди утилит библиотеки libusb есть генератор inf-файла Inf Wizard, попробуйте воспользоваться им. Кроме того (если устройство все-таки не работает), установите драйвер фильтра libusb на Ваше USB-устройство. Как это делается подробно описано в статье "Разработка устройства USB - как начать работу с библиотеками AVR USB (V-USB) и libusb". Предупреждение: насколько мне известно, работа драйвера под Windows 7 автором не тестировалась.]]></description>
			<dc:creator>REM</dc:creator>
			<pubDate>Tue, 29 Mar 2011 13:07:54 +0300</pubDate>
			<guid>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1194</guid>
		</item>
		<item>
			<title>microsin написал:</title>
			<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1112</link>
			<description><![CDATA[Заинтересовался Вашим проектом на Python. Скачал проект в архиве V-USB_IO.rar, но что-то не нашел кода, где происходит импорт функций библиотеки libusb. В модуле ATMEGA16.py просто используются какие-то загадочные функции, которые нигде не определены. Где сам код модуля usb (который загружается оператором import usb) и определения его функций? Sinopteek: надо поставить модуль PyUSB, в linux через систему пакетов - всё необходимо утянется само и сразу. В windows - надо сначала поставить pywin32 - http://sourceforge.net/projects/pywin32/files/pywin32/Build%20215/ (возможно не нужен, т.к. не точно помню - нужен был для COM-портов точно, а в описании pyUSB вроде не указан) а потом ещё и пакет pyUSB - http://sourceforge.net/projects/pyusb/files/ . При этом считается, что libusb уже стоит как фильтр для всех устройств (чтобы можно было найти и подключиться к устройству) http://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/ (хотя в последний версиях они как-то поменяли интерфейс доступа и вообще настроек, но код работает всё равно). Под linux таких проблем нет - работает всё и так, может быть придётся настроить права на доступ к определённому устройству или группе пользователей USB, ну или запускать под root'ом =). microsin: ОГО. Целый мануал написали. Так и знал, что тут подвох какой-то. Жду статьи на Вашем сайте - "Разработка устройства USB - как начать работу на Python с библиотеками AVR USB (V-USB) и libusb". А то таким лохам в Питоне, как я, будет трудно разобраться, что к чему =).]]></description>
			<dc:creator>microsin</dc:creator>
			<pubDate>Sun, 27 Feb 2011 14:08:28 +0300</pubDate>
			<guid>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1112</guid>
		</item>
		<item>
			<title>Sinopteek написал:</title>
			<link>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1111</link>
			<description><![CDATA[Создал проектик на основе вашего, написан на Python'е с использованием libusb. Поэтому кроссплатформен http://www.12mhz.com/projects/38-soft-hard/57-vusbio.html]]></description>
			<dc:creator>Sinopteek</dc:creator>
			<pubDate>Sun, 27 Feb 2011 00:02:43 +0300</pubDate>
			<guid>https://microsin.ru/programming/avr-working-with-usb/avr-usb-mega16-and-csharp-class.html#comment-1111</guid>
		</item>
	</channel>
</rss>
