реклама на сайте
подробности

 
 
> 4х разрядное DEC число разбить на цифры
Punk
сообщение Jan 27 2007, 14:37
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167



Прет! Есть преременная unsigned int и её значение в программе не превышает 9999 необходимо разбить на отдельные числа для отображения на светодиодном индикаторе.
В хексе у меня все получилось без проблем а вот в деке че то ни хрена.Подскажите плз как надо грамотно разбивать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kv_addr
сообщение Jan 28 2007, 07:27
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-07-04
Из: Полтава
Пользователь №: 279



Цитата(Punk @ Jan 27 2007, 15:37) *
Прет! Есть преременная unsigned int и её значение в программе не превышает 9999 необходимо разбить на отдельные числа для отображения на светодиодном индикаторе.
В хексе у меня все получилось без проблем а вот в деке че то ни хрена.Подскажите плз как надо грамотно разбивать?

Самое простое и короткое:
Код
...
__flash char Symbol[11]={0x88, 0x9F, 0xC4, 0x86, 0x93, 0xA2, 0xA0, 0x8F, 0x80, 0x82, 0xFF}; // образы цифр (могут быть иными)
char Digit[4]; //готовое к выводу на 7-сегментный индикатор 4-разрядное число
...
/*******************************************************************************
4-разрядное 10-ное число в виде семисегментных образов с подавлением незначащих нулей
*******************************************************************************/
void  DIG_LED(unsigned int i)
{
  char pos=4;
  char rem=0;
  do
  {
    if (i !=0) rem =(i % 10);
        pos--;
    Digit[pos]=Symbol[rem];
    rem=10;        
    i /= 10;
  }
  while(pos);
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 08:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.02353 секунд с 7
ELECTRONIX ©2004-2016