Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
kotriks
Грызет канифоль
Сообщения: 274 Зарегистрирован: Чт апр 28, 2011 15:08:58
Сообщение
kotriks » Вт авг 28, 2012 14:51:03
помогите собрать байт из строки
весь код
Код: Выделить всё
pas[0]=getchar();
pas[1]=getchar();
pas[2]=getchar();
putchar('n'); putchar('e'); putchar('w'); putchar(' ');
putchar('p'); putchar('a'); putchar('s'); putchar(' ');
putchar(pas[0]); putchar(pas[1]); putchar(pas[2]);
putchar(13);
putchar(10);
putchar(13);
putchar(10);
pas[0]=pas[0]-0x30;
pas[1]=pas[1]-0x30; pas[2]=pas[2]-0x30;
Последний раз редактировалось
kotriks Вт авг 28, 2012 14:59:55, всего редактировалось 1 раз.
pyzhman
Друг Кота
Сообщения: 7016 Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:
Сообщение
pyzhman » Вт авг 28, 2012 14:57:33
Как впихнуть невпихуемое? Это не сюда.
PS. Тему переименуйте, иначе не видать вам ответов.
Docendo discimus
Engineer_Keen
Друг Кота
Сообщения: 3872 Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва
Сообщение
Engineer_Keen » Вт авг 28, 2012 15:00:41
Мда... Вопрос не совсем понятен...
result=pas[0]*100+pas[1]*10+pas[2];
Так что ли? Ну еще выход за пределы байта (>255) учесть...
kotriks
Грызет канифоль
Сообщения: 274 Зарегистрирован: Чт апр 28, 2011 15:08:58
Сообщение
kotriks » Вт авг 28, 2012 15:39:16
Engineer_Keen писал(а): Мда... Вопрос не совсем понятен...
result=pas[0]*100+pas[1]*10+pas[2];
Так что ли? Ну еще выход за пределы байта (>255) учесть...
спасибо вы очень меня выручили
Engineer_Keen
Друг Кота
Сообщения: 3872 Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва
Сообщение
Engineer_Keen » Вт авг 28, 2012 15:45:50
Странно, обычно спрашивают как наоборот сделать - из байта в 3х-символьную строку
kotriks
Грызет канифоль
Сообщения: 274 Зарегистрирован: Чт апр 28, 2011 15:08:58
Сообщение
kotriks » Вт янв 01, 2013 19:03:32
Помогите пееписать чтобы пароль можно было задавать не из трёх цифр, а буквенно и цифренно до 10 символов.
Последний раз редактировалось
kotriks Ср янв 02, 2013 12:13:19, всего редактировалось 1 раз.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222 Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent
Сообщение
uk8amk » Вт янв 01, 2013 19:21:16
Зечем пароль хранить так?
Код: Выделить всё
Key=(pas[0]*100)+(pas[1]*10)+(pas[2]);
ee_key = Key; // запись в ЕЕПРОМ
Так полностью решится ваша проблема:
Код: Выделить всё
ee_key[0] = pas[0]; // запись в ЕЕПРОМ
ee_key[1] = pas[1];
ee_key[2] = pas[2];
kotriks
Грызет канифоль
Сообщения: 274 Зарегистрирован: Чт апр 28, 2011 15:08:58
Сообщение
kotriks » Вт янв 01, 2013 20:44:03
а можно подробней? я новичёк в этом, функцию писал не я хочу переделать под более сложный пароль.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222 Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent
Сообщение
uk8amk » Ср янв 02, 2013 14:16:05
Вам нужно сохранять в EEPROM не число, а строку с паролем. При этом строка в СИ представляет собой массив байт, оканчивающийся символом 0x00. Но это не принципиально т.к. можно завести еще одну переменную в которую положить число байт(т.е. длина) пароля.
Код: Выделить всё
eeprom uint8_t ee_pas_len;//сколько букв в пароле
eeprom uint8_t ee_password[10]; //собственно сам пароль
И теперь проверка
Код: Выделить всё
pass_correct = TRUE;
if( pas_len == ee_pas_len)
{//Число символов совпало, проверяем сами символы
for( i=0; i<pas_len; i++ )
{
if( ee_password[i] != pas[i] )
{
pass_correct = FALSE;
};
};
}
else
{
pass_correct = FALSE;
};
if( pass_correct == FALSE )
{
message( " Неверный пароль\n\r" );
message( "У вас 3 попытки до самоуничтожения девайса!" );
};