адаптация с NANO в Digispark

SUPERNYAMSTER

✩✩✩✩✩✩✩
19 Дек 2020
27
1
в целях знакомства с digispark решил начать с простого. с мигалки. эту мигалку я уже делал в NANO и UNO. но вот в дигиспарк это дело отказывается работать.
и так. при включении, устройство как бы выключено, светодиоды LOW
нажать кнопку и режим становится +1 +2 и так далее моргает мигалкой(или мигает моргалкой)
в дигиспарк это не работает и на пин кнопки выходит постоянный HIGH. но почему?


мигалка:
int FLASHR_LedPin = 0; // Подключаем красный светодиод мигалки к порту 0
int FLASHB_LedPin = 1; // Подключаем синий светодиод мигалки к порту 1
int BUTPIN = 5; // Подключаем кнопку к выходу 5
int flag = 0; // флаг состояния
int regim = 0; // Переключалка
unsigned long pause1 = 0;
int temp = 1000;
int var = 0;

void setup()
{
  pinMode(FLASHR_LedPin, OUTPUT);
  pinMode(FLASHB_LedPin, OUTPUT);
}

void loop()
{
  if (digitalRead(BUTPIN) == HIGH && flag == 0)
  {
    regim ++;
    temp = 250;
    flag = 1;
    var = 1;
    pause1 = millis();

    if (regim > 3) // Если номер режима превышает требуемого
    { // то отсчет начинается с нуля
      regim = 0;
    }
  }

  if (digitalRead(BUTPIN) == LOW && flag == 1)
  {
    flag = 0;
  }

  // ======= Вполняем задачу при выборе режима =======
  // РЕЖИМ 0: Выключено
  if (regim == 0)
  {
    digitalWrite(FLASHR_LedPin, LOW);
    digitalWrite(FLASHB_LedPin, LOW);
  }

  // РЕЖИМ 1:
  if (regim == 1)
  {
    if (millis() - pause1 >= temp)
    {
      temp = 1000;
      pause1 = millis();
      switch (var) {
        case 1:
          digitalWrite(FLASHR_LedPin, HIGH);
          digitalWrite(FLASHB_LedPin, LOW);
          var = 2;
          break;
        case 2:
          digitalWrite(FLASHR_LedPin, LOW);
          digitalWrite(FLASHB_LedPin, HIGH);
          var = 1;
          break;
      }
    }
  }

  // РЕЖИМ 2:
  if (regim == 2)
  {
    if (millis() - pause1 >= temp)
    {
      temp = 250;
      pause1 = millis();
      switch (var) {
        case 1:
          digitalWrite(FLASHR_LedPin, HIGH);
          digitalWrite(FLASHB_LedPin, LOW);
          var = 2;
          break;
        case 2:
          digitalWrite(FLASHR_LedPin, LOW);
          digitalWrite(FLASHB_LedPin, LOW);
          var = 3;
          break;
        case 3:
          digitalWrite(FLASHR_LedPin, HIGH);
          digitalWrite(FLASHB_LedPin, LOW);
          var = 4;
          break;
        case 4:
          digitalWrite(FLASHR_LedPin, LOW);
          digitalWrite(FLASHB_LedPin, LOW);
          temp = 1000;
          var = 5;
          break;
        case 5:
          digitalWrite(FLASHR_LedPin, LOW);
          digitalWrite(FLASHB_LedPin, HIGH);
          temp = 250;
          var = 6;
          break;
        case 6:
          digitalWrite(FLASHR_LedPin, LOW);
          digitalWrite(FLASHB_LedPin, LOW);
          var = 7;
          break;
        case 7:
          digitalWrite(FLASHR_LedPin, HIGH);
          digitalWrite(FLASHB_LedPin, LOW);
          var = 8;
          break;
        case 8:
          digitalWrite(FLASHR_LedPin, LOW);
          digitalWrite(FLASHB_LedPin, LOW);
          temp = 1000;
          var = 1;
          break;
      }
    }
  }

  // РЕЖИМ 3
  if (regim == 3)
  {
    if (millis() - pause1 >= temp)
    {
      temp = 1000;
      pause1 = millis();
      switch (var) {
        case 1:
          digitalWrite(FLASHR_LedPin, HIGH);
          digitalWrite(FLASHB_LedPin, LOW);
          var = 2;
          break;
        case 2:
          digitalWrite(FLASHR_LedPin, LOW);
          digitalWrite(FLASHB_LedPin, HIGH);
          var = 1;
          break;
      }
    }
  }
}
 

SUPERNYAMSTER

✩✩✩✩✩✩✩
19 Дек 2020
27
1
Воощем дописал пинмод инпут. Сменил ногу.
А эта поделка запускается тольк через 100 раз и то не факт. Странные эти дигиспарки
 

SUPERNYAMSTER

✩✩✩✩✩✩✩
19 Дек 2020
27
1
Воощем дописал пинмод инпут. Сменил ногу.
А эта поделка запускается тольк через 100 раз и то не факт. Странные эти дигиспарки
Разобрался. Надо было читать документацию. В нем родном загрузчик юсб стоит, при включении ждёт команду с юсб, а я туда кнопкой тыкаю. Вот он и сходит с ума думая что за юсб устройство тут пришло. Надо 3-5 сек подождать всего то.