Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

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

Ответ
 
Опции темы Опции просмотра
Старый 26.03.2018, 16:46   #1
X_Max
Senior Member
 
Аватар для X_Max
 
Регистрация: 07.12.2007
Адрес: N54°31' E36°15'
Возраст: 42
Сообщений: 533
Вес репутации: 464/49
X_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of light
Отправить сообщение для X_Max с помощью ICQ
По умолчанию сравнение 4-х байт

Товарищи.
Чего-то тормознулся на примитивной, на первый взгляд, операции. Никак не могу придумать алгоритм.
Суть вопроса... С АЦП получили 4 байта (8 старших бит из кажного) и надо найти байт с самым большим весом и дальше с ним работать (если два и более одинаковых, то с любым из них). Проц - PIC16F1823, там нет прямых команд сравнения.

П.С. Забыл добавить, на АСМе.
__________________
конденсатор оказал сопротивление
X_Max вне форума   Ответить с цитированием
Старый 26.03.2018, 16:58   #2
pal1222@yandex.ru
Senior Member
 
Регистрация: 30.09.2008
Сообщений: 1,465
Вес репутации: 2482/75
pal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond reputepal1222@yandex.ru has a reputation beyond repute
По умолчанию Re: сравнение 4-х байт

Цитата:
Сообщение от X_Max Посмотреть сообщение
Товарищи.
Чего-то тормознулся на примитивной, на первый взгляд, операции. Никак не могу придумать алгоритм.
Суть вопроса... С АЦП получили 4 байта (8 старших бит из кажного) и надо найти байт с самым большим весом и дальше с ним работать (если два и более одинаковых, то с любым из них). Проц - PIC16F1823, там нет прямых команд сравнения.

П.С. Забыл добавить, на АСМе.
SUBWF <addr>, W ?
pal1222@yandex.ru вне форума   Ответить с цитированием
Старый 26.03.2018, 17:11   #3
X_Max
Senior Member
 
Аватар для X_Max
 
Регистрация: 07.12.2007
Адрес: N54°31' E36°15'
Возраст: 42
Сообщений: 533
Вес репутации: 464/49
X_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of light
Отправить сообщение для X_Max с помощью ICQ
По умолчанию Re: сравнение 4-х байт

Цитата:
Сообщение от pal1222@yandex.ru Посмотреть сообщение
SUBWF <addr>, W ?
как-то нифига не прояснилось. байтов то 4 а не 2
__________________
конденсатор оказал сопротивление
X_Max вне форума   Ответить с цитированием
Старый 26.03.2018, 17:13   #4
X_Max
Senior Member
 
Аватар для X_Max
 
Регистрация: 07.12.2007
Адрес: N54°31' E36°15'
Возраст: 42
Сообщений: 533
Вес репутации: 464/49
X_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of light
Отправить сообщение для X_Max с помощью ICQ
По умолчанию Re: сравнение 4-х байт

Может есть вариант побитно в цикле вращать через RLF f,d и отсеивать у кого первый ноль придёт?
__________________
конденсатор оказал сопротивление
X_Max вне форума   Ответить с цитированием
Старый 26.03.2018, 18:23   #5
Guaho
Senior Member
 
Аватар для Guaho
 
Регистрация: 28.06.2013
Возраст: 46
Сообщений: 697
Вес репутации: 1432/39
Guaho has much to be proud ofGuaho has much to be proud ofGuaho has much to be proud ofGuaho has much to be proud ofGuaho has much to be proud ofGuaho has much to be proud ofGuaho has much to be proud ofGuaho has much to be proud ofGuaho has much to be proud ofGuaho has much to be proud of
По умолчанию Re: сравнение 4-х байт

Сначала нужно определить максимум из этих четырёх байтов. Считаем максимумом сначала первый байт, затем сравниваем (методом вычитания) максимум со вторым, если второй больше, то максимум приравнивается к нему, затем те же операции с остальными байтами.
После этого - повторный проход, сравниваем полученный максимум со значениями 4-х байтов. При первом же совпадении значений запоминаем текущий байт (удобнее всего тут работать через FSR).
Guaho вне форума   Ответить с цитированием
Старый 26.03.2018, 19:41   #6
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 778
Вес репутации: 1355/51
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: сравнение 4-х байт

Код:
    movfw reg0
    subwf reg2,w    
    btfsc STATUS,C
    goto m1
    movfw reg0
    movwf reg2
    
m1: movfw reg1
    subwf reg3,w    
    btfsc STATUS,C
    goto m2
    movfw reg1
    movwf reg3   
     
m2: movfw reg2
    subwf reg3,w    
    btfsc STATUS,C
    goto m3
    movfw reg2
    movwf reg3 ; результат
m3: nop
оно?
DmitrijVDN вне форума   Ответить с цитированием
Старый 27.03.2018, 09:55   #7
X_Max
Senior Member
 
Аватар для X_Max
 
Регистрация: 07.12.2007
Адрес: N54°31' E36°15'
Возраст: 42
Сообщений: 533
Вес репутации: 464/49
X_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of light
Отправить сообщение для X_Max с помощью ICQ
По умолчанию Re: сравнение 4-х байт

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение
оно?
Оно, уважаемый!
Спасиб, изящно получилось. А то я примерно по такому же принципу нагородил, только задействовал регистр флагов, обнулял их по мере неподходимости, потом выяснял - где осталась единица...
В общем раза в 4 массивней получалось...
__________________
конденсатор оказал сопротивление
X_Max вне форума   Ответить с цитированием
Старый 27.03.2018, 18:00   #8
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 778
Вес репутации: 1355/51
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: сравнение 4-х байт

Цитата:
Сообщение от X_Max Посмотреть сообщение
изящно получилось.
не это в лоб, изящно так:
Код:
    movfw reg0
    
    subwf reg1,f
    btfsc STATUS,C
    addwf reg1,w
    
    subwf reg2,f
    btfsc STATUS,C
    addwf reg2,w  
    
    subwf reg3,f
    btfsc STATUS,C
    addwf reg3,w  
    nop ; результат в  Wreg
DmitrijVDN вне форума   Ответить с цитированием
Старый 28.03.2018, 11:04   #9
X_Max
Senior Member
 
Аватар для X_Max
 
Регистрация: 07.12.2007
Адрес: N54°31' E36°15'
Возраст: 42
Сообщений: 533
Вес репутации: 464/49
X_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of lightX_Max is a glorious beacon of light
Отправить сообщение для X_Max с помощью ICQ
По умолчанию Re: сравнение 4-х байт

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение
изящно так:
Благодарю, это ещё компактней.
__________________
конденсатор оказал сопротивление
X_Max вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написание прошивки USB для pic18f4550 ABRAZIV Вопросы начинающих 52 26.05.2013 05:25
Имитатор DS18B20 Filya44 Вопросы начинающих 14 12.03.2012 17:39
Usart pic877 kan_b Продукция MICROCHIP 29 24.10.2011 17:26
Проверка датчика на PIC16F684 diagnost2 Вопросы начинающих 20 06.01.2010 12:36
Размер блока в ММС - всегда 512 Байт ? Stoun Продукция MICROCHIP 7 24.04.2007 10:36


Часовой пояс GMT +3, время: 18:34.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot