Народ доброго дня суток, прошу помощи кто поможет разобраться с EEprom библиотекой. мне нужно после нажатия определенного пункта меню записоватькод Ibuton ключа в eeprom, а потом выводить эти ключи на lcd 1602, определенный ключ в определенном месте..
да я не могу допиреть как записать этих восемь байт туда, и потом определенный ключь оттуда вызвать, если ван не сложно напишите как это можно сделать с подробными коментами.
Судя по вашей регистрации, вы уже должны вполне нормально программить. Берете ваш массив с ключом, и for-ом записываете с 0 по 7 ячейки, следующий с 8-й и т.д. Читать также.
Ну а пишите уж сами.
кто поможет разобраться с EEprom библиотекой. мне нужно после нажатия определенного пункта меню записоватькод Ibuton ключа в eeprom, а потом выводить эти ключи на lcd 1602, определенный ключ в определенном месте..
хотелка подразумевает :
- меню
- управление 1602-ым
- запись чтение eeprom
- и др.
начните с изучения чего-нить для начала , в готовый код вашей хотелки будете вникать месяца три...
....если его кто-нить напишет ( Ищу исполнителя )
времени пока особо нету этим заниматься вот поэтому пока не очень, ну первый чип я допустим я запишу, а второй как.ю по какому адрессу он запишится в память, плиз если можно подробней напишите код, и коменты по каждому пункту, спасибо за помощь
времени пока особо нету этим заниматься вот поэтому пока не очень, ну первый чип я допустим я запишу, а второй как.ю по какому адрессу он запишится в память, плиз если можно подробней напишите код, и коменты по каждому пункту, спасибо за помощь
вы действительно думаете , что здесь две категории форумчан ?
- времени не очень , кодю не очень - напишите поподробнее код
- времени шквал , кодю нормально - скукота ! не кому чёнить написать типа кода
Вас 55 сообщение ни на какие мысли не наводит? Или отсчитать на пальцах 8 значений включая 0 так сложно? (0, 1, 2, 3, 4, 5, 6, 7) - первый ключ (8, 9, 10, 11, 12, 13, 14, 15) - второй ключ и т.д.
Читал я это но там написанно про один байт, а мне надо 8, потом еще 8, вот это я не могу понять извиняюсь за свои вопросы, и спасибо за понимание и помощь
Читал я это но там написанно про один байт, а мне надо 8, потом еще 8, вот это я не могу понять извиняюсь за свои вопросы, и спасибо за понимание и помощь
в метро поезд состоит из 8-ми байтВагонов - вот и сажайте ваши КЛЮЧИ в поезд повагонно-побайтно :)-
Читал я это но там написанно про один байт, а мне надо 8, потом еще 8, вот это я не могу понять извиняюсь за свои вопросы, и спасибо за понимание и помощь
в метро поезд состоит из 8-ми байтВагонов - вот и сажайте ваши КЛЮЧИ в поезд повагонно-побайтно :)-
можно словами рассказать.... а там уж два шага до кода....
...КЛЮЧ - это byte массив[8] - нет ?
Снова на пальцах, берем байт из массива из 0 ячейки, записываем в 0 ячейку епром, берем из 1 ячейки массива, записываем в 1 ячейку епром и так восемь раз. Первый ключ сохранен. Удобно делать при помощи цикла For
Для последующих ключей смещаем адресное поле EEPROM на длину ключа.
я понимаю что вам мои вопросы кажутся тупыми, но не могу понять
64 ключа по 8 байт - ещё рано...
нет , не кажутся... я сам почти такой...
напиши код :
ввод ключа из сериала в ОЗУ ( в массив )
по команде из сериала запись этого ключа в eeprom по команде из сериала чтение этого ключа в ОЗУ ( в массив )
вывод ключа из ОЗУ ( из массива ) в сериал-монитор
я бы так начал изучать этот вопрос , а потом усложнять и объединять со всем остальным....
для указания МК какой байт в данный момент взять из массива
...даже маленькие фрагменты кода не оформляй текстово , а посредством вставки кода
как говорить про строки если они не нумерованы ?
ещё над чем подумать.... for(inti=0; i < 8; i++)
i изменяется от 0 до 7 - хватит и трёх двоичных разрядов для кодировки , но ближайший пользуемый тип данных byte , 8 разрядов
здесь int и все старшие типы - трата памяти :(
поэтому лучше for( bytei=0; i < 8; i++ )
это тоже не прокатит EEPROM.write( i , key[ i ] )
ведь заявлено byte Key[ 8 ]
правильно EEPROM.write( i , Key[ i ] )
for (byte I = 8; I < 16; I++) - это уже ближе к посту #77 :)
и так и будешь прописывать все 64 возможных ключа ?
а если оставить for ( byte i = 0; i < 8; i++ ) но добавить EEPROM.write( i * numberKey , Key[ i ] ) ...где numberKey - это номер ключа , byte numberKey = 0...63
Народ доброго дня суток, прошу помощи кто поможет разобраться с EEprom библиотекой. мне нужно после нажатия определенного пункта меню записоватькод Ibuton ключа в eeprom, а потом выводить эти ключи на lcd 1602, определенный ключ в определенном месте..
заранее всем спасибо за помощь)))
И что вам мешает это сделать? write, read.
да я не могу допиреть как записать этих восемь байт туда, и потом определенный ключь оттуда вызвать, если ван не сложно напишите как это можно сделать с подробными коментами.
япросто пока не очень дружу с программированием.
Судя по вашей регистрации, вы уже должны вполне нормально программить. Берете ваш массив с ключом, и for-ом записываете с 0 по 7 ячейки, следующий с 8-й и т.д. Читать также.
Ну а пишите уж сами.
кто поможет разобраться с EEprom библиотекой. мне нужно после нажатия определенного пункта меню записоватькод Ibuton ключа в eeprom, а потом выводить эти ключи на lcd 1602, определенный ключ в определенном месте..
хотелка подразумевает :
- меню
- управление 1602-ым
- запись чтение eeprom
- и др.
начните с изучения чего-нить для начала , в готовый код вашей хотелки будете вникать месяца три...
....если его кто-нить напишет ( Ищу исполнителя )
времени пока особо нету этим заниматься вот поэтому пока не очень, ну первый чип я допустим я запишу, а второй как.ю по какому адрессу он запишится в память, плиз если можно подробней напишите код, и коменты по каждому пункту, спасибо за помощь
Меню я уже составил хотя еще не до конца, я просто попросил помощи с записью ibuton ключей в eeprom, ну и считывание их от туда с выводом на экран
времени пока особо нету этим заниматься вот поэтому пока не очень, ну первый чип я допустим я запишу, а второй как.ю по какому адрессу он запишится в память, плиз если можно подробней напишите код, и коменты по каждому пункту, спасибо за помощь
вы действительно думаете , что здесь две категории форумчан ?
- времени не очень , кодю не очень - напишите поподробнее код
- времени шквал , кодю нормально - скукота ! не кому чёнить написать типа кода
времени пока особо нету этим заниматься вот поэтому пока не очень.
Обычно, когда мало времени, имеется достаточно денег: Раздел "Ищу исполнителя"
я не прошу писать мне код всей моей программы, я просто ппросил что б мне разъяснили на пальцах как это делается что б я понял, вот и все что я хочу
niki43 Думаю вопрос поставить так, какая информация была прочитана перед тем как написать сюда свой вопрос?
Вас 55 сообщение ни на какие мысли не наводит? Или отсчитать на пальцах 8 значений включая 0 так сложно? (0, 1, 2, 3, 4, 5, 6, 7) - первый ключ (8, 9, 10, 11, 12, 13, 14, 15) - второй ключ и т.д.
спасибо за помощь, буду пробовать
восновном пользуюсь учебниками по программированию ардуино, прошу прощения если я напрег кого то своей просьбой
EEPROM.write
EEPROM.read
Странно, через раздел "Программирование" на эту библиотеку не попасть. Но ведь "Поиск" никто не отменял.
Так мало того в IDE есть примеры работы с библиотекой.
Читал я это но там написанно про один байт, а мне надо 8, потом еще 8, вот это я не могу понять извиняюсь за свои вопросы, и спасибо за понимание и помощь
Читал я это но там написанно про один байт, а мне надо 8, потом еще 8, вот это я не могу понять извиняюсь за свои вопросы, и спасибо за понимание и помощь
в метро поезд состоит из 8-ми байтВагонов - вот и сажайте ваши КЛЮЧИ в поезд повагонно-побайтно :)-
теоретически я понимаю как это сделать, а вот кодом хоть убейне догоняю
Так пробуй что нибудь выкладывай сюда, че не понятно подскажут помогут. Помогающим важно знать, что ты сам понял.
Читал я это но там написанно про один байт, а мне надо 8, потом еще 8, вот это я не могу понять извиняюсь за свои вопросы, и спасибо за понимание и помощь
в метро поезд состоит из 8-ми байтВагонов - вот и сажайте ваши КЛЮЧИ в поезд повагонно-побайтно :)-
можно словами рассказать.... а там уж два шага до кода....
...КЛЮЧ - это byte массив[8] - нет ?
допустим я считую ibuton ключь и помещаю его сюда:
byte addr[8];
вот как отсюда его записать в епром, и оттуда его считать
#55
//Пример простого меню для Arduino //В меню используется 4 экрана //за номер отображаемого экрана отвечает переменная m uint8_t antena[8] = {//символ антены 0b10101, 0b01110, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100, 0b00100 }; #include <OneWire.h> OneWire ds(10); // на digital pin 10 #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <EEPROM.h> LiquidCrystal_I2C lcd(0x27,16,2); //инициализируем 2х строчный дисплей int m=0; // переменная для экранов меню основного int keymeny=0;//меню ключей int menyStatus=0; //статус включения кеу меню char p1=0; // переменная 1 шлейфа char p2=0; // переменная 2 шлейфа int p3=0; // переменная для примера 3 int count=0; int alarmPin1 = 0;/* 1 охранный шлейф на А0 порту. При подключенном резисторе 1.5кОм в порт приходит значение 132*/ int alarmPin2 = 1; //2 охранный шлейф на порту А1 #define nextPin 6 // кнопка вперел #define prevPin 7 // кнопка назад #define cancelPin 8 // кнопка возврата #define okPin 9 // кнопка выбора #define ledUDPin 13 // Светодиод byte addr[8]; //переменная хранения ключа byte addr1[8]; byte addr2[8]; byte allKey; // всего ключей boolean buttonnextWasUp = true; boolean buttonprevWasUp = true; boolean buttonWasCancel = true; boolean buttonWasOk = true; boolean shleifstatus1 =0; boolean shleifstatus2 =0; boolean ledEnabled = false; void setup() { Serial.begin(9600); lcd.createChar(0, antena);// создаем символ и записываем его в память LCD // Установка пинов как входов pinMode(nextPin, INPUT); pinMode(prevPin, INPUT); pinMode(cancelPin, INPUT); pinMode(okPin, INPUT); pinMode(ledUDPin, OUTPUT); lcd.init(); // инициализация LCD lcd.backlight(); // включаем подсветку lcd.createChar(0, antena);// создаем символ и записываем его в память LCD } void loop () { boolean buttonnextIsUp = digitalRead(nextPin); boolean buttonprevIsUp = digitalRead(prevPin); boolean buttonIsCancel = digitalRead(cancelPin); boolean buttonIsOk = digitalRead(okPin); ///////////////////////////////////////////////////////////////////////////// //состояние первого шлейфа int vall1 = analogRead(alarmPin1);/* помещаем значение полученное с порта А0 в переменную vall*/ if(vall1>120&&vall1<150)//Первый шлейф норма { Alaarm(1); } else// { Alaarm(2); } ///////////////////////////////////////////////////////////////////////////////////////// //состояние второго шлейфа int vall2 = analogRead(alarmPin2);/* помещаем значение полученное с порта А1 в переменную vall*/ if(vall2>120&&vall2<150)//второй шлейф норма { Alaarm(3); } else// { Alaarm(4); } /////////////////////////////////////////////////////////////////// ///////////////////////////// //Обработка нажатия кнопки меню if (buttonnextWasUp && !buttonnextIsUp) { delay(10); buttonnextIsUp = digitalRead(nextPin); if (!buttonnextIsUp) { m++; if (m>4) { m=0; } delay(100); lcd.clear(); } } //Обработка нажатия кнопки назад if (buttonprevWasUp && !buttonprevIsUp) { delay(10); buttonprevIsUp = digitalRead(prevPin); if (!buttonprevIsUp) { m--; if (m<0) { m=4; } delay(100); lcd.clear(); } } //////////////////////////////////////////////////////////////////////////////////// //Обработка нажатия кнопки меню key if (buttonnextWasUp && !buttonnextIsUp) { delay(10); buttonnextIsUp = digitalRead(nextPin); if (!buttonnextIsUp) { keymeny++; if (keymeny>10) { keymeny=1; } delay(100); lcd.clear(); } } //Обработка нажатия кнопки назад if (buttonprevWasUp && !buttonprevIsUp) { delay(10); buttonprevIsUp = digitalRead(prevPin); if (!buttonprevIsUp) { keymeny--; if (keymeny<1) { keymeny=10; } delay(100); lcd.clear(); } } ////////////////////////////////////////////////////////////////////////////// // Обработка нажатия кнопки Ок для входа меню KEY if ( menyStatus==0){ if (buttonWasOk && !buttonIsOk) { delay(10); buttonIsOk = digitalRead(okPin); if (!buttonIsOk && m==4) { menyStatus=1; keymeny=1; } } } // Обработка нажатия кнопки Ок для записи ключа else if ( menyStatus==1){ if (buttonWasOk && !buttonIsOk) { delay(10); buttonIsOk = digitalRead(okPin); if (!buttonIsOk && keymeny==1) {///////////////////////////////////////////////////////////////////// вот после нажатия этой кнопки ключь должен записаться в EEprom ////////////////////////////////////////////////////////////////////// } if (!buttonIsOk && keymeny==2) { ///////////////////////////////////////////////////////////////////// вот после нажатия этой кнопки ключь должен записаться в EEprom ////////////////////////////////////////////////////////////////////// } } } //} ///////////////////////////////////////////////////////////////////////////////////////// // Обработка нажатия кнопки Отмена if (buttonWasCancel && !buttonIsCancel) { delay(10); buttonIsCancel = digitalRead(cancelPin); if (!buttonIsCancel && menyStatus==1) { lcd.clear(); delay (100); menyStatus=0; m=4; } else if (!buttonIsCancel && menyStatus==0) { lcd.clear(); delay (100); m=0; } //delay (100); //lcd.setCursor(0, 1); //lcd.print(" "); } ////////////////////////////////////////////////////////////////////////////// //вывод меню if(menyStatus==0) { if (m==0) { lcd.setCursor(0, 0); lcd.print( "GSM" ); lcd.setCursor(13, 0); lcd.write(byte(0));// выводим свой символ записанный в память дисплея } else if (m==1) { lcd.setCursor(0, 0); lcd.print( "Shleyf N" ); lcd.setCursor(11, 0); lcd.print( "1" ); lcd.setCursor(13, 0); lcd.print( "2" ); lcd.setCursor(15, 0); lcd.print( "3" ); lcd.setCursor(0, 1); lcd.print( "Sostoyanie" ); lcd.setCursor(11, 1); lcd.print(p1); lcd.setCursor(13, 1); lcd.print(p2); lcd.setCursor(15, 1); } else if (m==2) { lcd.setCursor(0, 0); lcd.print( "Parametr-2" ); lcd.setCursor(0, 1); lcd.print( "P2 = " ); // lcd.print(); } else if (m==3) { lcd.setCursor(0, 0); lcd.print( "LED Control" ); lcd.setCursor(0, 1); lcd.print( "LED = " ); //lcd.print(); } else if (m==4) { lcd.setCursor(6, 0); lcd.print( "Key" ); } } ///////////////////////////////////////////////////////////////////////////////// //вывод KEY меню if(menyStatus==1) { if (keymeny==1) { //byte i; ///////////////////////////////////////////////////////////////////////////////// а вот сдесь в меню должен отображаться /////////////////////////////////////////////////////////////////////////////// lcd.setCursor(6, 0); lcd.print( "Key 1" ); //lcd.setCursor(0, 1); //for( i = 0; i < 8; i++) { //lcd.setCursor((7-i)*2,1); //lcd.print(EEPROM.read(i),HEX); } } else if (keymeny==2) { lcd.setCursor(6, 0); lcd.print( "Key 2" ); ///////////////////////////////////////////////////////////////////////////////// а вот сдесь в меню должен отображаться /////////////////////////////////////////////////////////////////////////////// } else if (keymeny==3) { lcd.setCursor(6, 0); lcd.print( "Key 3" ); ///////////////////////////////////////////////////////////////////////////////// а вот сдесь в меню должен отображаться /////////////////////////////////////////////////////////////////////////////// } else if (keymeny==4) { lcd.setCursor(6, 0); lcd.print( "Key 4" ); ///////////////////////////////////////////////////////////////////////////////// а вот сдесь в меню должен отображаться /////////////////////////////////////////////////////////////////////////////// } else if (keymeny==5) { lcd.setCursor(6, 0); lcd.print( "Key 5" ); ///////////////////////////////////////////////////////////////////////////////// а вот сдесь в меню должен отображаться /////////////////////////////////////////////////////////////////////////////// } else if (keymeny==6) { lcd.setCursor(6, 0); lcd.print( "Key 6" ); } else if (keymeny==7) { lcd.setCursor(6, 0); lcd.print( "Key 7" ); } else if (keymeny==8) { lcd.setCursor(6, 0); lcd.print( "Key 8" ); } else if (keymeny==9) { lcd.setCursor(6, 0); lcd.print( "Key 9" ); } else if (keymeny==10) { lcd.setCursor(6, 0); lcd.print( "Key 10" ); } } ///////////////////////////////////////////////////////////////// buttonWasCancel = buttonIsCancel; buttonWasOk = buttonIsOk; buttonnextWasUp = buttonnextIsUp; buttonprevWasUp = buttonprevIsUp; } int Alaarm(int x) //функция состояния шлейфов { if (x==1){//Первый шлейф норма shleifstatus1=1; p1='H'; } if (x==2){//Первый шлейф обрыв shleifstatus1=0; p1='X'; } if (x==3){// второй шлейф норма shleifstatus2=1; p2='H'; } if (x==4){//второй шлейф обрыв shleifstatus2=0; p2='X'; } } int Notify(int x) //функция оповещения в последователньый порт { if (x==0) { // оповещение о постановке на сигнализацию Serial.println("Oxrana"); } if (x==1) { // оповещение о открытии двери Serial.println("Alarm"); } if (x==2) { // оповещение о взломе квартиры! Serial.println("0x02"); } if (x==3) { // оповещение о выключении сигнализации Serial.println("Snjatie"); } if (x==98) { // оповещение о включении ardunio Serial.println("9x98"); } if (x==99) { // оповещение о ОШИБКЕ Serial.println("Kluch B pamjati"); } } int guardBlink (int x) //функция светового оповещения { if (x==1) { // Включение сигнализации digitalWrite(ledUDPin, HIGH); delay(2000); digitalWrite(ledUDPin, LOW); delay(2000); digitalWrite(ledUDPin, HIGH); delay(2000); digitalWrite(ledUDPin, LOW); delay(2000); digitalWrite(ledUDPin, HIGH); delay(2000); digitalWrite(ledUDPin, LOW); delay(2000); digitalWrite(ledUDPin, HIGH); } if (x==2) { // выключаем сигнализацию идиод digitalWrite(ledUDPin, HIGH); delay(300); digitalWrite(ledUDPin, LOW); delay(300); digitalWrite(ledUDPin, HIGH); delay(300); digitalWrite(ledUDPin, LOW); delay(300); digitalWrite(ledUDPin, HIGH); delay(300); digitalWrite(ledUDPin, LOW); } if (x==3) { // во время ожидания ключа при открытой двери digitalWrite(ledUDPin, HIGH); delay(200); digitalWrite(ledUDPin, LOW); delay(200); digitalWrite(ledUDPin, HIGH); delay(200); digitalWrite(ledUDPin, LOW); delay(200); digitalWrite(ledUDPin, HIGH); delay(200); digitalWrite(ledUDPin, LOW); } if (x==4) { // ошибка ключа digitalWrite(ledUDPin, HIGH); delay(100); digitalWrite(ledUDPin, LOW); delay(100); digitalWrite(ledUDPin, HIGH); delay(100); digitalWrite(ledUDPin, LOW); delay(100); digitalWrite(ledUDPin, HIGH); } } /* // ********************* проверка наличия ключа в EEPROM int prov_key() { byte i1; byte i2; int count11; for( i1 = 1; i1 <= count; i1++) {count11=0; for( i2 = 0; i2 < 8; i2++) { if(addr[i2]==EEPROM.read(i1*8+i2)) count11++; } if(count11==8) return i1; } return 0; } // ********************* добавление ключа в EEPROM void add_new_key(int nnew) { byte i1; if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.print("CRC is not valid!\n"); return; } if ( addr[0] != 0x01) { Serial.print("Device is not a DS1990A family device.\n"); return; } count++; //lcd.setCursor(0,0); Serial.print("key_new = "); Serial.print(count,HEX); for( i1 = 0; i1 < 8; i1++) { //lcd.setCursor((7-i1)*2,1); //lcd.print(addr[i1],HEX); Serial.print(addr[i1],HEX); EEPROM.write(nnew*8+i1, addr[i1]); } ds.reset(); delay(1000); } /* // ********************* вывод прислоненного ключа в lcd void view_key(int rr) { byte i; Serial.print(" nkey = "); lcd.clear(); lcd.setCursor(0,0); if(admin==1 && rr==1) lcd.print("admin ="); else lcd.print(" user = "); lcd.setCursor(8,0); lcd.print(rr); for( i = 0; i < 8; i++) { lcd.setCursor((7-i)*2,1); lcd.print(addr[i],HEX); //EEPROM.write(i1*8+i, addr[i]); } ds.reset(); delay(1000); return; } // ********************* вывод ключа из EEPROM void view_key1(int rr) { byte i; lcd.setCursor(8,0); lcd.print(rr); for( i = 0; i < 8; i++) { lcd.setCursor((7-i)*2,1); lcd.print(EEPROM.read(rr*8+i),HEX); } delay(1000); return; } */вот мой скетч но я наверное не правильно его вставил
byte Key[ 64 , 8 ];
64 ключа по 8 байт
это для - далее....
вот мой скетч но я наверное не правильно его вставил
аха !
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
"свернуть код" - тоже хорошо
прошу прощения за такое, не хотел
прошу прощения за такое, не хотел
здесь не бьют ! небось !
неЗнал != неХотел
просто измени #75 :)-
не понял вас че с этим дальше делать
byte Key[ 64 , 8 ];
64 ключа по 8 байт
я понимаю что вам мои вопросы кажутся тупыми, но не могу понять
Снова на пальцах, берем байт из массива из 0 ячейки, записываем в 0 ячейку епром, берем из 1 ячейки массива, записываем в 1 ячейку епром и так восемь раз. Первый ключ сохранен. Удобно делать при помощи цикла For
Для последующих ключей смещаем адресное поле EEPROM на длину ключа.
byte Key[ 64 , 8 ];
64 ключа по 8 байт
я понимаю что вам мои вопросы кажутся тупыми, но не могу понять
64 ключа по 8 байт - ещё рано...
нет , не кажутся... я сам почти такой...
напиши код :
ввод ключа из сериала в ОЗУ ( в массив )
по команде из сериала запись этого ключа в eeprom
по команде из сериала чтение этого ключа в ОЗУ ( в массив )
вывод ключа из ОЗУ ( из массива ) в сериал-монитор
я бы так начал изучать этот вопрос , а потом усложнять и объединять со всем остальным....
SU-27-16, про 64 ключа, ты не горячишься, ТС похоже в одноразмерном массиве уже увяз.
дустим есть масив с 8 байтами:
byte Key[ 8 ];
byte i;
for(inti=0; i < 8; i++){EEPROM.write(i, key)}я так вас понял,
У тебя индекс отклеился.
дустим есть масив с 8 байтами:
byte Key[ 8 ];
byte i;
for(inti=0; i < 8; i++){EEPROM.write(i, key)}я так вас понял,
Вот Вы чего-то написали и тут же с вопросм "так? не так?".
А просто взять и попробовать религия не позволяет?
Что отклеилось
Индекс в массиве и знак вопроса.
Для чего он там, и как правильно должно выглядеть, смотрел примеры тав вроде больше ничего нет
byte i; - не нужно
а теперь найди разницу :
EEPROM.write( i , key ) и
EEPROM.write( i , key[ i ] )
Для чего он там, и как правильно должно выглядеть
для указания МК какой байт в данный момент взять из массива
...даже маленькие фрагменты кода не оформляй текстово , а посредством вставки кода
как говорить про строки если они не нумерованы ?
ещё над чем подумать....
for(inti=0; i < 8; i++)i изменяется от 0 до 7 - хватит и трёх двоичных разрядов для кодировки , но ближайший пользуемый тип данных byte , 8 разрядов
здесь int и все старшие типы - трата памяти :(
поэтому лучше
for(bytei=0; i < 8; i++ )это тоже не прокатит
EEPROM.write( i , key[ i ] )
ведь заявлено byte Key[ 8 ]
правильно
EEPROM.write( i , Key[ i ] )
О теперь понятней стало, что от куда берется,
А чтоб следующий ключ записать эт надо написать так:
for (byte I = 8; I < 16; I++)
Про вставку кода я учту, приеду домой отредактирую все свои записи, с мобильника подругому писать не могу.
Спасибо теперь, стало понятней
for (byte I = 8; I < 16; I++) - это уже ближе к посту #77 :)
и так и будешь прописывать все 64 возможных ключа ?
а если оставить
for ( byte i = 0; i < 8; i++ )
но добавить
EEPROM.write( i * numberKey , Key[ i ] )
...где numberKey - это номер ключа , byte numberKey = 0...63
читай - смещение индекса
Нужно добавить переменную ключей:
byte numberKey = 0;
А считать обратно я могу по номеру ключей иль только нужно будит побайтно считывать
А считать обратно я могу по номеру ключей иль только нужно будит побайтно считывать
а это как тибе удобнее-геморройне :)
напиши-покажи весь код записи ключа #43 = FF01020304050655 в EEPROM ( из массива )
напиши-покажи весь код чтения ключа #43 из EEPROM ( в массив )
чё построчно-то обсуждать ?
Ок, буду дома ппробую на писать, и спасибо за помощь
Ок, буду дома ппробую на писать, и спасибо за помощь