Применение millis для нескольких процессов

b707
Онлайн
Зарегистрирован: 26.05.2017

Posol88 пишет:

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

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

Ардуино - это игрушка, но игрушка для программистов.

b707
Онлайн
Зарегистрирован: 26.05.2017

пример исходника ардуино - библиотека для ina3221 - в котором встречается куча конструкций. не описанных в шпаргалке. И кстати. в самом начале попадаются как раз #enfif - которых якобы "нет в ардуино" :)

//   SDL_Arduino_INA3221 Library
//   SDL_Arduino_INA3221.cpp Arduino code - runs in continuous mode
//   Version 1.2
//   SwitchDoc Labs   September 2019
//
//



/*
    Initial code from INA219 code (Basically just a core structure left)
    @author   K.Townsend (Adafruit Industries)
	@license  BSD (see BSDlicense.txt)
*/

#if ARDUINO >= 100
 #include "Arduino.h"
#else
 #include "WProgram.h"
#endif

#include <Wire.h>

#include "SDL_Arduino_INA3221.h"

/**************************************************************************/
/*! 
    @brief  Sends a single command byte over I2C
*/
/**************************************************************************/
void SDL_Arduino_INA3221::wireWriteRegister (uint8_t reg, uint16_t value)
{
  Wire.beginTransmission(INA3221_i2caddr);
  #if ARDUINO >= 100
    Wire.write(reg);                       // Register
    Wire.write((value >> 8) & 0xFF);       // Upper 8-bits
    Wire.write(value & 0xFF);              // Lower 8-bits
  #else
    Wire.send(reg);                        // Register
    Wire.send(value >> 8);                 // Upper 8-bits
    Wire.send(value & 0xFF);               // Lower 8-bits
  #endif
  Wire.endTransmission();
}

/**************************************************************************/
/*! 
    @brief  Reads a 16 bit values over I2C
*/
/**************************************************************************/
void SDL_Arduino_INA3221::wireReadRegister(uint8_t reg, uint16_t *value)
{

  Wire.beginTransmission(INA3221_i2caddr);
  #if ARDUINO >= 100
    Wire.write(reg);                       // Register
  #else
    Wire.send(reg);                        // Register
  #endif
  Wire.endTransmission();
  
  delay(1); // Max 12-bit conversion time is 586us per sample

  Wire.requestFrom(INA3221_i2caddr, (uint8_t)2);  
  #if ARDUINO >= 100
    // Shift values to create properly formed integer
    *value = ((Wire.read() << 8) | Wire.read());
  #else
    // Shift values to create properly formed integer
    *value = ((Wire.receive() << 8) | Wire.receive());
  #endif
}

//
void SDL_Arduino_INA3221::INA3221SetConfig(void)
{
 
 
  // Set Config register to take into account the settings above
  uint16_t config = INA3221_CONFIG_ENABLE_CHAN1 |
                    INA3221_CONFIG_ENABLE_CHAN2 |
                    INA3221_CONFIG_ENABLE_CHAN3 |
                    INA3221_CONFIG_AVG1 |
                    INA3221_CONFIG_VBUS_CT2 |
                    INA3221_CONFIG_VSH_CT2 |
                    INA3221_CONFIG_MODE_2 |
                    INA3221_CONFIG_MODE_1 |
                    INA3221_CONFIG_MODE_0;
  wireWriteRegister(INA3221_REG_CONFIG, config);
}

/**************************************************************************/
/*! 
    @brief  Instantiates a new SDL_Arduino_INA3221 class
*/
/**************************************************************************/
SDL_Arduino_INA3221::SDL_Arduino_INA3221(uint8_t addr, float shuntresistor) {
    
    INA3221_i2caddr = addr;
    INA3221_shuntresistor = shuntresistor;
 
}

