Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Преобразование числа

Непрочитано 26.12.2011, 19:12  
vvkka
Прописка
 
Регистрация: 24.08.2005
Сообщений: 140
Сказал спасибо: 18
Сказали Спасибо 16 раз(а) в 15 сообщении(ях)
vvkka на пути к лучшему
По умолчанию Re: Преобразование числа

да спасибо помогли , нужно было на семи сегментный дисплей вывести измерямые значения , устройство пошло на ваккумную печь, нужно было срочно приспособить то что было , вот под рукой и оказался ARM
Реклама:
vvkka вне форума  
Непрочитано 27.12.2011, 01:37  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию 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);

}
... покороче... и побыстрее будет...
st_1 вне форума  
Сказали "Спасибо" st_1
ut1wpr (27.12.2011)
Непрочитано 27.12.2011, 01:44  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Преобразование числа

Сообщение от st_1 Посмотреть сообщение
return (uint32_t)(Res-n);
Для меня неожиданно. И... вкусно! Спасибо.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование 2-х байтного числа в набор десятизначных цифр (Assembler,PIC) Opasif Микроконтроллеры, АЦП, память и т.д 6 29.04.2011 19:52
Индикация 8 разрядного числа sacom TTL и CMOS логика 21 07.02.2011 10:12
преобразование 16bit числа на Си (нужна помощь) Uz_Sleep_Walker Микроконтроллеры, АЦП, память и т.д 4 19.02.2010 15:49
Положительные и отрицательные числа в Си day177 Микроконтроллеры, АЦП, память и т.д 54 30.01.2008 16:03
преобразование числа для занесения его в регистр на PIC16F84 CERGEI1982 Микроконтроллеры, АЦП, память и т.д 9 11.01.2007 17:47


Часовой пояс GMT +4, время: 19:49.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.