Дальномер на микронтроллере
Re: Дальномер на микронтроллере
А обязательно его преобразовывать в десятичную систему исчисления?
- Реклама
Re: Дальномер на микронтроллере
Ну а как же иначе можно увидеть число на индикаторе ? Только в виде строки символов ( цифр ) .
Например : число 127 : 01111111
Преобразуем в 3 десятичных байта :
00000001, 00000010, 00000111
затем, чтоб преобразовать в коды цифровых символов, добавляем к каждому байту 00110000 :
00110001, 00110010, 00110111, что и есть строка символов "127"
Например : число 127 : 01111111
Преобразуем в 3 десятичных байта :
00000001, 00000010, 00000111
затем, чтоб преобразовать в коды цифровых символов, добавляем к каждому байту 00110000 :
00110001, 00110010, 00110111, что и есть строка символов "127"
Re: Дальномер на микронтроллере
Почему так? Ведь единице в коде индикатора соответствует скорее 0b00000110, нежели 00110001 .
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: Дальномер на микронтроллере
0b00000110 будет для вашего семисегментника, а 0b00110001 для ASCII.
Re: Дальномер на микронтроллере
А как мне преобразовать цифру в двоичном коде в код семисегментника. Как то дешифрировать надо или как?
- Реклама
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: Дальномер на микронтроллере
Просто создать чтото типа таблицы или массива кодов для семисегментника по возрастанию цифр от 0 до 9, а затем так каждый разряд выводить на дисплей, для этого и нужно преобразовывать из HEX в DEC формат. Думаю даже в ASCII преобразовывать нет смысла, если не используешь какие нибудь либы готовые, пишешь просто свой код без всяких либ.
Re: Дальномер на микронтроллере
Ну я же не в курсе ( схема не приведена ), что вывод на 7-сегментник, а не ЖКИ. Тогда действительно через массив символов, как сказал коллега zero648. Да и ещё смотря -- индикация стат. или дин., индикаторы с ОА или ОК.
Re: Дальномер на микронтроллере
А если преобразовать в двоично-десятичный, хуже не будет?
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: Дальномер на микронтроллере
А стоит ли? Во-первых, все равно придется в десятичный по разрядам разбирать из НЕХа, затем упаковывать все в BCD, а чтобы вывести на дисплей используя таблицу кодов придется опять вытаскивать из BCD в DEC, чтобы найти нужный адрес кода в таблице. Плюсов немного, больше минусов.
Re: Дальномер на микронтроллере
Jack_A писал(а):Ну а как же иначе можно увидеть число на индикаторе ? Только в виде строки символов ( цифр ) .
Например : число 127 : 01111111
Преобразуем в 3 десятичных байта :
00000001, 00000010, 00000111
затем, чтоб преобразовать в коды цифровых символов, добавляем к каждому байту 00110000 :
00110001, 00110010, 00110111, что и есть строка символов "127"
Что то я запутался. Судя по этому сообщению, обязательно преобразовывать в десятичное.
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: Дальномер на микронтроллере
А Я что говорю
все равно придется в десятичный по разрядам разбирать из НЕХа
Re: Дальномер на микронтроллере
Тут в процессе возник еще один вопрос. Чем упакованный BCD отличается от неупакованного ?
-
Alkul
- Держит паяльник хвостом
- Сообщения: 933
- Зарегистрирован: Ср апр 13, 2011 11:09:20
- Откуда: Екатеринбург
Re: Дальномер на микронтроллере
Простой пример:Dimon11 писал(а):Тут в процессе возник еще один вопрос. Чем упакованный BCD отличается от неупакованного ?
Десятичное число 35
Неупакованный BCD-формат выглядит так: 0000 0011, 0000 0101
Упакованный BCD-формат выглядит так: 0011 0101.
Для неупакованного BCD-формата на каждое число требуется один байт, а для упакованного - на каждое число половина байта.


