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

 
 
> Преобразование двоичного в двоично-десятичный код
_alex__
сообщение Mar 22 2018, 20:14
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 25-06-14
Пользователь №: 82 059



Имеетя 24-х разрядное двоичное число представленное в виде трех однобайтных (unsigned char) переменных
BYTE2,BYTE1,BYTE0 (старший -> младший байт числа)

Нужно это число пребразовать в 8 разрядов десятичного числа представленных unsigned char переменными DIGIT7...DIGIT0 (старший -> младший байт числа)

Возможно использовать только переменные unsigned char т.к. это для восьмиразрядного микроконтроллера.

Помогите написать на языке С функцию для такого преобразования.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Mareng
сообщение Mar 23 2018, 01:28
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 19-02-07
Пользователь №: 25 487



Придется искать 24-разрядный микроконтроллер, иначе никак!)
Go to the top of the page
 
+Quote Post
_alex__
сообщение Mar 23 2018, 09:23
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 102
Регистрация: 25-06-14
Пользователь №: 82 059



Цитата(Mareng @ Mar 23 2018, 01:28) *
Придется искать 24-разрядный микроконтроллер, иначе никак!)


Есть реализация этой задачи на assembler, но не знаю как это на С перевести

Код
CBLOCK  
    DIGIT0  
    DIGIT1  
    DIGIT2  
    DIGIT3  
    DIGIT4  
    DIGIT5  
    DIGIT6  
    DIGIT7  
    BIN0    
    BIN1    
    BIN2    
        cycles  
    deccnt  
    octcnt  
    bitcnt  
ENDC

bin2dec
    CLRF   FSR
    CLRF   INDF

    clrf DIGIT0
    clrf DIGIT1
    clrf DIGIT2
    clrf DIGIT3
    clrf DIGIT4
    clrf DIGIT5
    clrf DIGIT6
    clrf DIGIT7
    clrf cycles    
    movlw 08    
    movwf octcnt
octloop:         
    incf cycles  
    movlw 03       
    movwf bitcnt
bitloop:
    rlf BIN0
    rlf BIN1
    rlf BIN2
    movlw DIGIT0
    movwf FSR
    movfw cycles
    movwf deccnt
decloop:
    rlf INDF
    movlw 0xF6
    addwf INDF,0
    btfsc STATUS,0
    movwf INDF
    incf FSR
    decfsz deccnt
    goto decloop
    decfsz bitcnt
    goto bitloop
    decfsz octcnt
    goto octloop
    return
Go to the top of the page
 
+Quote Post



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

 


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


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