/**************************************************************************/
/*! 
    @brief  Setups the HW (defaults to 32V and 2A for calibration values)
*/
/**************************************************************************/
void SDL_Arduino_INA3221::begin() {
  Wire.begin();    
  // Set chip to known config values to start
  INA3221SetConfig();
    
   // Serial.print("shut resistor="); Serial.println(INA3221_shuntresistor);
       // Serial.print("address="); Serial.println(INA3221_i2caddr);
    
}

/**************************************************************************/
/*! 
    @brief  Gets the raw bus voltage (16-bit signed integer, so +-32767)
*/
/**************************************************************************/
int16_t SDL_Arduino_INA3221::getBusVoltage_raw(int channel) {
  uint16_t value;
  wireReadRegister(INA3221_REG_BUSVOLTAGE_1+(channel -1) *2, &value);
//    Serial.print("BusVoltage_raw=");
//    Serial.println(value,HEX);

  // Shift to the right 3 to drop CNVR and OVF and multiply by LSB
  return (int16_t)(value );
}

/**************************************************************************/
/*! 
    @brief  Gets the raw shunt voltage (16-bit signed integer, so +-32767)
*/
/**************************************************************************/
int16_t SDL_Arduino_INA3221::getShuntVoltage_raw(int channel) {
  uint16_t value;
  wireReadRegister(INA3221_REG_SHUNTVOLTAGE_1+(channel -1) *2, &value);
   // Serial.print("ShuntVoltage_raw=");
   // Serial.println(value,HEX);
  return (int16_t)value;
}


 
/**************************************************************************/
/*! 
    @brief  Gets the shunt voltage in mV (so +-168.3mV)
*/
/**************************************************************************/
float SDL_Arduino_INA3221::getShuntVoltage_mV(int channel) {
  int16_t value;
  value = getShuntVoltage_raw(channel);
  return value * 0.005;
}

/**************************************************************************/
/*! 
    @brief  Gets the shunt voltage in volts
*/
/**************************************************************************/
float SDL_Arduino_INA3221::getBusVoltage_V(int channel) {
  int16_t value = getBusVoltage_raw(channel);
  return value * 0.001;
}

/**************************************************************************/
/*! 
    @brief  Gets the current value in mA, taking into account the
            config settings and current LSB
*/
/**************************************************************************/
float SDL_Arduino_INA3221::getCurrent_mA(int channel) {
    float valueDec = getShuntVoltage_mV(channel)/INA3221_shuntresistor;
  
  return valueDec;
}


/**************************************************************************/
/*! 
    @brief  Gets the Manufacturers ID
*/
/**************************************************************************/
int SDL_Arduino_INA3221::getManufID()
{
  uint16_t value;
  wireReadRegister(0xFE, &value);
  return value;

}

 

Posol88
Offline
Зарегистрирован: 14.11.2019

и как мне теперь с этим жить? у меня от той информации ухо чесалось, а теперь я еще и дергаться начну

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

Posol88 пишет:
по ардуино более ни чего не нашел
Вам надо не по Ардуино, а по языку программирования. Иначе, скоро Вы здесь примелькаетесь и Вас начнут посылать "на" сразу, не читая вопроса.

b707
Онлайн
Зарегистрирован: 26.05.2017

Posol88 пишет:

и как мне теперь с этим жить? у меня от той информации ухо чесалось, а теперь я еще и дергаться начну

ну это вам решать.

Будучи на вашем месте (а я часто, кстати. бываю на вашем месте. потому что постоянно изучаю что-то новое) - я бы видел два пути:

- либо разобраться в предмете осеновательно. для этого взять учебник и хорошенько его изучить страниц этак на 150-200, а не только предисловие, как вы цитируете :)

- либо бросить это дело. потому что вам это не нужно

b707
Онлайн
Зарегистрирован: 26.05.2017

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

Posol88
Offline
Зарегистрирован: 14.11.2019

сделаю кормушку, и забуду это дело как страшный сон.

