слить воедино два и более скетчей

denis999
Offline
Зарегистрирован: 16.04.2013

Здравствуйте, знатоки

вопрос: есть несколько скетчей - отдельно компилируются и работают, используют разные библиотеки. Так вот решил эти скетчи объединить - и при компиляции выводится куча ошибок. Все скопировано в те же разделы (setup и т.д.), подключены нужные библиотеки. Почему такое происходит?

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

А библиотеки не кофликтуют? помимо секций loop и setup еще есть инициализация классов, переменных, констант.

denis999
Offline
Зарегистрирован: 16.04.2013

в скетчах библиотеки не повторяются, задейсвованы разные пины. поэтому и вопрос - почему ошибки вылезают. по отдельности все работает.

leshak
Offline
Зарегистрирован: 29.09.2011

Добрый день уважаемый знатоки.

У меня есть две машины. Каждая, в принципе, ездит. Но я хочу объеденить их достоинства и собрать третью. Кузов большего размера я уже купил. Впихнул туда все, как получилось, но что-то не едет. Хотя я даже заправил и бензин и соляру, на всякий случай.  И колеса накачал. Все девять с половиной штук.

Все равно не едет. А соседи по гаражу - смеются. Почему так происходит?

P.S. Может быть регистрация в ГАИ поможет?

P.S.S. Подробности/фотографии - дать не могу. Коммерческая тайна. Когда все получится - это будет мое НОУ ХАУ. За которое мне уже обещали мешок лимонов.

denis999
Offline
Зарегистрирован: 16.04.2013

Если добавлять посторочно, то ошибки начинаются с void setup()

вот фото

step962
Offline
Зарегистрирован: 23.05.2011

Ну и какой толк от нечитаемого "фото"?

Что вам мешает скопировать текст из отладочного окна?

 

PS: И что символизирует открывающая фигурная скобка сразу вслед за закрывающей в вашей функции setup()? (уж не знаю, какие это номера строк, ибо на "фото" они отсутствуют)

 

PPS: становится доброй традицией ткнуть носом в одну из прикрепленных тем: вставка кода

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Зима близко! Обострение психических заболеваний  и все такое :)

Складываетя впечатление что форум атакуют разработчики из Мелкософта... видимо Виндовс 9 пытаются собрать из примеров для ардуино :)

denis999
Offline
Зарегистрирован: 16.04.2013

вот пожалуйста 2 скетча из примеров ардуино, которые хотелось бы работали вместе



#include <OneWire.h>
#include <DallasTemperature.h>
 
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2
 
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
 
// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
 
// arrays to hold device address
DeviceAddress insideThermometer;
int led = 13;
 
void setup(void)
{
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");
 
  // locate devices on the bus
  Serial.print("Locating devices...");
  sensors.begin();
  Serial.print("Found ");
  Serial.print(sensors.getDeviceCount(), DEC);
  Serial.println(" devices.");
 
  // report parasite power requirements
  Serial.print("Parasite power is: "); 
  if (sensors.isParasitePowerMode()) Serial.println("ON");
  else Serial.println("OFF");
  
  // assign address manually.  the addresses below will beed to be changed
  // to valid device addresses on your bus.  device address can be retrieved
  // by using either oneWire.search(deviceAddress) or individually via
  // sensors.getAddress(deviceAddress, index)
  //insideThermometer = { 0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0 };
 
  // Method 1:
  // search for devices on the bus and assign based on an index.  ideally,
  // you would do this to initially discover addresses on the bus and then 
  // use those addresses and manually assign them (see above) once you know 
  // the devices on your bus (and assuming they don't change).
  if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0"); 
  
  // method 2: search()
  // search() looks for the next device. Returns 1 if a new address has been
  // returned. A zero might mean that the bus is shorted, there are no devices, 
  // or you have already retrieved all of them.  It might be a good idea to 
  // check the CRC to make sure you didn't get garbage.  The order is 
  // deterministic. You will always get the same devices in the same order
  //
  // Must be called before search()
  //oneWire.reset_search();
  // assigns the first address found to insideThermometer
  //if (!oneWire.search(insideThermometer)) Serial.println("Unable to find address for insideThermometer");
 
  // show the addresses we found on the bus
  Serial.print("Device 0 Address: ");
  printAddress(insideThermometer);
  Serial.println();
 
  // set the resolution to 9 bit (Each Dallas/Maxim device is capable of several different resolutions)
  sensors.setResolution(insideThermometer, 9);
 
  Serial.print("Device 0 Resolution: ");
  Serial.print(sensors.getResolution(insideThermometer), DEC); 
  Serial.println();
}
 
