помогите собрать байт из строки

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

помогите собрать байт из строки

Сообщение kotriks »

помогите собрать байт из строки

Код: Выделить всё

pas[0] pas[1] и pas[2]  в 1 байт
весь код

Код: Выделить всё

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
Откуда: Ижевск
Контактная информация:

Re: Помогите не работает

Сообщение pyzhman »

Как впихнуть невпихуемое? Это не сюда.
PS. Тему переименуйте, иначе не видать вам ответов.
Docendo discimus
Реклама
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: Помогите не работает

Сообщение Engineer_Keen »

Мда... Вопрос не совсем понятен...

result=pas[0]*100+pas[1]*10+pas[2];

Так что ли? Ну еще выход за пределы байта (>255) учесть...
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Re: Помогите не работает

Сообщение kotriks »

Engineer_Keen писал(а):Мда... Вопрос не совсем понятен...

result=pas[0]*100+pas[1]*10+pas[2];

Так что ли? Ну еще выход за пределы байта (>255) учесть...
спасибо вы очень меня выручили :beer:
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Engineer_Keen
Друг Кота
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Re: помогите собрать байт из строки

Сообщение Engineer_Keen »

Странно, обычно спрашивают как наоборот сделать - из байта в 3х-символьную строку :)
Реклама
kotriks
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Re: помогите собрать байт из строки

Сообщение kotriks »

Помогите пееписать чтобы пароль можно было задавать не из трёх цифр, а буквенно и цифренно до 10 символов.
Последний раз редактировалось kotriks Ср янв 02, 2013 12:13:19, всего редактировалось 1 раз.
Реклама
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: помогите собрать байт из строки

Сообщение uk8amk »

Зечем пароль хранить так?

Код: Выделить всё

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

Re: помогите собрать байт из строки

Сообщение kotriks »

а можно подробней? я новичёк в этом, функцию писал не я хочу переделать под более сложный пароль.
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: помогите собрать байт из строки

Сообщение uk8amk »

Вам нужно сохранять в 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 попытки до самоуничтожения девайса!" );
 };
Ответить

Вернуться в «Разные вопросы по МК»