b707
Онлайн
Зарегистрирован: 26.05.2017

Posol88 пишет:

сделаю кормушку, и забуду это дело как страшный сон.

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

Posol88
Offline
Зарегистрирован: 14.11.2019

"весна покажет..." )))

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

Posol88 пишет:

сделаю кормушку, и забуду это дело как страшный сон.

Вот этим Вы убили последний шанс получить от кого-то "помощь".

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

Posol88
Offline
Зарегистрирован: 14.11.2019

а я думал, что тут люди в основном занимаются тем, что получают удовольствие от ощущения собственного превосходства, над новичками с глупыми вопросами.  хотя вы ЕвгенийПb707 и ua6em. разительно отличаетесь большей адекватностью. 

в свою очередь благодарен вам за ту "помощь" которую вы мне уже оказали. думаю что этого хватит.

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

Posol88 пишет:

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

когда до тебя дойдёт, что "новичков" не существует, то тебе перестанет казаться.

!в очередной раз задаю вопрос: каким образом на России людям забивают в голову ржавый гвоздь чувства неполноценности? - если человек чего-то не знает или не понимает, где это рыть в тырнетах, он приходит и говорит: "здрасте, я неполноценный, т.е. - новичок.!

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

спасибо.

nik182
Онлайн
Зарегистрирован: 04.05.2015

Posol88 пишет:

b707 пишет:

давай начнем с того, что ни один из этих примеров не является оператором.

printf(), out() и putchar() - это функции, ровно такие же как ардуиновские  loop() или setup(). Функции можно придумать или подгрузить из библиотеки какие угодно.

main() - тоже функция. но с особым смыслом, главная функция любой программы на С. В ардуино она есть

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

а я непоколибимо верил, что все 

Операторы

Данные

Функции

Управляющие операторы

Константы

Цифровой ввод/вывод

Типы данных

Аналоговый ввод/вывод

Синтаксис

Дополнительные фунции ввода/вывода

Работа со временем

Преобразование типов данных

Арифметические операторы

Математические функции

Область видимости переменных и квалификаторы

Операторы сравнения

Логические операторы

Тригонометрические функции

Генераторы случайных значений

Унарные операторы

Внешние прерывания

Функции передачи данных

 

которые используются в языке ардуино представлены  тут.

Попрoбуй .ru на .сс поменять, и очень удивишься. Там первоисточник, здесь краткая, не полная частичная информация. Даже на .ua больше. Мне не понятно, почему админы так сократили справочник.

b707
Онлайн
Зарегистрирован: 26.05.2017

nik182 пишет:

Попрoбуй .ru на .сс поменять, и очень удивишься. Там первоисточник, здесь краткая, не полная частичная информация. Даже на .ua больше. Мне не понятно, почему админы так сократили справочник.

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

nik182
Онлайн
Зарегистрирован: 04.05.2015

На английский есть гугль переводчик, а 70 % как то так получилось, что мне почти всегда надо то, чего не впихнули в эти 70%. И это нужное находилось на .сс . Так что впечатление от куцести перевода сложилось стойкое.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Posol88 пишет:

прошу прощения, за свою тупость и амбиции.

это не тупость, это издержки веры )))

Posol88
Offline
Зарегистрирован: 14.11.2019

Товарищи программисты! Вот вы и постарели еще на год... Поздравляю вас!  )))

-NMi-
Offline
Зарегистрирован: 20.08.2018

Posol88 пишет:

Товарищи программисты! Вот вы и постарели еще на год... Поздравляю вас!  )))

А ты типа не программист и не постарел, чтоле???           )_))

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Не стареют душой программисты.Ура товарищи. :))

inspiritus
Offline
Зарегистрирован: 17.12.2012

Скетчи не горят :)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Posol88 пишет:

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

Текст любой дезинформации содержит 90-95% верных сведений, и только 5-10% - ложных. Но именно последние и являются ключевыми.