// function to print the temperature for a device
void printTemperature(DeviceAddress deviceAddress)
{
  // method 1 - slower
  //Serial.print("Temp C: ");
  //Serial.print(sensors.getTempC(deviceAddress));
  //Serial.print(" Temp F: ");
  //Serial.print(sensors.getTempF(deviceAddress)); // Makes a second call to getTempC and then converts to Fahrenheit
 
  // method 2 - faster
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print("Temp C: ");
  Serial.print(tempC);
  Serial.print(" Temp F: ");
  Serial.println(DallasTemperature::toFahrenheit(tempC)); // Converts tempC to Fahrenheit
}
 
{                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}
void loop(void)
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");
  
  // It responds almost immediately. Let's print out the data
  printTemperature(insideThermometer); // Use a simple function to print out the data
}
 
// function to print a device address
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    if (deviceAddress[i] < 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
  }
}
 
{
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}
 
 
 
ошибки такие:
Single:90: error: expected unqualified-id before '{' token
Single:116: error: expected unqualified-id before '{' token

 

maksim
Offline
Зарегистрирован: 12.02.2012

#include <OneWire.h>
#include <DallasTemperature.h>
 
// Data wire is plugged into port 2 on the Arduino
#define ONE_WIRE_BUS 2
 
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
 
// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);
 
// arrays to hold device address
DeviceAddress insideThermometer;
int led = 13;
 
void setup(void)
{
  
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);  
  // start serial port
  Serial.begin(9600);
  Serial.println("Dallas Temperature IC Control Library Demo");
 
  // locate devices on the bus
  Serial.print("Locating devices...");
  sensors.begin();
  Serial.print("Found ");
  Serial.print(sensors.getDeviceCount(), DEC);
  Serial.println(" devices.");
 
  // report parasite power requirements
  Serial.print("Parasite power is: "); 
  if (sensors.isParasitePowerMode()) Serial.println("ON");
  else Serial.println("OFF");
  
  // assign address manually.  the addresses below will beed to be changed
  // to valid device addresses on your bus.  device address can be retrieved
  // by using either oneWire.search(deviceAddress) or individually via
  // sensors.getAddress(deviceAddress, index)
  //insideThermometer = { 0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0 };
 
  // Method 1:
  // search for devices on the bus and assign based on an index.  ideally,
  // you would do this to initially discover addresses on the bus and then 
  // use those addresses and manually assign them (see above) once you know 
  // the devices on your bus (and assuming they don't change).
  if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0"); 
  
  // method 2: search()
  // search() looks for the next device. Returns 1 if a new address has been
  // returned. A zero might mean that the bus is shorted, there are no devices, 
  // or you have already retrieved all of them.  It might be a good idea to 
  // check the CRC to make sure you didn't get garbage.  The order is 
  // deterministic. You will always get the same devices in the same order
  //
  // Must be called before search()
  //oneWire.reset_search();
  // assigns the first address found to insideThermometer
  //if (!oneWire.search(insideThermometer)) Serial.println("Unable to find address for insideThermometer");
 
  // show the addresses we found on the bus
  Serial.print("Device 0 Address: ");
  printAddress(insideThermometer);
  Serial.println();
 
  // set the resolution to 9 bit (Each Dallas/Maxim device is capable of several different resolutions)
  sensors.setResolution(insideThermometer, 9);
 
  Serial.print("Device 0 Resolution: ");
  Serial.print(sensors.getResolution(insideThermometer), DEC); 
  Serial.println();
}
 
// function to print the temperature for a device
void printTemperature(DeviceAddress deviceAddress)
{
  // method 1 - slower
  //Serial.print("Temp C: ");
  //Serial.print(sensors.getTempC(deviceAddress));
  //Serial.print(" Temp F: ");
  //Serial.print(sensors.getTempF(deviceAddress)); // Makes a second call to getTempC and then converts to Fahrenheit
 
  // method 2 - faster
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print("Temp C: ");
  Serial.print(tempC);
  Serial.print(" Temp F: ");
  Serial.println(DallasTemperature::toFahrenheit(tempC)); // Converts tempC to Fahrenheit
}


