Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

тожсамое на сях

Отправлено колян безпарольный 13 ноября 2009, г. 01:52
В ответ на: Ответ: отправлено пользователем колян безпарольный 13 ноября 2009, г. 01:48


//Перевод 2ух байтового числа в 5 цифр для семисегментного индикатора
void int2bcd(char *dst,unsigned int val)
{unsigned char counter,a,b,c;
a=b=c=0; counter = 16;
do {a+=0x33; if (!(a&0x08)) a-=0x03; if (!(a&0x80)) a-=0x30;
if (counter < 8)
{b+=0x33; if (!(b&0x08)) b-=0x03; if (!(b&0x80)) b-=0x30;
}
c<<=1;if (b &0x80 ) c|=0x01;
b<<=1;if (a &0x80 ) b|=0x01;
a<<=1;if (val&0x8000) a|=0x01;
val <<= 1;

} while (--counter);
*dst=c&0x0F;
*(dst+1)=(b&0xF0)>>4;
*(dst+2)=b&0x0F;
*(dst+3)=(a&0xF0)>>4;
*(dst+4)=a&0x0F;
}



Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 90:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru