Как заставить программу считывать данные с монитора порта и убрать *мусор* из данных на выходе
- Войдите на сайт для отправки комментариев
Вс, 26/06/2016 - 20:57
Сделана программа для шифровки шифром Цезаря сообщения на английских символах, но возникла проблема. Не получается заставить принимать данные для шифрования сообщений с монитора порта, и не удается убрать *мусор* с получаемых данных в мониторе порта, подробнее на фото. ЗАРАНЕЕ СПАСИБО!
http://s017.radikal.ru/i429/1606/5b/8f5968205575.png - фото
Код программы:
void setup()
{
Serial.begin(9600);
}
void loop()
{
char* str = "SHIFRCEZARYA";
int shift = 3;
for (shift = 3; shift <= 3; shift ++)
{
Serial.print(shift);
Serial.print(" = ");
int i = 0;
while (str[i] != '�')
{
char ch = str[i];
int new_char_code = ch + shift;
// Знаки A-Z имеют кода 65-90
// Букв в латинском алфавите 26
if (new_char_code > 90) new_char_code -= 26;
if (new_char_code < 65) new_char_code += 26;
Serial.print(char(new_char_code));
i ++;
}
Serial.println();
}
while (!Serial.available()) {}
}
нормально вставь код в спец тег, так проще читать.
void setup() { Serial.begin(9600); } void loop() { char* str = "SHIFRCEZARYA"; int shift = 3; for (shift = 3; shift <= 3; shift ++) { Serial.print(shift); Serial.print(" = "); int i = 0; while (str[i] != '�') { char ch = str[i]; int new_char_code = ch + shift; // Знаки A-Z имеют кода 65-90 // Букв в латинском алфавите 26 if (new_char_code > 90) new_char_code -= 26; if (new_char_code < 65) new_char_code += 26; Serial.print(char(new_char_code)); i ++; } Serial.println(); } while (!Serial.available()) {} }сча гляну, шифр цезаря )), неуверен успею, а то малый на пол часа играть будет, а потом гляну
занят был, тип такой код
void setup() { Serial.begin(9600); } void loop() { char* str = "ABCZZ"; // строка, что шифруем //65-90, 25 87 char encStr; uint8_t shift = 3; //сдвиг uint8_t strtNmbChar = 65, endNmbChar = 90; int i = 0; //итератор while (str[i] != '\0') { if (str[i] > (endNmbChar - shift)) encStr = ((str[i] + shift - 1) - (endNmbChar - strtNmbChar)); else encStr = str[i] + shift; Serial.print(encStr); i++; } Serial.println(); delay(5000); }Snp_Vint, ВЫ сами поняли, что написали в строке 14?