<?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>Доступ к портам I/O AVR на языке C (GCC, WinAVR)</title>
		<description>Обсуждение Доступ к портам I/O AVR на языке C (GCC, WinAVR)</description>
		<link>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html</link>
		<lastBuildDate>Mon, 18 May 2026 01:06:22 +0300</lastBuildDate>
		<generator>JComments</generator>
		<atom:link href="https://microsin.net/component/option,com_jcomments/format,raw/limit,10/object_group,com_content/object_id,1558/task,rss/" rel="self" type="application/rss+xml" />
		<item>
			<title>Владимир написал:</title>
			<link>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-116457</link>
			<description><![CDATA[Скажите, а что это за файл такой sfr_defs.h? Где его брать? Я не подключал его, но использовал команды bit_is_set и bit_is_clear, и Microchip Studio не ругается на них. Работает нормально. microsin: у меня файл sfr_defs.h находится в библиотеке avrgcc, папка WinAVR-20100110avrincludeavr. Конечно, подобные макросы могут быть реализованы и в других заголовочных файлах.]]></description>
			<dc:creator>Владимир</dc:creator>
			<pubDate>Thu, 07 Sep 2023 14:14:27 +0300</pubDate>
			<guid>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-116457</guid>
		</item>
		<item>
			<title>Makc написал:</title>
			<link>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-18659</link>
			<description><![CDATA[Чем отличается PORTD ОТ PIND, кроме того что PIND только для чтения? Какая команда правильная: a = PORTA + 1 или a = PINA + 1; PORTA |= PORTA + 1; PORTA |= PINA + 1; microsin: PORTx и PINх это разные регистры, с разным назначением, поэтому они отличаются ВСЕМ. Все эти команды синтаксически правильные, но почти все бессмысленные.]]></description>
			<dc:creator>Makc</dc:creator>
			<pubDate>Thu, 28 Nov 2019 09:37:50 +0300</pubDate>
			<guid>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-18659</guid>
		</item>
		<item>
			<title>Николай написал:</title>
			<link>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-11049</link>
			<description><![CDATA[Нашел ваш сайт через поисковик, предыдущие статьи не читал, искал что значит PORT.4, хорошо, статью прочитал,ответа не нашел, но информацию еще раз усвоил, вот только не понял что за BV(3), BV(0)? Что это значит? Откуда взялась функция loop_until_bit_ is_set? microsin: ответы на все эти вопросы даст поисковик Google.]]></description>
			<dc:creator>Николай</dc:creator>
			<pubDate>Sun, 17 Feb 2019 19:48:41 +0300</pubDate>
			<guid>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-11049</guid>
		</item>
		<item>
			<title>Денис написал:</title>
			<link>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-4179</link>
			<description><![CDATA[Может конечно глупый вопрос, как мне записать в бит значение переменной? Например: я хочу установить или снять один бит определённого порта с помощью значения переменной, которая может быть нулём или единицей. В BASCOM AVR это делается просто до безобразия и выглядит типа PORTD.7=var таким образом 1 бит переменной var записывается в 7 бит порта и не важно что там было до этого 1 или 0. microsin: в среде BASCOM конечно установка бита выглядит просто, и в этом есть определенные плюсы. Однако оператор BASIC все равно транслируется в несколько ассемблерных команд, причем не всегда оптимально. Это плата за "простоту" тем, что Вы на BASIC получаете плохое управление генерируемым кодом. На языке C для AVR тоже в принципе ничего сложного: #define BIT7MASK1 = 0x80 #define BIT7MASK0 = 0x7F if (var!=0) PORTD |= BIT7MASK1; else PORTD &= BIT7MASK0; Если оформить этот блочок кода в виде макроса на C, то получится практически то же самое, что и в BASCOM. Зато на языке C у Вас полное управление системой, и Вы в каждый момент четко понимаете, что происходит у Вас в программе.]]></description>
			<dc:creator>Денис</dc:creator>
			<pubDate>Thu, 11 May 2017 13:36:41 +0300</pubDate>
			<guid>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-4179</guid>
		</item>
		<item>
			<title>пионер написал:</title>
			<link>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-2039</link>
			<description><![CDATA[Ломаю голову, как программно организовать одностороннюю посылку из 3 символов (1 буква и 2 цифры, например "G23") между двумя микроконтроллер ами (ATmega1280) по 1 общей ножке любого порта Это нужно для для синхронизации одинаковых подпрограмм на 2-х микроконтроллер ах. Нечто подобное можно реализовать через библиотеку Serial.println();Seria l.read();, но завязана она на UART(PORTE0 & PORTE1), и что неудобно для моего случая... microsin: строки для поиска в Google: "AVR274: однопроводный, программный UART на tinyAVR и megaAVR" "AVR: отладочный вывод через UART (RS232 debug)"]]></description>
			<dc:creator>пионер</dc:creator>
			<pubDate>Tue, 08 Apr 2014 04:58:40 +0300</pubDate>
			<guid>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-2039</guid>
		</item>
		<item>
			<title>Воблеров Константин написал:</title>
			<link>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-1977</link>
			<description><![CDATA[А могу я прочитать потенциалы на порте если он настроен на выход? Или нужно переписывать на вход? microsin: потенциалы на порте Вы в любом случае можете читать через регистры PINA, PINB, PINC и т. п. (независимо от того, как настроен порт, на вход или выход). Кроме того, если порт настроен на выход, то его состояние можно также читать по содержимому регистра PORTA, PORTB, PORTC и т. п.]]></description>
			<dc:creator>Воблеров Константин</dc:creator>
			<pubDate>Sat, 01 Mar 2014 00:02:27 +0300</pubDate>
			<guid>https://microsin.net/programming/avr/accessing-avr-ports-with-winavr-gcc.html#comment-1977</guid>
		</item>
	</channel>
</rss>