void loop(void)
{ 
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus
  Serial.print("Requesting temperatures...");
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println("DONE");
  
  // It responds almost immediately. Let's print out the data
  printTemperature(insideThermometer); // Use a simple function to print out the data
  
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}
 
// function to print a device address
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    if (deviceAddress[i] < 16) Serial.print("0");
    Serial.print(deviceAddress[i], HEX);
  }
}

denis999 пишет:
Все скопировано в те же разделы (setup и т.д.), ....

Видать пару раз промахнулись при копировании

denis999
Offline
Зарегистрирован: 16.04.2013

мне вот интересно - какой из ответов НЕ стеб... 8)

 

и хрен с ними со скетчами - хоть поясните что это за ошибка: error: expected unqualified-id before '{' token

maksim
Offline
Зарегистрирован: 12.02.2012

Этот

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

denis999 пишет:

мне вот интересно - какой из ответов НЕ стеб... 8)

 

и хрен с ними со скетчами - хоть поясните что это за ошибка: error: expected unqualified-id before '{' token

считайте количество скобочек в указаной строке..

maksim
Offline
Зарегистрирован: 12.02.2012

denis999 пишет:

 поясните что это за ошибка: error: expected unqualified-id before '{' token

В вашем случае это означает что вы вместо того что бы поместить инициализацию примера Blink в сетап, а основную программу в луп просто оставили эти куски кода с фигурными скобками как есть вне каких либо функций.

denis999
Offline
Зарегистрирован: 16.04.2013

спасибо тебе, maksim!

а остальным любителям автомобилей, бывшим работникам майкрософт, служащим психиатрических больниц - вы либо по делу пишите либо мимо проходите. люди потом это читать ведь будут (и не раз).

maksim
Offline
Зарегистрирован: 12.02.2012

Ну это вы зря так, вам просто намекали что от вас нужно что бы хоть как то можно было вам же помочь. Если бы вы сразу написали: Не получается соединить два примера, вот код, вот такие ошибки ,то всех этих вопросов бы не было.

denis999
Offline
Зарегистрирован: 16.04.2013

ок

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

denis999 пишет:

спасибо тебе, maksim!

а остальным любителям автомобилей, бывшим работникам майкрософт, служащим психиатрических больниц - вы либо по делу пишите либо мимо проходите. люди потом это читать ведь будут (и не раз).

спешу вас разочаровать, люди ну большинство типа вас, которые тут проходят, они не утруждают себя поиском и чтением.. они создают новые тему.. так что вы за них не преживайте.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

denis999 пишет:

а остальным любителям автомобилей, бывшим работникам майкрософт, служащим психиатрических больниц - вы либо по делу пишите либо мимо проходите. люди потом это читать ведь будут (и не раз).

 

Ну как вариант они сначала документацию читать, что-нибудь типа RTFM

leshak
Offline
Зарегистрирован: 29.09.2011

denis999 пишет:

а остальным любителям автомобилей, бывшим работникам майкрософт, служащим психиатрических больниц - вы либо по делу пишите либо мимо проходите. люди потом это читать ведь будут (и не раз).

Это точно. Не раз. Когда будет плохое настроение. Будут.

Или вы думаете что эта ветка обладает какой-то ценной информацией? Дык у вас действительно  мания величия. Обыкновенные синтаксические ошибки, от нежелания изучить базовый синтаксис.

Да собственно, изначально нормально описали бы проблему, нормально вставили код, нормально показали ошибку которая возникает - ткнули ли бы вам пальцем куда посмотреть нужно и пошли спокойно мимо.

Но вы, изначально, дали хоть какую-то вразумительную информацию что-бы вам могли помочь? Нет.

Значит было три возможных варианта:

1. Игнорировать вас
2. Стебатся
3. Как из партизана на допросе тянуть из вас инфу

Так как вы уже далеко не первый подобные персонаж за эту неделю, то кто-то выбрал (2) , кто-то (3), а еще большу (1). Понятно, что вам понравился (3). Но говорить кому-то что (2) был неправомерен - чья бы корова мычала.

Вы посмотрите свой стартовый пост и мой стебный про автомобили. Между ними, есть только два различия:

1. Один на арудино тему, второй на автомобильную.
2. Я этот бред писал понимая что это бред, а вы писали с полностью серьезностью. 

