Нет перехода от Setup к Loop

Lictor
Offline
Зарегистрирован: 01.10.2015

Добрый день.

Пишу код для электронной игрушки с часами, радио и т.п. Сам по себе код работает. но есть один нюанс.

В Setup я задаю настройки по умолчанию, которые используются в loop. Т.к. код перевалил за 2000 строк я поместил отдельные логически завершенные куски кода в функции, которые вынес в конец кода и некоторые куски в отдельные текстовые файлы, которые  я подключил как

void ИмяФункции() {
#include "НазваниеФайла.h"
}

И все бы ничего, но я решил использовать такие команды как  strcat(a, b);  и c = atof(d); Собака оказалась зарыта здесь. Если код в котором содержатся эти команды вынести как отдельную функцию или в отдельный файл, то Setup работает, но цикд Loop не запускается. Если эти команды не выносить в функцию или файл, то все работает отлично. Где программа останавливается, проверял вставляя 

digitalWrite(4, HIGH);
delay(2000);
digitalWrite(4, LOW);

В чем смысл? Что с этим можно сделать?

nik182
Offline
Зарегистрирован: 04.05.2015

Замените "НазваниеФайла.h" на "НазваниеФайла.d" и попробуйте.(файлы тоже надо переиминовать)

Lictor
Offline
Зарегистрирован: 01.10.2015

nik182 пишет:

Замените "НазваниеФайла.h" на "НазваниеФайла.d" и попробуйте.(файлы тоже надо переиминовать)

Компилятор не видит этот файл. Пишет, что его нет в директории. Хотя файлы .h видит. А что это за разрешение? Про .h читал, что это просто подключение кода, .c компилируется отдельно от скетча и т.п.?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Lictor пишет:

 отдельные текстовые файлы, которые  я подключил как

void ИмяФункции() {
#include "НазваниеФайла.h"
}

А что, нормально разбить код на файлы религия не позволила?

Вы там такого наворотили с такими вставками, что чёрт ногу сломает (вот он и сломал). Без кода сказать Вам нечего, а в коде на 2000 строк я разбираться не хочу, тем более, что он изначально сделан "через альпы".

Просто разбейте код на файлы обычным способом и "забудьте о перхоти".

Lictor
Offline
Зарегистрирован: 01.10.2015

ЕвгенийП пишет:

Lictor пишет:

 отдельные текстовые файлы, которые  я подключил как

void ИмяФункции() {
#include "НазваниеФайла.h"
}

А что, нормально разбить код на файлы религия не позволила?

Вы там такого наворотили с такими вставками, что чёрт ногу сломает (вот он и сломал). Без кода сказать Вам нечего, а в коде на 2000 строк я разбираться не хочу, тем более, что он изначально сделан "через альпы".

Просто разбейте код на файлы обычным способом и "забудьте о перхоти".

 

Хм, помогло. Благодарю.

nik182
Offline
Зарегистрирован: 04.05.2015

Lictor пишет:

nik182 пишет:

Замените "НазваниеФайла.h" на "НазваниеФайла.d" и попробуйте.(файлы тоже надо переиминовать)

Компилятор не видит этот файл. Пишет, что его нет в директории. Хотя файлы .h видит. А что это за разрешение? Про .h читал, что это просто подключение кода, .c компилируется отдельно от скетча и т.п.?

Эх. В инклуде надо прописывать полное имя файла. Расширение может быть любым отличным от .h  Мы тутэто недавно обсуждали. .h файлы должны лежать в отдельной от скетча директории.

DIVGENY
Offline
Зарегистрирован: 23.08.2016

nik182 пишет:

Эх. В инклуде надо прописывать полное имя файла. Расширение может быть любым отличным от .h  Мы тутэто недавно обсуждали. .h файлы должны лежать в отдельной от скетча директории.

это тема. можно ссылку