Не могу понять где тот подковырок который я не вижу. кто хорошо просвещен подскажите.
- Войдите на сайт для отправки комментариев
Пт, 02/09/2016 - 11:49
Дело такое после заливки скетча должна ити передача цыфровых данных (мигать лампочка RX и в терминали должно быть видны отображения этих данных) уход данных в uart но этого по какойто неведомой для меня причине не происходит может быть кто то подскажет в чем дело что не так? за рание благодарю вас!
//******************************************************************** unsigned long micros_sp = 0, micros_th = 0; volatile int tz; volatile int sz; volatile int sp; //импульсы спидометра volatile int th; //импульсы тахометра int analogInput [15]; //массив аналоговых значений int digitalInput[29]; //массив цифровых значений String resultString = ""; //строка int i; //счетчик циклов //******************************************************************** //******************************************************************** void speedometr(){ //измеряем частоту на входе спидометра по прерыванию sp=(567000.0/( micros() - micros_sp)); micros_sp = micros(); sz = 10; } //******************************************************************** void tahometr(){ //измеряем частоту на входе тахометра по прерыванию th=(29000000.0/( micros() - micros_th)); micros_th = micros(); tz = 10; } void setup(){ for(i=0; i<=14; i++){ //обнуление массива аналоговых значений digitalInput=0; } for(i=0; i<=28; i++){ //обнуление массива цифровых значений analogInput=0; } Serial.begin(9600); Serial1.begin(9600); //инициализация ком порта attachInterrupt(0, speedometr, RISING); //прерывание спидометра по фронтам импульса attachInterrupt(1, tahometr, FALLING); //прерывание тахометра по фронтам импульса } //******************************************************************** void loop(){ analogInput[0] = analogRead(4); // B13 напряжение analogInput[1] = analogRead(2); // B11 топливо analogInput[2] = analogRead(0); // B 9 температура охлаждения analogInput[3] = 0; analogInput[4] = 0; analogInput[5] = 0; analogInput[6] = 0; analogInput[7] = 0; analogInput[8] = 0; analogInput[9] = 0; analogInput[10] = 0; analogInput[11] = 0; analogInput[12] = 0; analogInput[13] = 0; analogInput[14] = 0; digitalInput[0] = digitalRead(47); // B 2 зажигание digitalInput[1] = 0; //******************************************************************** digitalInput[2] = 0; //******************************************************************** digitalInput[3] = digitalRead(32) + // A14 левый поворот digitalRead(33) * 2; // A13 правый поворот //******************************************************************** digitalInput[4] = digitalRead(28) + // A18 габарит digitalRead(29) * 2; // A17 дальний //******************************************************************** digitalInput[5] = 0 + // А16 птф передние digitalRead(31) * 2; // A15 птф задний //******************************************************************** digitalInput[6] = 0; digitalInput[7] = !digitalRead(26); // A20 - уровень тж digitalInput[8] = !digitalRead(27); // A19 - ручник digitalInput[9] = 0; digitalInput[10] = !digitalRead(24); // A22 - лампа топлива digitalInput[11] = !digitalRead(52); // B 7 - уровень ОЖ digitalInput[12] = !digitalRead(22); // A24 - давление масла digitalInput[13] = digitalRead(53); // B 8 - лампа вентилятора digitalInput[14] = digitalRead(23); // A23 - зарядка digitalInput[15] = 0; digitalInput[16] = 0; digitalInput[17] = 0; digitalInput[18] = 0; digitalInput[19] = 0; digitalInput[20] = 0; digitalInput[21] = 0; digitalInput[22] = 0; digitalInput[23] = 0; digitalInput[24] = 0; digitalInput[25] = 0; digitalInput[26] = 0; digitalInput[27] = 0; digitalInput[28] = 0; resultString = String(resultString + sp); resultString = String(resultString + ","); resultString = String(resultString + th); resultString = String(resultString + ","); for(i=0; i<=14; i++){ //передаем аналоговые данные из массива в COM-port resultString = String(resultString + analogInput); resultString = String(resultString + ","); } for(i=0; i<=28; i++){ //передаем цифровые данные из массива в COM-port resultString = String(resultString + digitalInput); } resultString = String(resultString + ":\n"); Serial1.print (resultString); Serial.print (resultString); resultString = String(""); tz = tz - 1; sz = sz - 1; if (tz == 0){th = 0;} if (sz == 0){sp = 0;} delay(50); }
данные которые должны были бы быть в терменали при мигающем RX
Жесть вы с памятью обращаетесь, конечно :) По коду - навскидку криминала не видно, более пристально смотреть - глаза болят, код неформатирован (отступов нет) - жутко неудобно. Глаза отдохнут - ещё раз гляну :)
Ок, буду ждать, спасибо.
1.почти везде, где в циклах использованы массивы digitalInput и analogInput не проставлены индексы [i], или что-вы-там-имелии-ввиду.
Просто скетч не передает данные через rx-tx на esp8266
Посмотрите внимательно на строки 26 и 29. Потом посмотрите на описание упомянутых в них переменных. И попытайтесь самомы себе объяснить, что в этих строках делается.
Честно я в этом не очень разбираюсь по этому и обратился ко всем вам.
строка 96
resultString = String(resultString + analogInput);
а надо
resultString = String(resultString + analogInput[i]);
строка 100
resultString = String(resultString + digitalInput);
а надо
resultString = String(resultString + digitalInput[i]);
теперь вот что
строка 26 должна быть
digitalInput{i}=0;
29
analogInput[i]=0;
строка 26 должна быть
digitalInput{i}=0;
Точно? :)))
ШО, скобки не те поставил?, :))))
ну тогда так
digitalInput[i]=0;
теперь самое главное загрузил все норм но RX не мигает и в и в монеторе порта пусто
Уважаемые форумчани вы извените но я просто все перепробывал одна надежда на вас уже голова взрываеться от компа дня 4 не отходил пива не пил и все зря(
что можешь еще сказать?
что можешь еще сказать?
Так всё уже сказано, если код чужой, то Вам в другой раздел надо.
ты фокусник все норм начала мигать лампочка пошло в мониторе порта но с маленьким нюансом
нужно
я глаза ломать не буду, сравнивай знки < > в тех строках которые я дал выше
Делать было нечего, подпилил:
Делать было нечего, подпилил:
строка 31 и 42 всего15 а не 29 элементов в массиве
и в строках 74 и 81 остались ошибки
не подскажешь по поводу того что ноли гонит там чуть выше фото
нет, я ничего не могу там разобрать
дай почту или на мою напиши я фото скину нормальные
попробуй вот так
убрал ненужный код
попробуй вот так
К пятнице уже глаза залили все? Сколько раз проработает цикл с (i=0; i > 14; i++) ?????????????????
Подсказка, млеать: НОЛЬ раз!!!! Я, блин, где-то читал, что НОЛЬ МЕНЬШЕ 14, едреный ёжег!
Что вы там все курите? Поделиццо нет желания?
строка 31 и 42 всего15 а не 29 элементов в массиве
Да, там проглядел.
и в строках 74 и 81 остались ошибки
В чём? Выхода за пределы массива вроде нет. Впрочем, я сильно не приглядывался, надо же что-то автору оставить :)
попробуй вот так
К пятнице уже глаза залили все? Сколько раз проработает цикл с (i=0; i > 14; i++) ?????????????????
Подсказка, млеать: НОЛЬ раз!!!! Я, блин, где-то читал, что НОЛЬ МЕНЬШЕ 14, едреный ёжег!
Что вы там все курите? Поделиццо нет желания?
дык понятно что должно быть < , но он гад виснет на нем когда в сетапе, в последнем варианте я убрал это,
проверять то не начем, вот и ТС делаеет за меня :))))
Вот, подправил:
и в строках 74 и 81 остались ошибки
В чём? Выхода за пределы массива вроде нет. Впрочем, я сильно не приглядывался, надо же что-то автору оставить :)
да не , там все правильно
Хотя, конечно, я бы так память не насиловал:
До:
Скетч использует 7 734 байт (3%) памяти устройства.
После:
Скетч использует 5 850 байт (2%) памяти устройства.
на этом лампа РХ мигает но приложение не запускаеться почемуто
СПАСИБО ВСЕМ что есть такие добрые и отзывчивые люди!!!!!!!!!!!!!