Например TDA7294

Форум РадиоКот • Просмотр темы - реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 14:03:16

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Чт мар 11, 2021 05:18:29 
Родился

Зарегистрирован: Чт мар 11, 2021 05:07:30
Сообщений: 9
Рейтинг сообщения: 0
Всем привет. Попытался сделать умножение f4h_f4l * f5 = f6h_f6m_f6l , но так и не понял как работать с переполнением
Изображение
делал по 2 способу.
Спойлерtitle "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4l equ 0x20
f4h equ 0x21
f5 equ 0x22
f6l equ 0x23
f6m equ 0x24
f6h equ 0x25
k equ 0x26
org 00h

goto Start
Start
clrf f6h
clrf f6l
clrf f6m
movlw 0x8
movwf k
bcf STATUS,C
m1
rrf f5,1
btfsc STATUS,C
goto m2
goto m3
m2
movf f4l,0
addwf f6l,1
btfsc STATUS,C
goto m4
goto m5
m5
incf f6m
m4
movf f4h,0
addwf f6m,1
btfss STATUS,C
goto m3
goto m6
m6
incf f6h
m3
rlf f4l,1
rlf f4h,1
decf k,1
btfss STATUS,Z
goto m1
nop
end

В итоге у меня получается так Изображение, что он находит f6m, f6l . f6h я как ток не пытался сделать, но не получается. Мб кто нибудь сможет помощь. pic16f877.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Чт мар 11, 2021 09:30:34 
Родился

Зарегистрирован: Вт фев 28, 2017 08:13:31
Сообщений: 14
Рейтинг сообщения: 0
зачем столько GOTO
вот первое что увидел

Код:
title "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4l equ 0x20
f4h equ 0x21
f5 equ 0x22
f6l equ 0x23
f6m equ 0x24
f6h equ 0x25
k equ 0x26
org 00h

goto Start
Start
clrf f6h
clrf f6l
clrf f6m
movlw 0x8
movwf k
bcf STATUS,C
m1
rrf f5,1
btfss STATUS,C     ;btfsc STATUS,C
goto m3            ;goto m2
                        ;goto m3
                        ;m2
movf f4l,0
addwf f6l,1
btfsc STATUS,C    ;btfsc STATUS,C
                          ;goto m4
                          ;goto m5
                          ;m5
incf f6m              ;incf f6m
                          ;m4
movf f4h,0
addwf f6m,1
btfsc STATUS,C    ;btfss STATUS,C
                       ;goto m3
                       ;goto m6
                       ;m6
incf f6h            ;incf f6h
m3
rlf f4l,1
rlf f4h,1
decfsz  k,1       ;decf k,1
                    ;btfss STATUS,Z
goto m1
nop
end


Добавлено after 10 minutes 25 seconds:
увидел ошибку
сдвигаешь f4l и f4h влево и теряем старшие разряды
надо добавить f4hh
или другой алгоритм со сдвигом f6

Добавлено after 6 minutes 5 seconds:
Код:
title "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4l equ 0x20
f4m equ 0x21
f4h equ 0x22
f5 equ 0x23
f6l equ 0x24
f6m equ 0x25
f6h equ 0x26
k equ 0x27
org 00h

goto Start
Start
clrf f6l
clrf f6m
clrf f6h
clrf f4h
movlw 0x8
movwf k
bcf STATUS,C

m1
rrf f5
btfss STATUS,C   
goto m3           
movf f4l, W
addwf f6l
btfsc STATUS,C 
incf f6m           
movf f4m, W
addwf f6m
btfsc STATUS,C
incf f6h   
movf f4h, W
addwf f6h

m3
rlf f4l
rlf f4m
rlf f4h
decfsz  k
goto m1

nop

end


Добавлено after 1 hour 38 minutes 52 seconds:
Когда двигаем f6 то f5 двигаем в другую сторону


Код:
title "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4l equ 0x20
f4h equ 0x21
f5 equ 0x22
f6l equ 0x23
f6m equ 0x24
f6h equ 0x25
k equ 0x26
org 00h

goto Start
Start
clrf f6l
clrf f6m
clrf f6h
movlw 0x8
movwf k
bcf STATUS,C

m1
rlf f5
btfss STATUS,C   
goto m3           
movf f4l, W
addwf f6l
btfsc STATUS,C
incf f6m           
movf f4h, W
addwf f6m
btfsc STATUS,C
incf f6h   

m3
rlf f6l
rlf f6m
rlf f6h
decfsz  k
goto m1

nop

end


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Чт мар 11, 2021 09:49:10 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
А что там делать? Изобретение велосипеда. Всё давно уже сделано, в т.ч. 16x8: http://www.piclist.com/techref/microchi ... /index.htm


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Чт мар 11, 2021 16:09:01 
Родился

