#include "flprogUtilites.h"
bool _gen2I = 0;
bool _gen2O = 0;
unsigned long _gen2P = 0UL;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
bool _gen1I = 0;
bool _gen1O = 0;
unsigned long _gen1P = 0UL;
bool _count1I = 0;
int _count1_Value = 0;
bool _bounseInputD14S = 0;
bool _bounseInputD14O = 0;
unsigned long _bounseInputD14P = 0UL;
int _sido1TB = 0;
String _sido1TSN;
bool _sido1a1 = 0;
bool _sido1b1 = 0;
bool _sido1c1 = 0;
bool _sido1d1 = 0;
bool _sido1e1 = 0;
bool _sido1f1 = 0;
bool _sido1g1 = 0;
bool _sido1a2 = 0;
bool _sido1b2 = 0;
bool _sido1c2 = 0;
bool _sido1d2 = 0;
bool _sido1e2 = 0;
bool _sido1f2 = 0;
bool _sido1g2 = 0;
void setup()
{
pinMode(14, INPUT);
pinMode(13, OUTPUT);
digitalWrite(13, 1);
pinMode(12, OUTPUT);
digitalWrite(12, 1);
pinMode(11, OUTPUT);
digitalWrite(11, 1);
pinMode(10, OUTPUT);
digitalWrite(10, 1);
pinMode(9, OUTPUT);
digitalWrite(9, 1);
pinMode(8, OUTPUT);
digitalWrite(8, 1);
pinMode(7, OUTPUT);
digitalWrite(7, 1);
pinMode(6, OUTPUT);
digitalWrite(6, 1);
pinMode(5, OUTPUT);
digitalWrite(5, 0);
pinMode(4, OUTPUT);
digitalWrite(4, 1);
pinMode(3, OUTPUT);
digitalWrite(3, 1);
pinMode(2, OUTPUT);
digitalWrite(2, 1);
pinMode(1, OUTPUT);
digitalWrite(1, 1);
pinMode(0, OUTPUT);
digitalWrite(0, 0);
_bounseInputD14O = digitalRead(14);
}
void loop()
{
bool _bounceInputTmpD14 = (digitalRead (14));
if (_bounseInputD14S)
{
if (millis() >= (_bounseInputD14P + 40))
{
_bounseInputD14O= _bounceInputTmpD14;
_bounseInputD14S=0;
}
}
else
{
if (_bounceInputTmpD14 != _bounseInputD14O)
{
_bounseInputD14S=1;
_bounseInputD14P = millis();
}
}
//Плата:1
if(_bounseInputD14O)
{
_tim1O = 1;
_tim1I = 1;
}
else
{
if(_tim1I)
{
_tim1I = 0;
_tim1P = millis();
}
else
{
if (_tim1O)
{
if (flprog::isTimer(_tim1P, 1000)) _tim1O = 0;
}
}
}
if (_tim1O)
{
if (! _gen2I)
{
_gen2I = 1;
_gen2O = 1;
_gen2P = millis();
}
}
else
{
_gen2I = 0 ;
_gen2O= 0;
}
if (_gen2I && _gen2O) _gen2O = !(flprog::isTimer(_gen2P , 10));
if (_bounseInputD14O)
{
if (! _gen1I)
{
_gen1I = 1;
_gen1O = 1;
_gen1P = millis();
}
}
else
{
_gen1I = 0 ;
_gen1O= 0;
}
if (_gen1I)
{
if (flprog::isTimer (_gen1P , 10))
{
_gen1P = millis();
_gen1O = ! _gen1O;
}
}
if (_gen2O)
{
_count1_Value = 0;
}
else
{
if (_gen1O)
{
if (! _count1I)
{
_count1I = 1;
_count1_Value = _count1_Value + 1;
}
}
else
{
_count1I = 0;
}
}
_sido1TSN = String (_count1_Value);
_sido1TB = _IntToSevenSegment(_charFromStringForIndex(_sido1TSN,1));
_sido1a2 = ! bitRead(_sido1TB, 0);
_sido1b2 = ! bitRead(_sido1TB, 1);
_sido1c2 = ! bitRead(_sido1TB, 2);
_sido1d2 = ! bitRead(_sido1TB, 3);
_sido1e2 = ! bitRead(_sido1TB, 4);
_sido1f2 = ! bitRead(_sido1TB, 5);
_sido1g2 = ! bitRead(_sido1TB, 6);
_sido1TB = _IntToSevenSegment(_charFromStringForIndex(_sido1TSN,2));
_sido1a1 = ! bitRead(_sido1TB, 0);
_sido1b1 = ! bitRead(_sido1TB, 1);
_sido1c1 = ! bitRead(_sido1TB, 2);
_sido1d1 = ! bitRead(_sido1TB, 3);
_sido1e1 = ! bitRead(_sido1TB, 4);
_sido1f1 = ! bitRead(_sido1TB, 5);
_sido1g1 = ! bitRead(_sido1TB, 6);
digitalWrite(0, _sido1g2);
digitalWrite(1, _sido1f2);
digitalWrite(2, _sido1e2);
digitalWrite(3, _sido1d2);
digitalWrite(4, _sido1c2);
digitalWrite(5, _sido1b2);
digitalWrite(6, _sido1a2);
digitalWrite(7, _sido1g1);
digitalWrite(8, _sido1f1);
digitalWrite(9, _sido1e1);
digitalWrite(10, _sido1d1);
digitalWrite(11, _sido1c1);
digitalWrite(12, _sido1b1);
digitalWrite(13, _sido1a1);
}
byte _IntToSevenSegment(int value)
{
if (value==48)
{
return 63;
}
if (value==49)
{
return 6;
}
if (value==50)
{
return 91;
}
if (value==51)
{
return 79;
}
if (value==52)
{
return 102;
}
if (value==53)
{
return 109;
}
if (value==54)
{
return 125;
}
if (value==55)
{
return 7;
}
if (value==56)
{
return 127;
}
if (value==57)
{
return 111;
}
if (value==45)
{
return 64;
}
if (value==65)
{
return 119;
}
if (value==67)
{
return 57;
}
if (value==99)
{
return 88;
}
if (value==100)
{
return 94;
}
if (value==69)
{
return 121;
}
if (value==70)
{
return 113;
}
if (value==72)
{
return 118;
}
if (value==104)
{
return 116;
}
if (value==76)
{
return 56;
}
if (value==79)
{
return 63;
}
if (value==111)
{
return 92;
}
if (value==80)
{
return 115;
}
if (value==114)
{
return 80;
}
if (value==83)
{
return 109;
}
if (value==116)
{
return 120;
}
if (value==85)
{
return 62;
}
if (value==117)
{
return 28;
}
if (value==110)
{
return 84;
}
return 0;
}
int _charFromStringForIndex(String val, int idx)
{
int lengt=val.length();
if(lengt < idx) return 0;
return val.charAt(lengt-idx);
}