В остальном их информативная ценность - идентична. 

Так что лучше не начинайте расказывать кому тут куда проходить нужно. А отправляйтесь читать документацию, учится вставлять код (да.. это тоже описанно. причем так что-бы новичку было не трудно найти) и думать как же нужно задавать вопросы, что-бы они не сверкали бытовой глупостью. 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

leshak пишет:

denis999 пишет:

а остальным любителям автомобилей, бывшим работникам майкрософт, служащим психиатрических больниц - вы либо по делу пишите либо мимо проходите. люди потом это читать ведь будут (и не раз).

Это точно. Не раз. Когда будет плохое настроение. Будут.

Скупая мужская слеза.. может заведем раздел типа баша? и будем там собирать колекцию? :)

toc
Offline
Зарегистрирован: 09.02.2013

Предлагаю нововведение. Новым пользователям форума разрешать писать после того как они ответят на пять-шесть простых вопросов, ответы на которые можно будет узнать бегло ознакомившись с разделом сайта "Программирование". Один вопрос может быть таким "как правильно вставить текст программы в сообщение на форуме?". На каждый вопрос дать по 3-4 варианта ответов. В случае ошибки следующую попытку сдать тест разрешать через час. Большая цель: показать новичку страничку с докуметацией.

denis999, не принимайте на свой счёт.

Клапауций
Offline
Зарегистрирован: 10.02.2013

toc пишет:
Предлагаю...

Так чего делать с объединяющими несколько скетчей в один?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Клапауций пишет:

toc пишет:
Предлагаю...

Так чего делать с объединяющими несколько скетчей в один?

тут много вариантов на самом деле, самый прогресивный можно их ДНК обьединять с ДНК шимпанзе... так хоть будет шанс что смогут твердо держать палку в лапах :)

leshak
Offline
Зарегистрирован: 29.09.2011

toc пишет:

Предлагаю нововведение. Новым пользователям форума разрешать писать после того как они ответят на пять-шесть простых вопросов, ответы на которые можно будет узнать бегло ознакомившись с разделом сайта "Программирование". Один вопрос может быть таким "как правильно вставить текст программы в сообщение на форуме?". На каждый вопрос дать по 3-4 варианта ответов. В случае ошибки следующую попытку сдать тест разрешать через час. Большая цель: показать новичку страничку с докуметацией.

Вы что, не поняли что дело было не в том что код неправильно вставлен?  Ну серьезно... думаю вы найдете десятки примеров когда и я и другие просто спокойно советовали почитать ветку "как нужно вставлять код".

И ситуаций когда новичок не дал инфы никакой - тоже предостаточно. Если после, пусть и саркастических, намеков на телепатов и проч. человек понял что "сделал что-то не то", дал доп. инфу... как правило вопрос решается без бурления говен.

А вот если начинает указывать "кому куда проходить" (причем практически все подобные "уникалы" используют именно эту фразу), на просьбы отформатировать код отвечают "а мне так удобно" - вот тут "новичковой толенратности" не стоит ждать. И неспособность код вставить припомнят и все остальные грехи (даже которых небыло). 

Так что, дело в не тех.знаниях, это наживное, а именно "бытовой адекватности". Никакие тесты - тут не помогут. Если человек не дает себе труд стать на место людей которые будут его читать (назвать нормально тему, привести линк на библиотеку которую он использует, что-бы другие не тратили время на ее поиск помогая в ЕГО вопросе), назвать нормально тему и т.д. и т.п. Вообщем подумать о десятках людей которые будут тратить время,то при чем тут экзамены?  

Опять воспользуюсь автомобильной аналогией:  если человек паркуется на проезде, ни на секунду не задумываесь о других, то никакая "сдача экзаменов в ГАИ"  не помогает. Такие понимают только трех-этажный мат.

leshak
Offline
Зарегистрирован: 29.09.2011

Puhlyaviy пишет:

тут много вариантов на самом деле, самый прогресивный можно их ДНК обьединять с ДНК шимпанзе... так хоть будет шанс что смогут твердо держать палку в лапах :)

Эм... я конечно сам не без греха. Тоже, вчера, не удержался от эпитетов в адресс топик-стартера. Но давайте, все-таки постараемся воздерживатся от перехода на личности (я тоже буду старатся). Лучше критиковать действия, а не человека. И конструктивней и не так оскорбительно. Если положить руку а сердце, то топик-стартер тоже был спровоцирован намеками на псих-больницу.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