Исходя из этого, весь Ваш текст является дезинформацией.

Нет. с тем, что И-нет - большая помойка, в которой с равной вероятностью можно найти как истинную, так и ложную информацию, никто не спорит. Но весь И-нет ведь и не нужен. Достаточно Википедии или любого учебника.

Статья из Википедии находится здесь: https://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC

А список рекомендуемой учебной литературы - на этом форуме: http://arduino.ru/forum/obshchii/pesochnitsa-dlya-vsekh-novichkov

Поэтому то, что Вы не нашли ни того, ни другого, говорит лишь о том, что Вы и не пытались искать.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

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

Мне тут Дед Мороз мультиметр подогнал. Вот думаю, чё с ним делать? Пихать чё-нить измерять - страшно за такую-то цену.

Выдержка из описания по ссылке:

Цитата:
могут выдерживать импульсы до 8 000 В

Мсье часто работает с напряжениями выше 8000В или просто понимает фразу "могут выдерживать" как "могут выдерживать, а могут - и нет"?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Posol88 пишет:

а я непоколибимо верил, что все 

Операторы

...

Функции передачи данных

 

которые используются в языке ардуино представлены  тут.

Вот скажите, Вы, как электрик, наверняка знакомы с некоторым набором профессиональных терминов: анод, батарея, вольт, жила, заземление, изолятор, контакт... ?

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

В справочнике по Ардуино приведены не все конструкции "языка Ардуино", а только те из них, которые не входят в Си/Си++. Так вот: Си/Си++ - это общеупотребительные термины, а те, из справочника, - это узкопрофессиональные. Построить ни одну фразу, пользуясь только узкопрофессиональными терминами без использования общеупотребительных - невозможно.

Чтобы что-то сказать в своей сфере деятельности мало знать 30 специальных терминов, нужно еще знать минимум 3000 общеупотребительных слов. Притом, последние 3000 нужно знать все, хотя фраза и не обязана их все содержать одновременно. Но если Вы не будете знать их все, (а не только те, что входят в данную фразу) Вы будете сталкиваться с трудностями при построении каждой новой фразы. Что, собственно, у Вас сейчас и наблюдается с Ардуино.

Ну а если "не помещается в оперативную память", - Ардуино не для Вас.

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

Мсье вообще как-то до лампочки эта фраза.

Posol88
Offline
Зарегистрирован: 14.11.2019

-NMi- пишет:

Posol88 пишет:

Товарищи программисты! Вот вы и постарели еще на год... Поздравляю вас!  )))

А ты типа не программист и не постарел, чтоле???           )_))

так я же говорю - товарищи)) т.е. я с вами)))

Posol88
Offline
Зарегистрирован: 14.11.2019

Припозднился я, но - С рождеством!)) всем привет. может кто нибудь имеет возможность подкинуть ссылочку наместо,вкотором популярно обьясняется как читать шеснадцатиричные записи чисел вроде этого:

Шестнадцатеричные константы, как и двоичные, имеют специальную форму записи:

int y = 0x010F; // 271 (256 + 15)

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

010F = 0001 0000 1111 = 100 001 111 = 417 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

1-2-4-8-16-32-64-128-256-512-1024 и т.д.

Posol88
Offline
Зарегистрирован: 14.11.2019

https://www.youtube.com/watch?v=qSkUuFySwqE

эту логику я понял. я даже понял что 010F; // 271 (256 + 15)  цифра 15 это результат преобразования "F" я не могу понять как 0100 (это же останется если убрать F) пересчиталось в 256. А по той логике, что Вы говорите запись должна бы выглядеть так 000000010000000F ?

опять какая то охинея у меня получилась.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

1 - 1, 2 - 2 ...9 - 9, A - 10, B - 11 ... F - 15.
1F => 1*16 + 15

b707
Онлайн
Зарегистрирован: 26.05.2017

Posol88 пишет:

