<?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>Учебный курс. Подключение LCD к микроконтроллеру. Разбиваем программу на модули</title>
		<description>Discuss Учебный курс. Подключение LCD к микроконтроллеру. Разбиваем программу на модули</description>
		<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html</link>
		<lastBuildDate>Tue, 14 Apr 2026 06:40:19 +0000</lastBuildDate>
		<generator>JComments</generator>
		<atom:link href="https://chipenable.ru/index.php/component/jcomments/feed/com_k2/31.html" rel="self" type="application/rss+xml" />
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2863</link>
			<description><![CDATA[Ну да, я тоже иногда над этим задумываюсь. Просто надо писать больше кода, и тогда такие библиотеки накопятся. Я не так много его пишу.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Sun, 05 May 2013 17:51:58 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2863</guid>
		</item>
		<item>
			<title>foxit says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2860</link>
			<description><![CDATA[Pashgan, давно задумываюсь об удобном разбиении программ на модули и ведении базы библиотек. Ну примерно так есть интерфейс i2c - для него написана библиотека, которая реализует функции для работы с ним. есть микросхема DS1307 - для нее написана своя библиотека, которая реализует функции для работы с ней и из нее вызывается библиотека для i2c. Также можно для spi, 1-wire.]]></description>
			<dc:creator>foxit</dc:creator>
			<pubDate>Sun, 05 May 2013 08:06:04 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2860</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2602</link>
			<description><![CDATA[Нет. Основные преимущества, которые дает разбиение на модули это: - упорядоченная структура программы, - отделение интерфейса модуля от его реализации, - возможность повторного использования кода. Теоретически да, нужно перекомпилирова ть один модуль. Но потом нужно еще собрать весь проект (этим занимается линкер). Можно перенести, но это равносильно написанию кода в одном файле.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Mon, 11 Mar 2013 06:05:42 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2602</guid>
		</item>
		<item>
			<title>radiolomaster says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2601</link>
			<description><![CDATA[А мы разбиваем на модули только для того чтоб сэкономить время компиляции? Т.е. если сделали изменения в одном модуле то можно только его перекомпилирова ть? А иначе можно просто в .h файл перенести весь код из .c файла, еще и прототипы функций убрать? На результат это не повлияет?]]></description>
			<dc:creator>radiolomaster</dc:creator>
			<pubDate>Sun, 10 Mar 2013 20:46:09 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2601</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2199</link>
			<description><![CDATA[Пожалуйста.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Tue, 06 Nov 2012 21:10:29 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2199</guid>
		</item>
		<item>
			<title>Валера says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2198</link>
			<description><![CDATA[Спасибо! Все получилось.]]></description>
			<dc:creator>Валера</dc:creator>
			<pubDate>Tue, 06 Nov 2012 01:49:55 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2198</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2168</link>
			<description><![CDATA[Можно, только тогда это не будет разделением программы на модули.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Thu, 18 Oct 2012 20:08:21 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2168</guid>
		</item>
		<item>
			<title>Виталий says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2163</link>
			<description><![CDATA[Зачем создавать два файла (.c и .h) Почему все функции нельзя прописать только в .h?]]></description>
			<dc:creator>Виталий</dc:creator>
			<pubDate>Thu, 18 Oct 2012 02:01:04 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2163</guid>
		</item>
		<item>
			<title>DIMA says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2075</link>
			<description><![CDATA[Пользуюсь AVRSTUDIO_5.1. Осваиваю СИ после Асмы. Так и не понял как к проекту подцепить файл lcd_lib.c. Я вписал в проект #include “lcd_lib.h” этот файл подцепился. А lcd_lib.c нет. Естественно когда вызываю функцию void LCD_Init(void); появляется ошибка, мол что это? Файл lcd_lib.c положил просто в каталог самого проекта. Так как сделать так чтоб этот файл lcd_lib.c, тоже был в проекте?]]></description>
			<dc:creator>DIMA</dc:creator>
			<pubDate>Thu, 29 Mar 2012 04:08:02 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-2075</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-1718</link>
			<description><![CDATA[Видимо он не следует стандарту.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Wed, 21 Sep 2011 20:42:49 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-1718</guid>
		</item>
		<item>
			<title>Вася says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-1674</link>
			<description><![CDATA[Глобальные переменные одного модуля будут не видны другому, и наоборот. А в Codevision-е видны. Отличный от других?]]></description>
			<dc:creator>Вася</dc:creator>
			<pubDate>Sat, 10 Sep 2011 16:27:17 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-1674</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-985</link>
			<description><![CDATA[Включать файл реализации в main.c нет никакого смысла. Это уже не деление на модули. Если вы не первый раз пользуетесь средой разработки, то вы будете знать,где искать файлы реализации. Файлы реализации обычно лежат в каталоге проекта.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Sat, 08 Jan 2011 09:26:23 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-985</guid>
		</item>
		<item>
			<title>N1X says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-976</link>
			<description><![CDATA[Меня, как новичка, интересует тот же вопрос... Хочется таки увидеть ответ на него, посему UP )]]></description>
			<dc:creator>N1X</dc:creator>
			<pubDate>Thu, 06 Jan 2011 17:50:02 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-976</guid>
		</item>
		<item>
			<title>Конст says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-907</link>
			<description><![CDATA[Это то понятно. Просто человеку, смотрящему на main.c непонятно будет, откуда взялся тот или иной *.c модуль. *.h подключен, прототипы функций есть, а где искать саму реализацию непонятно. (если не смотреть на древовидную структуру слева, в IAR'е). В этом весь вопрос. Почему в хедер не подписывать после протипов функций еще и
#include "LCD.c"]]></description>
			<dc:creator>Конст</dc:creator>
			<pubDate>Mon, 13 Dec 2010 05:17:25 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-907</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-905</link>
			<description><![CDATA[Так и надо. В хедере содержаться объявления функций. Они нужны для компилятора. Модули компилируются независимо друг от друга. Если в main используются функции из других модулей, то компилятору нужно предоставить информацию о них. Это делается включением заголовочного файла.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Sun, 12 Dec 2010 19:33:33 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-905</guid>
		</item>
		<item>
			<title>Конст says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-887</link>
			<description><![CDATA[BVV прав. Фактически модуль *.c мы подключаем не используя хэдер, а используя интерфейс компилятора. цитата: Добавляем файл lcd_lib.c в наш проект. (Правой кнопкой мышки кликаем в workspace`e и в открывшемся меню выбираем Add > Add files…). А непосредственно в самом хэдере мы о нем ничего не упоминаем. Так и надо? Или все же есть способ, без использования правой кнопки мыши?]]></description>
			<dc:creator>Конст</dc:creator>
			<pubDate>Fri, 10 Dec 2010 13:29:36 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-887</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-845</link>
			<description><![CDATA[Фишка в чем. Модули программы компилируются независимо друг от друга. Никакой информации о функциях, содержащихся в других модулях, компилятор на момент компиляции не обладает. Программист должен предоставить компилятору эту информацию. Для этого создается заголовочный файл модуля с прототипами функций и другими объявлениями и включается в соответствующие модули.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Sun, 05 Dec 2010 16:19:34 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-845</guid>
		</item>
		<item>
			<title>BVV says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-841</link>
			<description><![CDATA[Такой "дубовый" вопрос: Но в lcd_lib.h нет упоминания о файле lcd_lib.с. Как компилятор "узнает", что исходный текст в последнем и его надо обрабатывать?]]></description>
			<dc:creator>BVV</dc:creator>
			<pubDate>Fri, 03 Dec 2010 12:23:33 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-841</guid>
		</item>
		<item>
			<title>Guest says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-470</link>
			<description><![CDATA[Всё-таки надо определять не пины чипа, а номера битов порта вывода. Т.е. #define RS 4 #define RW 5 #define EN 6 либо править схему. Повнимательней, пожалуйста. Начинающим довольно трудно выцеплять такие баги. А в целом - молодца!!! Хороший материал.]]></description>
			<dc:creator>Guest</dc:creator>
			<pubDate>Wed, 23 Jun 2010 14:39:40 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-470</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-375</link>
			<description><![CDATA[Допустим у нас main.c и модуль keyboard.c, keyboard.h. К main`у подключен заголовочный файл keyboard.h, а в файле keyboard.c объявлена переменная keyState. Чтобы эта переменная была доступна из функции main, нужно перед ней объявить эту переменную с ключевым словом extern: extern unsigned char keyState;]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Thu, 06 May 2010 06:08:43 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-375</guid>
		</item>
		<item>
			<title>Guest says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-371</link>
			<description><![CDATA[Подскажите начинающему "чайнику" в каком месте нужно объявлять глобальные переменные? Если я пишу перед main(), то их не видит добавленный файл.с и наоборот пример объявления; extern volatile unsigned char raz;]]></description>
			<dc:creator>Guest</dc:creator>
			<pubDate>Tue, 04 May 2010 17:31:58 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-371</guid>
		</item>
		<item>
			<title>Pashgan says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-262</link>
			<description><![CDATA[ну да, в IARе так можно делать.]]></description>
			<dc:creator>Pashgan</dc:creator>
			<pubDate>Sun, 21 Mar 2010 18:41:04 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-262</guid>
		</item>
		<item>
			<title>Guest says:</title>
			<link>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-261</link>
			<description><![CDATA[пишу так : #define port_rs PORTB_PORTB5 соответственно : port_rs = 0; port_rs = 1; ( iar avr 5.40 )]]></description>
			<dc:creator>Guest</dc:creator>
			<pubDate>Sun, 21 Mar 2010 15:56:32 +0000</pubDate>
			<guid>https://chipenable.ru/index.php/programming-avr/item/31-uchebnyy-kurs-podklyuchenie-lcd-k-mikrokontrolleru-razbivaem-programmu-na-moduli.html#comment-261</guid>
		</item>
	</channel>
</rss>