leshak пишет:

Эм... я конечно сам не без греха. Тоже, вчера, не удержался от эпитетов в адресс топик-стартера. Но давайте, все-таки постараемся воздерживатся от перехода на личности (я тоже буду старатся). Лучше критиковать действия, а не человека. И конструктивней и не так оскорбительно. Если положить руку а сердце, то топик-стартер тоже был спровоцирован намеками на псих-больницу.

дык я вроде и не переходил никуда, так в целом обсуждали, просто какая то атака желающих обьединить скечи :)

leshak
Offline
Зарегистрирован: 29.09.2011

Puhlyaviy пишет:

просто какая то атака желающих обьединить скечи :)

Ну дык, вот это как раз ОЧЕНЬ нормально. Даже хорошо.

Как решается сложная задача?  Дробится на мелкие подзадачи, находятся их решения по отдельности. А потом их нужно объеденить для финального решения исходной задачи. Вначале занимаемся декомпозицией задачи, потом синтезом решения :)

Проблемы с объеденением возникают только в случае, если "отдельные скетчи" взяты  как "магические заклинания которые работают". Когда к процессу "объединения" переходят раньше чем возникло понимание КАЖДОЙ строчки объединяемых скетчей.

Но в целом, подход "решить по отдельности и объеденить" - я бы назвал "рекомендуемым подходом". В этом вопросе  denis999 выбрал правильное направление движения..

denis999
Offline
Зарегистрирован: 16.04.2013

так и есть.

хочу создать базу элементарных, а главное рабочих(и с рабочими библиотеками, которые тоже надо поискать) скетчей для шилдов. И вот тогда действительно работать с arduino будет интересно, а не искать решение кода по каждой строке по всем форумам. Спасибо двум спецам ;) за решение вот этого поста. Теперь НАКОНЕЦ ТО! есть адекватный(а не а-ля "пример") скетч для ds18b20 без dallastemperature - на arduino.ru

Клапауций
Offline
Зарегистрирован: 10.02.2013

Тема сисек[объединения рабочих скетчей в один нерабочий] не раскрыта до конца.

paf
Offline
Зарегистрирован: 25.01.2013

Denis, с Вас тема про объединение. Можно в общих чертах. :) 

Братцы модераторы! Ну создайте же раздел Песочница!  Я бы тоже там вопросы позадавал.  Ну есть время и желание у наших гуру - помогут, объяснят. Там это к месту. Там роли расписаны. Там нубики как птенцы смотрят в клюв гуру! И гуру не будет перекармливать укоризнами, потому как - нубик, что ж с него взять?

leshak
Offline
Зарегистрирован: 29.09.2011

paf пишет:

Братцы модераторы! Ну создайте же раздел Песочница!  Я бы тоже там вопросы позадавал.  Ну есть время и желание у наших гуру - помогут, объяснят. Там это к месту. Там роли расписаны. Там нубики как птенцы смотрят в клюв гуру! И гуру не будет перекармливать укоризнами, потому как - нубик, что ж с него взять?

Да весь форум  это "песочница". 90% вопросов от нубиков, как вы выразились, и идет. И никого эти вопросы не смущают. Так что нет смысла заводить отдельный раздел.

Пинают - не за то что нубики. Не за отсутсвие технически знаний, а за отношение к другим форумчанам:

1. Не желание назвать нормально ветку (попробуйте посчитать количество веток с одинаковым названием "Помогите новичку")
2. За нежелание пользоватся поиском и ознакомится хотя-бы с базовыми примерами
3. За нежелание, прежде чем заводить ветку, "осмотрется" (посмотреть прикрепленные, посмотреть соседние - возможно только час назад уже отвечали на этот вопрос)
4. За ветки типа "у меня 1000 хотелок сделайте мне приятно"
5. Когда не хотят начать с азов, с "мигаем диодом", а сразу начинают с СУПРЕ-ПУПЕР-ПРОЕКТА. Вывалят чохом все что в голову нафантазировалось и хлопают глазами "посоветуйте как все это сделать" (ну как тут можноответить что-нибудь серьезно?).
6. За то что предполагают наличие телепатов  ("я тут все круто сделал, только что-то не работает, вызовите вангу и помогите мне").
7. Начинают огрызатся когда им указывает на предыдущие пункты (вот это почти 100% способ "попасть под раздачу". Все остальное "под настроение" - может прокатить, но после фраз "а мне так удобно" или "лучше молчите" - можно сразу убегать :)  ).