эту логику я понял. я даже понял что 010F; // 271 (256 + 15)  цифра 15 это результат преобразования "F" я не могу понять как 0100 (это же останется если убрать F) пересчиталось в 256. А по той логике, что Вы говорите запись должна бы выглядеть так 000000010000000F ?

не путайте двоичные числа и шестнадцатиричные

0x010F - это шестандцатиричное

а 0000 0001 0000 1111 -оно же двоичное

и то и другое = 271 в десятичной записи

Posol88
Offline
Зарегистрирован: 14.11.2019

010F

1*16 (в степени 2) + 0*16( в степени 1) + 15*16 (в степени 0) = 256+0+15 так? 

 

b707
Онлайн
Зарегистрирован: 26.05.2017

Posol88 пишет:

010F

1*16 (в степени 2) + 0*16( в степени 1) + 15*16 (в степени 0) = 256+0+15 так? 

 

правильно

Posol88
Offline
Зарегистрирован: 14.11.2019

всем благодарность и хорошего настроения))

Posol88
Offline
Зарегистрирован: 14.11.2019

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

#include <Timer.h>
const int ledPin = 13;
const int switchPin = 5;
const int period = 1000;
boolean flashing = false;
int ledState = LOW;
Timer t;                                                         //создать таймер ,назвать «t»
void setup()
{
  pinMode(ledPin, OUTPUT);                       //13 контакт - выход
  pinMode(switchPin, INPUT_PULLUP); //подтягивающий резистор к кнопке на 5м
  t.every(period, flashIfRequired);               //вызывать функцию через период.
}
void loop()
{
  if (digitalRead(switchPin) == LOW)          // кнопка нажата? Если да то:
  {
    flashing = ! flashing;                               //изменить значение переменной на противоположное (false на truth)
    if (! flashing)                                           //если значение переменной изменилось то:
    {
      digitalWrite(ledPin, LOW);                   //на 13м контакте изменить уровень напряжения на низкий
    }
  }
  t.update();
}
void flashIfRequired()                                //выполнять функцию раз в 1 сек.
{
  if (flashing)                                             //если переменная имеет номинальное значение (false) то:
  {
    ledState = ! ledState;                           //сменить значение на противоположное
    digitalWrite(ledPin, ledState);              //изменить значение на 13 ножке на значение переменной ledState
  }
}

вопрос: я так понял, что кнопка приостанавливает мигание только на то время, пока она нажата. Так?

P.S. коментарии дописывал сам, в связи с чем могут быть неточности.

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

Posol88 пишет:
я тут в книжечке пример скетча вычитал
Вам же говорили, читать книги по языку программирования, а не "по ардуино". Последние предполагают некоторые знания языка, которых у Вас нет.

Posol88
Offline
Зарегистрирован: 14.11.2019

можно было не написать ни одной буквы, можно было написать 2 или 3 (да, нет), но Вы, ЕвгенийП, выбрали самый сложный путь - написать 114 букв(и это без учета пробелов , знаков припинания и пунктуации) так и не ответив на вопрос.

 

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

Видите, какой я неленивый.

Posol88
Offline
Зарегистрирован: 14.11.2019

XD

Logik
Offline
Зарегистрирован: 05.08.2014

Про либу  - какие вопросы, в стр.24 запрятан и вызов flashIfRequired, вобщем херня банальная. Закрыли тему.

Posol88
Offline
Зарегистрирован: 14.11.2019

Вот пока с Вами не пообщаюсь, ни как понимание не приходит - 

напишу сюда, Вы заставляете усомнится, тогда еще поразмышляю, и все понятно становится... 

а без этого, по ходу, ни как))))

Logik
Offline
Зарегистрирован: 05.08.2014

Для этого резиновую уточку можно использовать. Тоже помогает )))

https://ru.wikipedia.org/wiki/Метод_утёнка

 

