Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
26.12.2011, 19:12
|
|
Прописка
Регистрация: 24.08.2005
Сообщений: 139
Сказал спасибо: 18
Сказали Спасибо 16 раз(а) в 15 сообщении(ях)
|
Re: Преобразование числа
да спасибо помогли , нужно было на семи сегментный дисплей вывести измерямые значения , устройство пошло на ваккумную печь, нужно было срочно приспособить то что было , вот под рукой и оказался ARM
|
|
|
|
27.12.2011, 01:37
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: преобразование числа
Сообщение от qwerky
|
Код:
|
U32 bin2bcd_U32_soft(U32 data, U8 result_bytes) {
U32 result = 0; /*result*/
for (U8 cnt_bytes=(4 - result_bytes); cnt_bytes; cnt_bytes--) /* adjust input bytes */
data ‹‹= 8;
for (U8 cnt_bits=(result_bytes ‹‹ 3); cnt_bits; cnt_bits--) { /* bits shift loop */
/*result BCD nibbles correction*/
result += 0x33333333;
/*result correction loop*/
for (U8 cnt_bytes=4; cnt_bytes; cnt_bytes--) {
U8 corr_byte = result ›› 24;
if (!(corr_byte & 0x08)) corr_byte -= 0x03;
if (!(corr_byte & 0x80)) corr_byte -= 0x30;
result ‹‹= 8; /*shift result*/
result += corr_byte; /*set 8 bits of result*/
}
/*shift next bit of input to result*/
result ‹‹= 1;
if (((U8)(data ›› 24)) & 0x80)
result |= 1;
data ‹‹= 1;
}
return(result);
} |
|
Мда... Многа букафф...
Такое... для STM32...
Код:
|
uint32_t Bin2BCD(uint32_t value, uint8_t *Res)
{
uint8_t *n = Res;
while (value›0)
{
*Res++ = value % 10;
value/=10;
}
return (uint32_t)(Res-n);
} |
... покороче... и побыстрее будет...
|
|
|
|
27.12.2011, 01:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Преобразование числа
Сообщение от st_1
|
return (uint32_t)(Res-n);
|
Для меня неожиданно. И... вкусно! Спасибо.
__________________
С уважением,
Vic / ut1wpr
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 20:24.
|
|