Вообщем за отношение "плевать на других, у МЕНЯ проблема, все бросьте и скорее мне решите ее".

Если же нубик:

1. Пытается сам прилагать усилия, не ждет что ему "выкатят на блюде"
2. Банально пытается стать на место людей которые будут читать его вопрос и старается облегчить им жизнь (дать ссылки на библиотеки которые использует, описать что хочет и что у него выходит. не ждет наводящих вопросов..)

То, как правило у таких нубиков - нет проблем :)  Ну разве что случайно попадут на период, когда все могущую помочь "заняты, в отпусках и т.п."

А по поводу "про объединение". Ну не может быть такой темы. Не решается этот вопрос "в общем виде" принципиально.

По автомобильной аналогии. Ну нельзя расказать как "поставить деталь от одной машины на другую". Это можно сделать только с конкретной деталью и конретной машиной. Смотреть "где чего", как подогнуть, как подпилить, где переходник вхреначить.. и возможно ли вообще. При этом, прежде чем выполнять эту операцию - нужно, таки ДОСКОНАЛЬНО разобратся и как устроена машина (блок) куда ставим, и принципы работы той детали которую ставим.

Поэтому стартовый вопрос "хочу ЧТО-ТО объединить, раскажите как" - ничего кроме игнорирования или веселухи - вызвать не может. Ну либо кому-то станет не лень и он начнет играть в следователя вытягиваюего информацию.

В любом случае "объеденить скетч"=="написать новый скетч", а что-бы написать - нужно его вначале понять :)

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Эхх, спасибо, leshak, прямо коммунизм какой то, мячта

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

denis999 пишет:

хочу создать базу элементарных, а главное рабочих(и с рабочими библиотеками, которые тоже надо поискать) скетчей для шилдов.

Желание похвальное. Но Вы, похоже, ни разу не задумывались над тем, почему для "одного и того же чипа" столько разных библиотек, и половина из них - не работает... Если бы у Вас было побольше опыта, или выбора шилдов, Вы бы обратили внимание, что одни и те же по функциональности шилды имеют разные версии, разных производителей, свои схематические ошибки и т.д., так что Ваша "база" - запросто может не заработать у кого-то другого. Ну и какой тогда смысл с этой Вашей базы, если, в результате, мы придем к тому же самому? :)

leshak
Offline
Зарегистрирован: 29.09.2011

Andrey_Y_Ostanovsky пишет:

 Ну и какой тогда смысл с этой Вашей базы, если, в результате, мы придем к тому же самому? :)

Вы и правы и не правы. Правы что - не так это просто как кажется :) Не правы - ну а разве любой програмер не должен стремится к повторному использованию кода? Ну хотя-бы "как получается". Собствнно библиотеки для того и придуманы были. В попытке решить эту проблему.

В третих - если это "мечта" и "цель жизни" - вполне возможно такое сделать.

Учим пролог, учим lisp, обкладываемся книгами типа Братко Иван - Программирование на языке Пролог для искусственного интеллекта  и еще стопкой книг по теме "построение экспертных систем".

Делаем движок системы, придумываем язык правил (обязательно понятный "чайнику", а не програмисту), для описания модулей, библиотек, зависимостей, конечных устройств, "эвристик" принятия решений и т.п. и т.д.Стараемся сделать его wiki-подобным. Делаем сайт, где эти правила, по принципу wiki может редактировать сообщество (заодно прийдется реализовать механизм проверки самих правил на непротиворечивость, то есть - еще одну экспертную систему прикрутить).... вообщем реально это :)   

Кажись  VAC-ки, в 70-80 годы собирались/конфигурировались с помощью таких экспертных систем (там тоже было очень много разных модулей, разных их комбинаций, зависимостей которые нужно учесть, ограничений на мощность, объем, вес и т.д. и т.п).

Так что, если задатся целью, то лет за 5-ть можно сделать что-то такое. Если иметь на момент старта приличную "базу". Если нет - ну еще пару лет накинуть прийдется. Ну, возможно "фанатизм" поможет чуток сократить сроки. Энтузиазм может творить чудеса (если он "долгоиграющий").