Зарегистрирован: Чт мар 11, 2021 05:07:30
Сообщений: 9
Рейтинг сообщения: 0
А что там делать? Изобретение велосипеда. Всё давно уже сделано, в т.ч. 16x8: http://www.piclist.com/techref/microchi ... /index.htm

Просто мне дали ТЗ в университете , там было 4 способа и 5 способ просто сложение само на себя. Я сделал сначала обычное умножение f4*f5, а когда нужно было взять побольше, то все потерялся. Спасибо за ответ попробую проверить



Добавлено after 1 hour 54 minutes 40 seconds:
Заработало!
Поменял местами h , l
Изображение

Спойлерtitle "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4l equ 0x20
f4h equ 0x21
f5 equ 0x22
f6l equ 0x23
f6m equ 0x24
f6h equ 0x25
k equ 0x26
org 00h

goto Start
Start
clrf f6l
clrf f6m
clrf f6h
movlw 0x8
movwf k
bcf STATUS,C

m1
rrf f5
btfss STATUS,C
goto m3
movf f4l, W
addwf f6h
btfsc STATUS,C
incf f6m
movf f4h, W
addwf f6m
btfsc STATUS,C
incf f6l

m3
rrf f6h
rrf f6m
rrf f6l
decfsz k
goto m1

nop

end


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Чт мар 11, 2021 18:00:12 
Родился

Зарегистрирован: Вт фев 28, 2017 08:13:31
Сообщений: 14
Рейтинг сообщения: 1
В последнем коде со сдвигом f6 накосячил
вот другой вариант

Спойлер
Код:
title "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4l equ 0x20
f4h equ 0x21
f5 equ 0x22
f6l equ 0x23
f6m equ 0x24
f6h equ 0x25
k equ 0x26
org 00h

goto Start
Start
clrf f6l
clrf f6m
clrf f6h
movlw 0x8
movwf k
bcf STATUS,C

m1
rlf f6l
rlf f6m
rlf f6h

rlf f5
btfss STATUS,C   
goto m3           
movf f4l, W
addwf f6l
btfsc STATUS,C
incf f6m           
movf f4h, W
addwf f6m
btfsc STATUS,C
incf f6h   

m3
decfsz  k
goto m1

nop

end


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Чт мар 18, 2021 23:22:48 
Родился

Зарегистрирован: Чт мар 11, 2021 05:07:30
Сообщений: 9
Рейтинг сообщения: 0
Zikon,
А с делением как произвести восстановление ?
я там ниже скрин кинул, и там подрисовал пункт, где идет восстановление., пытался реализовать, но что-то не идет.
Код:
title "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4       equ 0x20
f5       equ 0x21
f6       equ 0x22
f6ost    equ 0x23
k      equ   0x24
z      equ   0x25

   goto   Start
Start
   clrf   f6
   clrf   f6ost
   movlw   0x08
   movwf   k
   movf   f4,W
   movwf   f6
m2
   rlf      f6,1
   movf   f6,W
   movwf   f6ost
   movf   f5,W
   subwf   f6ost,1   
   btfsc   STATUS,C
   goto m4
   goto m3
m4   
   movwf   z ; делитель там
   movf   f6,W
   movlw   0x0
   movwf   f6
   movf   z,W
   movwf   f5
   comf   f6ost
   addwf   f6ost,1
   
   bsf      f6ost,1
   bcf      STATUS,C
   comf   f6ost      
m3
   rlf      f6,1
   decf   k,1
   btfss   STATUS,Z
   goto   m2
   nop
   end
   

Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Пт мар 19, 2021 08:00:36 
Родился

Зарегистрирован: Вт фев 28, 2017 08:13:31
Сообщений: 14
Рейтинг сообщения: 0
восстановление - это надо вернуть f6ost
f6ost = f6ost + f5


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Сб мар 20, 2021 17:31:08 
Родился

Зарегистрирован: Чт мар 11, 2021 05:07:30
Сообщений: 9
Рейтинг сообщения: 0
Zikon, Zikon, title "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4 equ 0x20
f5 equ 0x21
f6 equ 0x22
f6ost equ 0x23
k equ 0x24

goto Start
Start
clrf f6
clrf f6ost
movlw 0x08
movwf k
movf f4,W
movwf f6
m2
rlf f6,1
movf f6,W
movwf f6ost
movf f5,W
subwf f6ost,1
btfsc STATUS,C
goto m4
goto m3
m4
addwf f6ost,1
bsf STATUS,C
bcf STATUS,C
m3
rlf f6,1
decf k,1
btfss STATUS,Z
goto m2
nop
end




Пытался , не получается


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Сб мар 20, 2021 18:19:26 
Родился

Зарегистрирован: Вт фев 28, 2017 08:13:31
Сообщений: 14
Рейтинг сообщения: 0
вот что может быть

Код:
title "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4 equ 0x20
f5 equ 0x21
f6 equ 0x22
f6ost equ 0x23
k equ 0x24

goto Start

