Arduino atmega328p
Эта программа должна запрашивать у пользователя ключ шифрования для ввода через последовательный монитор. Ключ шифрования содержит 16 символов. Однако сообщение, которое будет зашифровано, может содержать до 128 символов. Таким образом, при хранении ключа шифрования в EEPROM его следует повторить, чтобы он заполнял ячейки 0-127.
в коде я пытаюсь повторить 16-символьную клавишу 8 раз
volatile bool prese_button = false;
String Password;
int counter = 8;
boolean right_pass;
void setup() {
DDRD &= 0b11111011;
PORTD |=0b00000100;
EICRA |= 0b00000010;
EIMSK |= 0b00000001;
Serial.begin(9600);
}
void loop() {
Serial.println("Please enter a 127 character password:");
while (Serial.available() == 0) {} //подождите, пока последовательный терминал будет готов
Password = Serial.readString();
Serial.print("your password is: "); //просто чтобы убедиться, что он был прочитан правильно
Serial.println(Password);
for ( int j = 0 ;j < 128; j++) // 28 char
{
for (int i = 0; i<16 ; i++) { //16 char
EEPROM_write ( (j), Password[i] );
}
}
}
@Baha Abdallah, 👍0
Обсуждение1 ответ
for ( int j = 0 ;j < 128; j++) // 28 char
{
for (int i = 0; i<16 ; i++) { //16 char
EEPROM_write ( (j), Password[i] );
}
}
В этих двух циклах for вы пишете 128 раз по 16 символов. Это кажется больше, чем вы описали в своем посте. Если у вас есть 16 вещей и вам нужно повторить, чтобы заполнить 128 слотов, то вам нужно 128/16 = 8 повторений последовательности из 16 символов. Это всего лишь элементарная математика. Так что внешний цикл должен быть равен 8, а не 128.
for ( int j = 0 ;j < 8; j++) // 8 repeats of the 16 char
{
for (int i = 0; i<16 ; i++) { //16 char
EEPROM_write ((i + (16*j)), Password[i] );
}
}
Да, и вам придется вычислить адрес. Я добавлю к ответу пример., @Delta_G
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
А в чем именно заключается проблема?, @chrisl
Я не думаю, что ваш код делает то, что вы описали. Но о чем именно вы спрашиваете?, @StarCat