library

Тут обсуждаем все что связано с микроконтроллерами.

Модератор: gurvinok

AVRIK
Сообщения: 121
Зарегистрирован: 24 сен 2016, 11:25

library

Сообщение AVRIK » 21 июн 2017, 16:35

Здравствуйте!
В производных акслибом кодах, повстречал запись:
#if !defined(MAIN_INIT_H_)
#error "You must included (#include \"main_init.h\") befor use (#include \"axlib/lcd.h\")."
#endif
По моей версии, эта запись читается как:# если не определен (MAIN_INIT_H), #тревога(?), вы должны подключить ...,
# конец определения.
Товарищ ГУГЛ не знает что означает,какие условия и как реагировать на #error в данной форме!
В общем, на вас вся надежда!

Аватара пользователя
gurvinok
Сообщения: 1484
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: library

Сообщение gurvinok » 21 июн 2017, 20:27

#if !defined(MAIN_INIT_H_)
#error "You must included (#include \"main_init.h\") befor use (#include \"axlib/lcd.h\")."
#endif
Если не был подключен main_init.h до подключения lcd.h, то сгенерить ошибку и застопорить сборку проекта.
Вот эта надпись
You must included (#include \"main_init.h\") befor use (#include \"axlib/lcd.h\").
будет выведена в окошко ошибок и вонингов.
Если долго мучиться, может быть получится.

AVRIK
Сообщения: 121
Зарегистрирован: 24 сен 2016, 11:25

Re: library

Сообщение AVRIK » 21 июн 2017, 21:33

Может ваша кинокомпания снимала кино по теме создания и управления библиотечными файлами? Если нет, подскажите ссылку на тему если таковые есть. Я смотрел фильм от Писанец А.Н. очень ясно и четко выражается парень, но хотелось бы копнуть глубже.

Аватара пользователя
gurvinok
Сообщения: 1484
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: library

Сообщение gurvinok » 22 июн 2017, 16:10

А что там снимать. Для управления библиотечными файлами есть всего одна директива препроцессора и пишется это так.
#include "my_lib_file.h"
Все.
Если долго мучиться, может быть получится.

AVRIK
Сообщения: 121
Зарегистрирован: 24 сен 2016, 11:25

Re: library

Сообщение AVRIK » 25 июн 2017, 16:00

Вопрос конечно не в том, как обозвать библиотечный файл! У меня при работе с библиотеками, возникают проблемы при обработке глобальных переменных. К примеру в одной программе я вычисляю значение глобальной переменной, а в другой программе, которая упакована в библиотечный файл, нужно было произвести еще какие либо действия с глобальной переменной с первой программы. Так вот, у меня во второй программе, с библиотеки, пишет что такая переменная не декларирована, хотя она в первой программе в списке глобальных.
Вот тестовый код:

Код: Выделить всё

/*
 * test1.c
 *
 * Created: 03.01.2017 9:26:20
 *  Author: SUN
 */ 

#define F_CPU 7372800UL
#include <avr/io.h>
#include "minys.h"
 volatile unsigned char a,b,c;                     
int main(void)
{
     
     a=3;
	 
    while(1)
    {
		if (a==3)
		{
			b=5;
			c=a+b;
						
	    }
		minys();
	}
}
а код функции minys(); прописанный в библиотеке такой:

Код: Выделить всё

 
    minys()
{
	b=a-1;
}
так вот, войдя в функцию "minys();" компилятор не признает переменные "а" и "b".
Вопрос: Каким образам переносить данные переменной с одного библиотечного файла в другую?

Аватара пользователя
gurvinok
Сообщения: 1484
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: library

Сообщение gurvinok » 25 июн 2017, 16:59

Так есть же кино на эту тему.
Если долго мучиться, может быть получится.

AVRIK
Сообщения: 121
Зарегистрирован: 24 сен 2016, 11:25

Re: library

Сообщение AVRIK » 25 июн 2017, 21:02

ДА! Это то что надо. Фильм по теме. Еще один вопрос: там вы упоминайте фильм на тему разделение программы на файлы, где, как я понял, пояснения касаются структуры и синтаксиса файлов с расширением "с"и "h".
Может подскажете адресок указанного фильма?
Спасибо.

AVRIK
Сообщения: 121
Зарегистрирован: 24 сен 2016, 11:25

Re: library

Сообщение AVRIK » 25 июн 2017, 21:13

Нашел на ютубе вашу передачу "для самых маленьких". Просмотрю, надеюсь там найду все что интересует. Если нет, побеспокою!
Всех благ!

AVRIK
Сообщения: 121
Зарегистрирован: 24 сен 2016, 11:25

Re: library

Сообщение AVRIK » 26 июн 2017, 01:07

Здравствуйте Алексей!
Нашел я кино про разделение программы на "c" и"h" файлы. :?
Ниичего не понятно!!!!!!!!!!!!!!!!
Как создавать "с" и "h" файлы???????
Создал с чистого листа, т.е. открыл студию>Fila>new>file>include file>итд. Создал maim.c, прописал дефайны и главную функцию, но программа не компилируется?! На снимке видно, иконка компиляции пассивна.
Конечно это ваше дело, как и что показывать, но если б вы не в паинте а в студии показали как с нуля создавать разложенную по папкам простейшую программку, было бы гораздо нагляднее и понятнее для самых маленьких, ну для меня на пример :D
Вложения
Снимок.PNG

Аватара пользователя
gurvinok
Сообщения: 1484
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: library

Сообщение gurvinok » 26 июн 2017, 10:54

Ну все верно. С какого перепугу будет компилироваться, если компилятор понятия не имеет что это за камень, какой язык использован для написания программы, ну и тому подобное. Перед тем как добавлять файлы к программе, нужно создать проект средствами студии, а потом уже к нему подключать свои файлы.
Ради интереса, создайте проект и сохраните его, а потом посмотрите что за папки и файлы создала студия.
Если долго мучиться, может быть получится.

Ответить