Posol88
Offline
Зарегистрирован: 14.11.2019
Здравствуйте уважаемые форумчане!
#include <iarduino_RTC.h> 
int TimeWork ;
iarduino_RTC time (RTC_DS1302,7,6,5);
int LED = 2;                      

void setup(){
     delay(300);
    Serial.begin(9600);
    time.begin();
    pinMode(LED, OUTPUT);
    pinMode(LED,INPUT_PULLUP);
    Serial.println (time.seconds);
}
void loop(){
 if(millis()%1000==0){ // если прошла 1 секунда
     Serial.println (time.gettime("d-m-Y, H:i:s, D")); // выводим время
 }  
  if (time.seconds == 10);
 {
   TimeWork = millis() ;
   digitalWrite(LED,HIGH); 
 }
 if(millis()-TimeWork >= 1000ul){
  digitalWrite(LED,LOW);
 }
delay(1);
}

Вот в этом коде работоспособность заканчивается на строчке №19 " if (time.seconds == 10);"  .  не включает LED в 1о секунд каждой минуты.  Может быть там какой то формат (не десятичный например) возвращается?

P.S.  пробовал присвоить значение с запроса "time.seconds" переменной и уже потом сравнивать - результат аналогичен прежнему.

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

Posol88 пишет:

  if (time.seconds == 10);

Вот в этом коде работоспособность заканчивается на строчке №19 " if (time.seconds == 10);"  .  не включает LED 

Я Вам уже несколько раз говорил, да, прочитайте ж Вы, наконец книжку по языку на котором пытаетесь писать. Вы каждый предпочитаете игнорировать совет и обвинять меня в том, я не отвечаю на Ваши вопросы (#486).

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

Posol88
Offline
Зарегистрирован: 14.11.2019

фух... я то думал... а это просто невнимательность... и ведь компелятор ни чего не говорил на эту тему...

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

Posol88 пишет:

и ведь компелятор ни чего не говорил на эту тему...

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

Posol88
Offline
Зарегистрирован: 14.11.2019

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

Posol88 пишет:

и ведь компелятор ни чего не говорил на эту тему...

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

я так и подумал. 

P.S. а на счет учебника, я один прочитал уже. Но ведь просто прочитать мало, нужно еще и понять что там написано. А ведь книги по программированию это не какой нибудь любовный роман, просто отслеживания сюжета не достаточно. нужно вникать в каждое предложение и многое запоминать. К сожалению мне это дается не просто. Требуется масса времени. по тому , параллельно с изучением, я все таки делаю свои поделки)

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

Posol88 пишет:
нужно вникать в каждое предложение и многое запоминать.
А главное - запускать все примеры и добиваться, чтобы они заработали.

Posol88
Offline
Зарегистрирован: 14.11.2019

Eвгений, подскажите еще 1 ответ пожалуйста. в этом же коде, после того как я убрал ";" осталась еще одна проблема: светодиод вовремя загорается и через секунду гаснет, но загорается "в пол накала". (+ не знаю на сколько это важно - примерно через секунду после того как я нажимаю кнопку "открыть COM порт" светодиод мигает коротко, примерно на 50-100 мс.)

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

b707
Онлайн
Зарегистрирован: 26.05.2017

Posol88 пишет:

светодиод вовремя загорается и через секунду гаснет, но загорается "в пол накала". (+ не знаю на сколько это важно - примерно через секунду после того как я нажимаю кнопку "открыть COM порт" светодиод мигает коротко, примерно на 50-100 мс.)

а зачем вы порт для светодиода прописали ОДНОВРЕМЕННО и как выход, и как вход с подтяжкой?

Опять "невнимательность" ? вы вообще очень легковесно относитесь к строчкам в коде, программирование такого не прощает.

Posol88
Offline
Зарегистрирован: 14.11.2019

нет, это уже глупость.

P.S. после удаления строки "pinMode(LED,INPUT_PULLUP)" ни чего не изменилось.