/**
   Arduino Digital Alarm Clock

   Copyright (C) 2020, Uri Shaked.
   Released under the MIT License.

*/

#include <SevSeg.h>

SevSeg sevseg;

byte numDigit = 4;
byte digitPins[] = {2, 3, 4, 5};
byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13};
bool resistorsOnSegment = false;
byte hardwareConfig = COMMON_ANODE;
bool updateWithDelays = false;
bool leadingZeros = false;
bool disableDecPoint = false;

void setup() {
  //
  sevseg.begin(hardwareConfig, numDigit, digitPins, segmentPins, updateWithDelays, leadingZeros, disableDecPoint);
  sevseg.setBrightness(6);
}
void loop() {
  for (int i = -9; i < 0; i++) {
    sevseg.setNumber(i);
    for (int j = 0; j < 32000; j++) {
      sevseg.refreshDisplay();
    }
  }
  for (int i = -9; i < 0; i++) { //显示-0.9到-0.1
    sevseg.setNumber(i, 1); //第二个参数表示小数点位置,省略则表示无小数点
    for (int j = 0; j < 32000; j++) {
      sevseg.refreshDisplay();
    }
  }
  for (int i = 0; i <= 20; i++) {
    if (isprime(i)) {
      for (int k = 0; k < 3; k++) {
        sevseg.setNumber(i);
        for (int j = 0; j < 32000; j++) {
          sevseg.refreshDisplay();
        }
        sevseg.blank();
        for (int j = 0; j < 32000; j++) {
          sevseg.refreshDisplay();
        }
      }
    }
    else {
      sevseg.setNumber(i);
      for ( int j = 0; j < 32000; j++) {
        sevseg.refreshDisplay();
      }
    }
  }
  sevseg.refreshDisplay();
}

bool isprime(int n) {
  int prime[] = {2, 3, 5, 7, 11, 13, 17, 19};
  bool a = false;
  for (int i = 0; i < 8; i++) {
    if (prime[i] == n) {
      a = true;
      break;
    }
  }
  return a;
}
GND5VSDASCLSQWRTCDS1307+