Start
clrf f6
clrf f6ost
movlw 0x08
movwf k
movf f4,W
movwf f6
m2
rlf f6,W
rlf f6ost

movf f5,W
subwf f6ost,1
btfss STATUS,C
goto m3

addwf f6ost,1
bcf STATUS,C

m3
rlf f6,1
decfsz  k
goto m2

nop

end




Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Сб мар 20, 2021 18:56:02 
Родился

Зарегистрирован: Чт мар 11, 2021 05:07:30
Сообщений: 9
Рейтинг сообщения: 0
Zikon, не работает, в остатке выбивает 6 , в ответе 0

Добавлено after 6 minutes 19 seconds:
Zikon, заработало , btfss на sc поставил! путаюсь всегда в них)

Добавлено after 15 minutes 7 seconds:
Zikon, Спасибо большое!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Сб мар 20, 2021 20:07:48 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 1
... заработало , btfss на sc поставил! путаюсь всегда в них

Все очень просто:
btfss = Bit Test File Skip if Set (проверить бит регистра, пропустить следующую, если он выставлен, т.е. 1).
btfsc = Bit Test File Skip if Clear (проверить бит регистра, пропустить следующую, если он очищен, т.е. 0).

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Сб мар 20, 2021 23:49:28 
Родился

Зарегистрирован: Чт мар 11, 2021 05:07:30
Сообщений: 9
Рейтинг сообщения: 0
Zikon,
Попытался реализовать f4_f4l/f5=f6_f6l_f6ost . Не получается

Код:
title "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4      equ 0x20
f4l      equ   0x21
f5      equ 0x22
f6      equ 0x23
f6l      equ   0x24
f6ost   equ 0x25
k       equ 0x26

goto Start

Start
    clrf    f6
   clrf   f6l     
    clrf    f6ost   
    movlw   0x08     
    movwf   k     
    movf    f4,W   
    movwf   f6
   movf    f4l,W   
    movwf   f6l   
m2
    rlf     f6,W   
    rlf     f6ost   
    movf    f5,W   
    subwf   f6ost,1
   btfsc   STATUS,C
   goto    m3
   addwf   f6ost,1
   bcf     STATUS,C
m3
    rlf   f6,1
    decfsz k       
    goto m2 
m1
    rlf     f6l,W   
    rlf     f6ost   
    movf    f5,W   
    subwf   f6ost,1
   btfsc   STATUS,C
   goto    m4
   addwf   f6ost,1
   bcf     STATUS,C
m4
   rlf   f6l,1
    decfsz k       
    goto m1
nop               
end               


Добавлено after 13 minutes 24 seconds:
Zikon,
Нашел костыль один , заново задать цикл после выполнения 1 деления
но думаю есть вариант проче
Код:
title "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4      equ 0x20
f4l      equ   0x21
f5      equ 0x22
f6      equ 0x23
f6l      equ   0x24
f6ost   equ 0x25
k       equ 0x26

goto Start

Start
    clrf    f6
   clrf   f6l     
    clrf    f6ost   
    movlw   0x8     
    movwf   k     
    movf    f4,W   
    movwf   f6
   movf    f4l,W   
    movwf   f6l   
m2
    rlf     f6,W   
    rlf     f6ost   
    movf    f5,W   
    subwf   f6ost,1
   btfsc   STATUS,C
   goto    m3
   addwf   f6ost,1
   bcf     STATUS,C
m3
    rlf   f6,1
    decfsz k       
    goto m2
 
   movlw   0x8     
    movwf   k           ; новый ЦИКЛ
m1
    rlf     f6l,W   
    rlf     f6ost   
    movf    f5,W   
    subwf   f6ost,1
   btfsc   STATUS,C
   goto    m4
   addwf   f6ost,1
   bcf     STATUS,C
m4
   rlf    f6l,1
    decfsz k       
    goto m1
nop               
end   


После этого заработало


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: реализации выражения: f4h_f4l * f5 = f6h_f6m_f6l
СообщениеДобавлено: Вс мар 21, 2021 09:23:53 
Родился

Зарегистрирован: Вт фев 28, 2017 08:13:31
Сообщений: 14
Рейтинг сообщения: 0
а так?

Код:
title "PIC16f877 sample"
list p=16f877
#include <p16f877.inc>

f4l equ 0x20
f4 equ 0x21
f5 equ 0x22
f6l equ 0x23
f6 equ 0x24
f6ost equ 0x25
k equ 0x26

goto Start

Start
clrf f6l
clrf f6
clrf f6ost
movlw 0x10
movwf k
movf f4l,W
movwf f6l
movf f4,W
movwf f6

m2
rlf f6l,W
rlf f6, 1
rlf f6ost, 1

movf f5,W
subwf f6ost,1
btfsc STATUS,C
goto m3

addwf f6ost,1
bcf STATUS,C

m3
rlf f6l,1
decfsz  k
goto m2

nop

end


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y