AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
02.08.2017, 12:30
|
|
Прописка
Регистрация: 07.08.2005
Сообщений: 146
Сказал спасибо: 67
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
printf...
Здравствуйте.
Как правильно вывести информацию из EEPROM.
Есть данные в EEPROM:
...
eeprom char buffer[5]={0x01,0x02,0x03,0x04,0x05};
...
Нужно вывести строкой последовательность 0102030405
Как правильно это сделать?
Может так?
printf("%d%d%d%d%d", buffer[0], buffer[1], buffer[2], buffer[3], buffer[4]);
Спасибо
|
|
|
|
02.08.2017, 12:39
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
|
Re: printf...
Сообщение от raptor37
|
Как правильно это сделать?
|
Правильно - написать свою функцию преобразования ниббла в символ. И "пополубайтно", последовательно...
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
02.08.2017, 13:04
|
|
Прописка
Регистрация: 07.08.2005
Сообщений: 146
Сказал спасибо: 67
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: printf...
Сообщение от akegor
|
ниббла в символ.
|
что такое ниббл
|
|
|
|
02.08.2017, 13:11
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
|
Re: printf...
Полубайт. .
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
02.08.2017, 13:51
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: printf...
Код:
|
void ValueToStringHEX_Byte (unsigned char Value, char * String)
{
const unsigned char HEX_Var[17]={"0123456789ABCDEF"};
* String++ = ((Value & 0xF0) ›› 4)[HEX_Var];
* String = (Value & 0x0F)[HEX_Var];
} |
|
|
|
Эти 2 пользователя(ей) сказали Спасибо Easyrider83 за это сообщение:
|
|
|
07.08.2017, 21:00
|
|
Прописка
Регистрация: 07.08.2005
Сообщений: 146
Сказал спасибо: 67
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: printf...
Подскажите пожалуйста.
Почему так работает:
...
printf("0421044004300431043E04420430043B0020002204 12044504 3E04340020003100220020002000200020");
...
_____________
А вот так не работает:
...
eeprom char buffer_ee[42]={ 0x04,0x21,0x04,0x40,0x04,0x30,0x04,0x31,0x04,0x3E, 0x04,0x42,0x04,0x30,0x04,0x3B,0x00,0x20,0x00,0x22, 0x04,0x12,0x04,0x45,0x04,0x3E,0x04,0x34,0x00,0x20, 0x00,0x31,0x00,0x22,0x00,0x20,0x00,0x20,0x00,0x20, 0x00,0x20};
...
for (cnt = 0; cnt ‹= 41; cnt ++)
{
temp=(buffer_ee[cnt] & 0xF0) ›› 4;
printf("%c", temp);
temp=(buffer_ee[cnt] & 0x0F);
printf("%c", temp);
}
Где ошибка
|
|
|
|
07.08.2017, 21:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.02.2013
Сообщений: 1,015
Сказал спасибо: 43
Сказали Спасибо 273 раз(а) в 214 сообщении(ях)
|
Re: printf...
for (cnt = 0; cnt ‹ sizeof(buffer_ee); cnt ++) printf("%d", buffer_ee[cnt]);
Последний раз редактировалось dgrishin; 07.08.2017 в 21:36.
|
|
|
Сказали "Спасибо" dgrishin
|
|
|
07.08.2017, 22:37
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
|
Re: printf...
Сообщение от raptor37
|
Почему
|
Не работает "меньше или равно". Почему - не разбирался, просто не использую.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
08.08.2017, 12:48
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
|
Re: printf...
raptor37, а представление при выводе (десятичное/восьмеричное/шестнадцатеричное)? Разметка вывода?
И у printf таки много своих возможностей по организации вывода - и форматирование, и длина,… даже в wiki вполне подробно и вменяемо расписано . И уж коли библиотека таки будет загружена (#include stdio.h), то код уже будет в прошивке и не пользоваться им причин нет.
Лучше описать ситуацию так: есть … нужно … пробовал … минусы … прошу советов.
Тогда есть куда другим думать, да и Ваши возможные ошибки понятны будут .
Например printf ('%*X', sizeof (but) * 2, buf) и шестнадцатеричный дамп buf на выводе.
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
08.08.2017, 13:08
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
|
Re: printf...
Сообщение от mike-y-k
|
И уж коли библиотека таки будет загружена (#include stdio.h), то код уже будет в прошивке и не пользоваться им причин нет.
|
Если функции не используются, то никакой нормальный компилятор не включит ни в код, ни в текст то, что приинклюдили.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:27.
|
|