<?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>Виртуальный порт. Макросы для управления выводами микроконтроллера</title>
		<description>Discuss Виртуальный порт. Макросы для управления выводами микроконтроллера</description>
		<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html</link>
		<lastBuildDate>Fri, 17 Apr 2026 10:22:30 +0000</lastBuildDate>
		<generator>JComments</generator>
		<atom:link href="https://chipenable.ru/index.php/component/jcomments/feed/com_k2/151.html" rel="self" type="application/rss+xml" />
		<item>
			<title>DartV says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-5975</link>
			<description><![CDATA[Не знаю актуально ли в 2018 году, но codevision не смог прожевать INLINE static void IND_Conv и еще где то переменная была объявлена по c99. Полдня искал почему не работает.]]></description>
			<dc:creator>DartV</dc:creator>
			<pubDate>Tue, 12 Jun 2018 15:04:13 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-5975</guid>
		</item>
		<item>
			<title>Станислав says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4972</link>
			<description><![CDATA[Спасибо за библиотеку то что нужно)))!!!]]></description>
			<dc:creator>Станислав</dc:creator>
			<pubDate>Sun, 11 Dec 2016 16:01:49 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4972</guid>
		</item>
		<item>
			<title>foxit says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4617</link>
			<description><![CDATA[Спасибо]]></description>
			<dc:creator>foxit</dc:creator>
			<pubDate>Tue, 06 Oct 2015 18:53:55 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4617</guid>
		</item>
		<item>
			<title>Pingwin says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4614</link>
			<description><![CDATA[https://cloud.mail.ru/public/7xxm/b61aNYDTk]]></description>
			<dc:creator>Pingwin</dc:creator>
			<pubDate>Mon, 05 Oct 2015 07:57:17 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4614</guid>
		</item>
		<item>
			<title>foxit says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4611</link>
			<description><![CDATA[Положите на файлообменник и дайте ссылку. Интересно посмотреть.]]></description>
			<dc:creator>foxit</dc:creator>
			<pubDate>Fri, 02 Oct 2015 10:35:13 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4611</guid>
		</item>
		<item>
			<title>Pingwin says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4610</link>
			<description><![CDATA[Здравствуйте Pashgan!Немного доработал ваши макросы теперь позволяет -порт создавать с количеством линий от 1 до 16 и настраивать активный уровень непосредственно при работе с портами .Как добавить код?]]></description>
			<dc:creator>Pingwin</dc:creator>
			<pubDate>Thu, 01 Oct 2015 11:16:32 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4610</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4462</link>
			<description><![CDATA[Нужно править код между циклами do{.. }while(0). Это долго и муторно.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Fri, 06 Mar 2015 17:44:42 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4462</guid>
		</item>
		<item>
			<title>Din says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4377</link>
			<description><![CDATA[а что надо изменить/добави ть в либе что бы можно было определять виртуальные порты размером больше 8 пинов(10...16)?]]></description>
			<dc:creator>Din</dc:creator>
			<pubDate>Sun, 21 Dec 2014 08:03:36 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4377</guid>
		</item>
		<item>
			<title>#Сергей says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4361</link>
			<description><![CDATA[//настраиваем вывод со светодиодом на выход PM_DirPin(LED1, _OUT); Зачем. Если есть DDRx |=и т.д... :roll:]]></description>
			<dc:creator>#Сергей</dc:creator>
			<pubDate>Thu, 11 Dec 2014 21:18:25 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4361</guid>
		</item>
		<item>
			<title>InvisibleKid says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4085</link>
			<description><![CDATA[Кстати, а в чем соль использовать вместо int, char, float и т.д. такие странные имена типо "uint8_t"?]]></description>
			<dc:creator>InvisibleKid</dc:creator>
			<pubDate>Fri, 16 May 2014 06:43:26 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-4085</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2972</link>
			<description><![CDATA[Нужно было просто добавить строчку
#includ e ]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Sat, 13 Jul 2013 22:26:26 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2972</guid>
		</item>
		<item>
			<title>TERMIN says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2937</link>
			<description><![CDATA[Pashgan, огромное тебе спасибо! Благодаря твоим макросам, я в них очень хорошо разобрался, очень удобный и качественный пример для обучения работы с макросами. Пока разбирался почему не работает PM_DirPort на CodeVisionAVR, делал работу компилятора вручную. У кого не работает на CVAVR, замените в либе "uint8_t" на "unsigned char"]]></description>
			<dc:creator>TERMIN</dc:creator>
			<pubDate>Thu, 20 Jun 2013 11:24:42 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2937</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2920</link>
			<description><![CDATA[Если понадобится мне или кому-то еще можно сделать.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Wed, 29 May 2013 19:44:04 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2920</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2919</link>
			<description><![CDATA[Что то типа этого: 1 поток - функция {запретить прерывания операции с портом разрешить прерывания} 2 поток - прерывание {операции с портом} Вариант 2 1 поток {если мьютекс не захвачен, установить его операции с портом снять мьютекс} 2 поток {если мьютекс не захвачен, установить его операции с портом снять мьютекс}]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Wed, 29 May 2013 19:42:55 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2919</guid>
		</item>
		<item>
			<title>Владимир says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2918</link>
			<description><![CDATA[Спасибо, забавная реализация! Планируется ли портировать на другие МК?(не AVR)]]></description>
			<dc:creator>Владимир</dc:creator>
			<pubDate>Wed, 29 May 2013 13:01:36 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2918</guid>
		</item>
		<item>
			<title>Peter says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2917</link>
			<description><![CDATA[Если можно, приведите пожалуйста пример вызывающего кода как мне, имея LED на порту PORTF.1 безопасно для других потоков применять Вашу библиотеку.]]></description>
			<dc:creator>Peter</dc:creator>
			<pubDate>Tue, 28 May 2013 16:43:59 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2917</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2916</link>
			<description><![CDATA[Нужно только учитывать, что атомарность не соблюдается в любом случае. Для atmega128 можно использовать эту реализацию виртуального порта, просто для портов, не поддерживающих операции битового доступа, код будет более громоздким.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Tue, 28 May 2013 10:06:40 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2916</guid>
		</item>
		<item>
			<title>Peter says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2915</link>
			<description><![CDATA[Спасибо. То есть я, используя Вашу библиотеку, всё равно должен помнить об особенностях портов F и G по сравнению с другими портами? Что LED на порту F надо отличать от LED на порту B? А не для того ли мы ведем речь о виртуальных портах чтобы забыть об различиях и скрыть все эти нехорошие особенности внутри макросов?]]></description>
			<dc:creator>Peter</dc:creator>
			<pubDate>Tue, 28 May 2013 09:41:01 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2915</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2914</link>
			<description><![CDATA[Я свою еще не переделал.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Tue, 28 May 2013 09:33:41 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2914</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2913</link>
			<description><![CDATA[Если нужна атомарность операций, обеспечивай ее отдельно. Во многих приложениях это вообще не критично.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Tue, 28 May 2013 09:33:25 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2913</guid>
		</item>
		<item>
			<title>Peter says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2912</link>
			<description><![CDATA[Что, прямо так и работать с операциями |= и &= без обеспечения атомарности доступа к пину? Даже для одиночной установки/сброс а бит это опасно (не все IO-порты поддерживают битовый доступ, например порт F в mega128). А для установки/сброс а нескольких бит порта это самоубийственно . Нет, кто хочет - пусть пробует))]]></description>
			<dc:creator>Peter</dc:creator>
			<pubDate>Tue, 28 May 2013 08:52:53 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2912</guid>
		</item>
		<item>
			<title>Zliva says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2910</link>
			<description><![CDATA[Статья супер. Давно искал что-то подобное. Автору респект. Очень нужна библиотека с такой реализацией на 7 сегментник. Просто горю. Помоги :cry:]]></description>
			<dc:creator>Zliva</dc:creator>
			<pubDate>Mon, 27 May 2013 21:14:43 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2910</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2909</link>
			<description><![CDATA[Такого там нет. Для работы с виртуальными портами там используются специальные методы классов.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Mon, 27 May 2013 14:40:44 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2909</guid>
		</item>
		<item>
			<title>frolikum says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2907</link>
			<description><![CDATA[Как это сделать говорилось в той статье где "много букв" но там на С++. Ладно, пока будем тэстить, о обнаруженных багах незамедлительно отпишусь.]]></description>
			<dc:creator>frolikum</dc:creator>
			<pubDate>Mon, 27 May 2013 10:53:40 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2907</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2906</link>
			<description><![CDATA[Я не знаю, как на Си написать такие макросы. Мне кажется это невозможно. Для работы с портом там всего три основных макроса - запись в порт, чтение, установка направления.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Mon, 27 May 2013 10:37:21 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2906</guid>
		</item>
		<item>
			<title>frolikum says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2905</link>
			<description><![CDATA[Думал о том что можно будет определить виртуальный порт назначив ему букву не существующего физического порта, скажем "Z", а дальше работать с ним как с реально существующим физическим портом. Без большого набора функций и макросов которые по началу все сразу не запомнить.]]></description>
			<dc:creator>frolikum</dc:creator>
			<pubDate>Mon, 27 May 2013 09:40:50 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2905</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2904</link>
			<description><![CDATA[А как ты их себе представлял?]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Mon, 27 May 2013 09:28:48 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2904</guid>
		</item>
		<item>
			<title>frolikum says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2903</link>
			<description><![CDATA[Согласен с последним предложением в статье. Я как бы представлял будущие макроса немного по другому так что пока ничего сказать не могу. Ни хорошего не плохого так как считаю что только на практике можно будет оценить все плюсы и возможно найти минусы. В любом случае огромная работа проделана и Паше за это респект и уважуха.]]></description>
			<dc:creator>frolikum</dc:creator>
			<pubDate>Mon, 27 May 2013 07:50:23 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2903</guid>
		</item>
		<item>
			<title>foxit says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2902</link>
			<description><![CDATA[Спасибо. Полезная штука.]]></description>
			<dc:creator>foxit</dc:creator>
			<pubDate>Sun, 26 May 2013 19:10:24 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/151-port-macros.html#comment-2902</guid>
		</item>
	</channel>
</rss>
