Прошу помощи в переделки скетча! Нужно изменить один из каналов, чтобы он мог управлять перемнкой AC, то есть добавить обнаружение нуля. Не пойму как это сделать! в программировании я новичок, но очень хочется разобраться, поэтому и прошу помощи! вот код:
C++:
#include <TM1637.h>
#include <EEPROM.h>
#include <DMXSerial.h>
[SPOILER="Код диммера"][/SPOILER]
int ListDisp_0_123860296_1;
int ListDisp_123_123860296_1;
bool Point_123860296_1;
int Brightness_123860296_1;
TM1637 tm1637_123860296_1(4 , 2);
bool _Disp_123860296_1;
int _Disp1_123860296_1;
int _a_22705871_1;
byte adr_0_22705871_1;
byte adr_1_22705871_1;
byte adr_2_22705871_1;
byte adr_3_22705871_1;
byte adr_4_22705871_1;
byte adr_5_22705871_1;
byte adr_6_22705871_1;
int ListDisp_0_123860296_3;
int ListDisp_123_123860296_3;
bool Point_123860296_3;
int Brightness_123860296_3;
TM1637 tm1637_123860296_3(4 , 2);
bool _Disp_123860296_3;
int _Disp1_123860296_3;
const byte _menuParametrsArray[] PROGMEM = {1, 3, 1, 0, 0, 0, 2, 1, 1, 4, 1, 0};
int _menuValueArray_int[1];
const int _menuConstantValuesArray_int[] PROGMEM = {1, 512};
const char _flprogMenuNameString1[] PROGMEM = "Adres";
const char* const _flprogMenuStringsArray[] PROGMEM = { _flprogMenuNameString1};
struct _menuItemStricture {
int startInArrayIndex;
};
struct _menuMainStricture {
byte startIndex;
byte stopIndex;
bool isSwitchMenuAroundRing;
_menuItemStricture currentItem;
};
_menuItemStricture _MenuItems[1];
_menuMainStricture _MainMenus[1];
int _gtv1;
bool _gtv2;
bool _gtv4;
int _gtv3 = 0;
int _gtv5 = 0;
int _gtv6 = 0;
int _gtv7 = 0;
int _gtv8 = 0;
int _gtv9 = 0;
bool _gtv10;
int _gtv11 = 0;
int _gtv12;
bool _gtv13;
int _gtv14;
bool _count4I = 0;
int _count4_Value = 0;
bool _count4MaxLO = 0;
int _swi7;
int _swi6;
int _swi1;
bool _bounseInputD8S = 0;
bool _bounseInputD8O = 0;
unsigned long _bounseInputD8P = 0UL;
int _swi5;
bool _gen4I = 0;
bool _gen4O = 0;
unsigned long _gen4P = 0UL;
bool _tim3I = 0;
bool _tim3O = 0;
unsigned long _tim3P = 0UL;
bool _count1I = 0;
int _count1_Value = 0;
bool _count1MaxLO = 0;
int _swi4;
bool _bounseInputD7S = 0;
bool _bounseInputD7O = 0;
unsigned long _bounseInputD7P = 0UL;
int _swi12;
int _swi2;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
bool _trgr1 = 0;
int _swi9;
bool _gen5I = 0;
bool _gen5O = 0;
unsigned long _gen5P = 0UL;
bool _count3I = 0;
int _count3_Value = 0;
bool _count3MaxLO = 0;
bool _count3MinLO = 0;
int _dms1Q0 = 0;
int _dms1Q1 = 0;
int _dms1Q2 = 0;
int _dms1Q3 = 0;
int _dms1Q4 = 0;
int _dms1Q5 = 0;
int _dms1Q6 = 0;
int _dms1Q7 = 0;
bool _gen3I = 0;
bool _gen3O = 0;
unsigned long _gen3P = 0UL;
int _swi11;
int _swi8;
int _swi3;
bool _tim4I = 0;
bool _tim4O = 0;
unsigned long _tim4P = 0UL;
int _swi10;
String _MenuBlock_268392632_MNO;
String _MenuBlock_268392632_VNO;
bool _MenuBlock_268392632_OEIS = 0;
bool _MenuBlock_268392632_OVUIS = 0;
bool _MenuBlock_268392632_OVDIS = 0;
unsigned long _MenuBlock_268392632_VUDST = 0UL;
unsigned long _MenuBlock_268392632_VUDSPT = 0UL;
byte _MenuBlock_268392632_VUDSM = 0;
int _MenuBlock_268392632_VUDPT = 0;
bool _MenuBlock_268392632_AMMO = 0;
bool _trgt2 = 0;
bool _trgt2I = 0;
bool _gen2I = 0;
bool _gen2O = 0;
unsigned long _gen2P = 0UL;
void setup()
{
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
pinMode(15, OUTPUT);
digitalWrite(15, 0);
if(((readByteFromEEPROM(0, 0, 0x0))) != 77) {
(updateByteToEEPROM(0, 0, 0x0, (77)));
(updateIntegerToEEPROM(1, 0, 0x0, (1)));
}
_bounseInputD7O = digitalRead(7);
_bounseInputD8O = digitalRead(8);
tm1637_123860296_1.set();
tm1637_123860296_1.init();
{
DMXSerial.init(DMXReceiver);
}
tm1637_123860296_3.set();
tm1637_123860296_3.init();
_MenuItems[0].startInArrayIndex = 0;
_MainMenus[0].startIndex = 1;
_MainMenus[0].isSwitchMenuAroundRing = 0;
_MainMenus[0].stopIndex = 1;
_MainMenus[0].currentItem = _MenuItems[0];
_menuValueArray_int[0] = (readIntegerFromEEPROM(1, 0, 0x0));
}
void loop()
{
bool _tempVariable_bool;
byte _tempVariable_byte;
bool _bounceInputTmpD7 = (digitalRead (7));
if (_bounseInputD7S)
{
if (millis() >= (_bounseInputD7P + 40))
{_bounseInputD7O= _bounceInputTmpD7; _bounseInputD7S=0;}
}
else
{
if (_bounceInputTmpD7 != _bounseInputD7O )
{_bounseInputD7S=1; _bounseInputD7P = millis();}
}
bool _bounceInputTmpD8 = (digitalRead (8));
if (_bounseInputD8S)
{
if (millis() >= (_bounseInputD8P + 40))
{_bounseInputD8O= _bounceInputTmpD8; _bounseInputD8S=0;}
}
else
{
if (_bounceInputTmpD8 != _bounseInputD8O )
{_bounseInputD8S=1; _bounseInputD8P = millis();}
}
//Плата:1
//Наименование:Назначение адреса DMX
if (( (!(_bounseInputD7O)) && (!(_bounseInputD8O)) ))
{ if (_tim3I) { if (_isTimer(_tim3P, 3000)) {_tim3O = 1;}} else {_tim3I =1; _tim3P = millis();}} else {_tim3O = 0; _tim3I = 0;}
if (_gtv2) { if (! _gen3I) { _gen3I = 1; _gen3O = 1; _gen3P = millis(); } } else { _gen3I = 0 ; _gen3O= 0;}
if (_gen3I) { if ( _isTimer ( _gen3P , 500 )) { _gen3P = millis(); _gen3O = ! _gen3O;}}
if (0){
_count1_Value = 1;
} else {
if (( (!(_bounseInputD7O)) || (!(_bounseInputD8O)) )){_count1_Value = 0;} else {
if (_gen3O){
if ( ! _count1I) {
_count1I = 1;
_count1_Value = _count1_Value + 1;
}} else {
_count1I = 0;}
}
}
_count1MaxLO = _count1_Value >= 10;
if(_count1MaxLO) _trgr1 = 0;
if(_tim3O) _trgr1 = 1;
if (( (_gtv4) || (_trgr1) )) {
_tempVariable_bool = 1;
if ( ! _MenuBlock_268392632_OEIS ) {_MenuBlock_268392632_OEIS = 1;
}
_tempVariable_byte = pgm_read_byte(&_menuParametrsArray[((_MainMenus[0].currentItem ).startInArrayIndex)+10]);
_MenuBlock_268392632_MNO = _readStringFromProgmem ((char*)pgm_read_word(&(_flprogMenuStringsArray[_tempVariable_byte - 1])));
_MenuBlock_268392632_VNO = _menuOutputValueString (0);
_MenuBlock_268392632_AMMO = (pgm_read_byte(&_menuParametrsArray[((_MainMenus[0].currentItem ).startInArrayIndex)+5]) ) == 0;
} else {
_tempVariable_bool = 0;
if (_MenuBlock_268392632_OEIS){
_MenuBlock_268392632_OEIS = 0;
_menuUpdateToEEpromItems();
}
_MenuBlock_268392632_AMMO = 0;
_MenuBlock_268392632_MNO = "";
_MenuBlock_268392632_VNO = "";
}
if(!(_bounseInputD7O)) { if ( ! _MenuBlock_268392632_OVUIS) {_MenuBlock_268392632_OVUIS = 1; if (_tempVariable_bool){ _valueUpEvents(0); _MenuBlock_268392632_VUDST = millis();} }if (_tempVariable_bool){
if (_MenuBlock_268392632_VUDSM == 0) { if (_isTimer(_MenuBlock_268392632_VUDST , 2000 )) {_MenuBlock_268392632_VUDSM = 1; _MenuBlock_268392632_VUDSPT = millis(); _MenuBlock_268392632_VUDPT = 300;}} else { if (_MenuBlock_268392632_VUDSM == 1) { if (_isTimer(_MenuBlock_268392632_VUDST , 4000 )) {_MenuBlock_268392632_VUDSM = 2;_MenuBlock_268392632_VUDPT = 50; } } if (_isTimer(_MenuBlock_268392632_VUDSPT , _MenuBlock_268392632_VUDPT )) { _valueUpEvents(0); _MenuBlock_268392632_VUDSPT = millis();} }
}} else {_MenuBlock_268392632_OVUIS = 0; if( ! ( !(_bounseInputD8O))){_MenuBlock_268392632_VUDSM = 0; }}
if(!(_bounseInputD8O)) { if ( ! _MenuBlock_268392632_OVDIS) {_MenuBlock_268392632_OVDIS = 1; if (_tempVariable_bool){ _valueDownEvents(0); _MenuBlock_268392632_VUDST = millis();}} if (_tempVariable_bool){
if (_MenuBlock_268392632_VUDSM == 0) { if (_isTimer(_MenuBlock_268392632_VUDST , 2000 )) {_MenuBlock_268392632_VUDSM = 1; _MenuBlock_268392632_VUDSPT = millis(); _MenuBlock_268392632_VUDPT = 300;}} else { if (_MenuBlock_268392632_VUDSM == 1) { if (_isTimer(_MenuBlock_268392632_VUDST , 4000 )) {_MenuBlock_268392632_VUDSM = 2;_MenuBlock_268392632_VUDPT = 50; } } if (_isTimer(_MenuBlock_268392632_VUDSPT , _MenuBlock_268392632_VUDPT )) { _valueDownEvents(0); _MenuBlock_268392632_VUDSPT = millis();} }
}} else {_MenuBlock_268392632_OVDIS = 0; if( ! ( !(_bounseInputD7O))){_MenuBlock_268392632_VUDSM = 0; }}
_gtv2 = _MenuBlock_268392632_AMMO;
//Плата:2
//Наименование:Адрес DMX
_gtv1 = (_menuValueArray_int[0]);
_gtv4 = ((_menuValueArray_int[0])) == (512);
//Плата:3
//Наименование:Отображение адреса DMX
if (_gtv4 == 0) {
if (_gtv2) { if (! _gen5I) { _gen5I = 1; _gen5O = 1; _gen5P = millis(); } } else { _gen5I = 0 ; _gen5O= 0;}
if (_gen5I) { if ( _isTimer ( _gen5P , 500 )) { _gen5P = millis(); _gen5O = ! _gen5O;}}
if(_gen5O)
{_swi9=16;}
else
{_swi9=10;}
if(_gtv2)
{_swi12=_swi9;}
else
{_swi12=10;}
if(( (!(_bounseInputD7O)) || (!(_bounseInputD8O)) )) {_tim4O = 1; _tim4I = 1;} else { if(_tim4I) {_tim4I = 0; _tim4P = millis();} else { if (_tim4O) {if ( _isTimer(_tim4P, 30000)) _tim4O = 0;}}}
if(_tim4O)
{_swi11=7;}
else
{_swi11=0;}
ListDisp_0_123860296_1 = _swi12;
ListDisp_123_123860296_1 = _gtv1;
Point_123860296_1 = 0;
Brightness_123860296_1 = _swi11;
tm1637_123860296_1.display(0,ListDisp_0_123860296_1);
tm1637_123860296_1.display(1,ListDisp_123_123860296_1 / 100);
_Disp_123860296_1 = (ListDisp_123_123860296_1) > (99);
if (_Disp_123860296_1)
{_Disp1_123860296_1 = ListDisp_123_123860296_1 / 10 % 10;}
else
{_Disp1_123860296_1 =ListDisp_123_123860296_1 / 10;}
tm1637_123860296_1.display(2,_Disp1_123860296_1);
// tm1637_123860296_1.display(2,ListDisp_123_123860296_1 / 10);
tm1637_123860296_1.display(3,ListDisp_123_123860296_1 % 10);
if ( Point_123860296_1 ) tm1637_123860296_1.point(HIGH); else tm1637_123860296_1.point(LOW);
tm1637_123860296_1.set(Brightness_123860296_1);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
}
//Плата:4
//Наименование:DMX - Выход
if (_gtv4 == 0) {
_a_22705871_1 = _gtv1;
{
int adr=_a_22705871_1;
adr_0_22705871_1=DMXSerial.read(adr);
adr_1_22705871_1=DMXSerial.read(adr+1);
adr_2_22705871_1=DMXSerial.read(adr+2);
adr_3_22705871_1=DMXSerial.read(adr+3);
adr_4_22705871_1=DMXSerial.read(adr+4);
adr_5_22705871_1=DMXSerial.read(adr+5);
adr_6_22705871_1=DMXSerial.read(adr+6);
}
_gtv14 = adr_6_22705871_1;
_gtv9 = adr_5_22705871_1;
_gtv8 = adr_4_22705871_1;
_gtv7 = adr_3_22705871_1;
_gtv6 = adr_2_22705871_1;
_gtv5 = adr_1_22705871_1;
_gtv3 = adr_0_22705871_1;
}
//Плата:5
//Наименование:Тест выхад
if (_gtv4 == 1) {
if (1) { if (! _gen4I) { _gen4I = 1; _gen4O = 1; _gen4P = millis(); } } else { _gen4I = 0 ; _gen4O= 0;}
if (_gen4I) { if ( _isTimer ( _gen4P , 20 )) { _gen4P = millis(); _gen4O = ! _gen4O;}}
bool _tmp2 = _gtv10;
if (_tmp2) { if (! _trgt2I) _trgt2 = ! _trgt2; }
_trgt2I = _tmp2;
if (_gtv13){
_count4_Value = 0;
} else {
if (_trgt2){
if ( ! _count4I) {
_count4I = 1;
_count4_Value = _count4_Value + 1;
}} else {
_count4I = 0;}
}
_count4MaxLO = _count4_Value >= 8;
_gtv12 = _count4_Value;
_gtv13 = _count4MaxLO;
if (0){
_count3_Value = 0;
} else {
if (_gen4O){
if ( ! _count3I) {
_count3I = 1;
if (_trgt2){_count3_Value = _count3_Value + 1;} else{ _count3_Value = _count3_Value - 1;}
}} else {
_count3I = 0;}
}
_count3MaxLO = _count3_Value >= 255;
_count3MinLO = _count3_Value <= 0;
if (1)
{ if (_tim1I) { if (_isTimer(_tim1P, 200)) {_tim1O = 1;}} else {_tim1I =1; _tim1P = millis();}} else {_tim1O = 0; _tim1I = 0;}
if(_tim1O)
{_swi5=_count3_Value;}
else
{_swi5=0;}
_gtv11 = _swi5;
_gtv10 = ( (_count3MaxLO) || (_count3MinLO) );
if (1) { if (! _gen2I) { _gen2I = 1; _gen2O = 1; _gen2P = millis(); } } else { _gen2I = 0 ; _gen2O= 0;}
if (_gen2I) { if ( _isTimer ( _gen2P , 200 )) { _gen2P = millis(); _gen2O = ! _gen2O;}}
if(_gen2O)
{_swi3=16;}
else
{_swi3=_gtv12;}
ListDisp_0_123860296_3 = _swi3;
ListDisp_123_123860296_3 = (map((_gtv11), (0), (255), (0), (100)));
Point_123860296_3 = 0;
Brightness_123860296_3 = 6;
tm1637_123860296_3.display(0,ListDisp_0_123860296_3);
tm1637_123860296_3.display(1,ListDisp_123_123860296_3 / 100);
_Disp_123860296_3 = (ListDisp_123_123860296_3) > (99);
if (_Disp_123860296_3)
{_Disp1_123860296_3 = ListDisp_123_123860296_3 / 10 % 10;}
else
{_Disp1_123860296_3 =ListDisp_123_123860296_3 / 10;}
tm1637_123860296_3.display(2,_Disp1_123860296_3);
// tm1637_123860296_3.display(2,ListDisp_123_123860296_3 / 10);
tm1637_123860296_3.display(3,ListDisp_123_123860296_3 % 10);
if ( Point_123860296_3 ) tm1637_123860296_3.point(HIGH); else tm1637_123860296_3.point(LOW);
tm1637_123860296_3.set(Brightness_123860296_3);//BRIGHT_TYPICAL = 2,BRIGHT_DARKEST = 0,BRIGHTEST = 7;
if((_gtv12 == 0)){_dms1Q0 = _gtv11;}else {_dms1Q0 = 0;}
if((_gtv12 == 1)){_dms1Q1 = _gtv11;}else {_dms1Q1 = 0;}
if((_gtv12 == 2)){_dms1Q2 = _gtv11;}else {_dms1Q2 = 0;}
if((_gtv12 == 3)){_dms1Q3 = _gtv11;}else {_dms1Q3 = 0;}
if((_gtv12 == 4)){_dms1Q4 = _gtv11;}else {_dms1Q4 = 0;}
if((_gtv12 == 5)){_dms1Q5 = _gtv11;}else {_dms1Q5 = 0;}
if((_gtv12 == 6)){_dms1Q6 = _gtv11;}else {_dms1Q6 = 0;}
if((_gtv12 == 7)){_dms1Q7 = _gtv11;}else {_dms1Q7 = 0;}
if(!((_gtv12) == (0)))
{_swi6=_dms1Q7;}
else
{_swi6=_dms1Q0;}
_gtv14 = _swi6;
if(!((_gtv12) == (0)))
{_swi1=_dms1Q6;}
else
{_swi1=_dms1Q0;}
_gtv9 = _swi1;
if(!((_gtv12) == (0)))
{_swi2=_dms1Q5;}
else
{_swi2=_dms1Q0;}
_gtv8 = _swi2;
if(!((_gtv12) == (0)))
{_swi4=_dms1Q4;}
else
{_swi4=_dms1Q0;}
_gtv7 = _swi4;
if(!((_gtv12) == (0)))
{_swi10=_dms1Q3;}
else
{_swi10=_dms1Q0;}
_gtv6 = _swi10;
if(!((_gtv12) == (0)))
{_swi8=_dms1Q2;}
else
{_swi8=_dms1Q0;}
_gtv5 = _swi8;
if(!((_gtv12) == (0)))
{_swi7=_dms1Q1;}
else
{_swi7=_dms1Q0;}
_gtv3 = _swi7;
}
//Плата:6
//Наименование:Выход
analogWrite(3, _gtv3);
analogWrite(5, _gtv5);
analogWrite(6, _gtv6);
analogWrite(9, _gtv7);
analogWrite(10, _gtv8);
analogWrite(11, _gtv9);
digitalWrite(15, (_gtv14) >= (127));
}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
String _readStringFromProgmem (char *string)
{
String result = String("");
while (pgm_read_byte(string)!='\0')
{
result=result+ char(pgm_read_byte(string));
string++;
}
return result;
}
void _valueUpEvents (byte menuIndex)
{
byte valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]);
byte itemType = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]);
byte indexMax = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+6]);
byte indexStep = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+8]);
if (itemType == 3) {if (! indexMax == 0) { if ( ! (int(pgm_read_word(&_menuConstantValuesArray_int[indexMax -1])) > int(_menuValueArray_int[valIndex -1]))) {return;} }
_menuValueArray_int[valIndex -1] = _menuValueArray_int[valIndex -1] + (pgm_read_word(&_menuConstantValuesArray_int[indexStep -1])); }
}
void _valueDownEvents (byte menuIndex)
{
byte valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]);
byte itemType = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]);
byte indexMin = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+7]);
byte indexStep = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+8]);
if (itemType == 3) { if (! indexMin == 0) { if ( ! ((int(pgm_read_word(&_menuConstantValuesArray_int[indexMin - 1]))) < int(_menuValueArray_int[valIndex - 1]))) {return;}}
_menuValueArray_int[valIndex - 1] = _menuValueArray_int[valIndex - 1] - (pgm_read_word(&_menuConstantValuesArray_int[indexStep - 1])); }
}
String _menuOutputValueString (byte menuIndex)
{
byte itemType = pgm_read_byte(&_menuParametrsArray[ (((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+1]);
byte valIndex = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+2]);
byte indexMin = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+7]);
byte indexMax = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+6]);
if( valIndex == 0){ return "";}
byte convFormat = pgm_read_byte(&_menuParametrsArray[(((_MainMenus[menuIndex]).currentItem).startInArrayIndex)+9]);
if(itemType == 3) { return _convertNamber(itemType, convFormat, valIndex, indexMax, indexMin);}
return "";
}
void _menuUpdateToEEpromItems()
{
(updateIntegerToEEPROM(1, 0, 0x0, ((_menuValueArray_int[0]))));
}
String _convertNamber(byte itemType, byte convFormat, byte valIndex, byte indexMax, byte indexMin)
{
if (itemType== 3) {
if (convFormat == 4) { return String((_menuValueArray_int[valIndex - 1 ]),DEC);}
if (convFormat == 5) { return String((_menuValueArray_int[valIndex - 1]),HEX);}
if (convFormat == 6) { return String((_menuValueArray_int[valIndex -1]),BIN);}
}
}
byte readByteFromEEPROM(int addres, byte bitAddres, byte chipAddres)
{
return EEPROM.read(addres);
}
void updateByteToEEPROM(int addres, byte bitAddres, byte chipAddres, byte value)
{
return EEPROM.update(addres, value);
}
int readIntegerFromEEPROM(int addres, byte bitAddres, byte chipAddres)
{
byte hight = readByteFromEEPROM( addres, bitAddres, chipAddres);
byte low = readByteFromEEPROM( (addres+1), bitAddres, chipAddres);
return word(hight, low);
}
void updateIntegerToEEPROM(int addres, byte bitAddres, byte chipAddres, int value)
{
updateByteToEEPROM( addres, bitAddres, chipAddres, highByte(value));
updateByteToEEPROM( (addres+1), bitAddres, chipAddres, lowByte(value));
}
Изменено: