15.01.2020, 21:01
|
|
Гражданин KAZUS.RU
Регистрация: 28.04.2008
Сообщений: 506
Сказал спасибо: 251
Сказали Спасибо 573 раз(а) в 226 сообщении(ях)
|
Pic16F870 нужна помощь ассемблерщиков
Асм для меня . Есть устройство на Pic16F870, рассчитанное на питание 5В, которое и опора для АЦП.
Развёл печатку, переделал под неё исходник .
Запитал от 2,7В (Li-Ion+XC6206), функционирует и на 20 МГц, но теперь нужен перерасчёт результатов измерений (вместо 1,33В кажет 2,52).
Где это зарыто в исходнике?
Буду благодарен за помощь.
Последний раз редактировалось tomitch; 17.01.2020 в 17:35.
|
|
|
|
15.01.2020, 23:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
|
Re: Pic16F870 нужна помощь ассемблерщиков
А ссылку на устройство слабо дать?
Как бы неплохой пробник?
__________________
Решил посоветовать, да забыл что...
|
|
|
|
16.01.2020, 01:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.10.2004
Адрес: Нижний Новгород
Сообщений: 1,746
Сказал спасибо: 416
Сказали Спасибо 1,240 раз(а) в 551 сообщении(ях)
|
Re: Pic16F870 нужна помощь ассемблерщиков
Просто сделай делитель на RA0 (2 ножка), 23,5 Ом на массу. Или другие резисторы, главное пропорция в изменении питающих.
__________________
Решил посоветовать, да забыл что...
|
|
|
|
16.01.2020, 02:19
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 723
Сказал спасибо: 363
Сказали Спасибо 803 раз(а) в 377 сообщении(ях)
|
Re: Pic16F870 нужна помощь ассемблерщиков
Сейчас в софте что-нибудь придумаем, там ИМХО несложно.
Опора уменьшилась в 5.0/2.7 = 1.85 раза, поэтому и результат пропорционально завышен.
Нужно результат измерения АЦП уменьшить в 1.85 раз, или, что то же, домножить на 1/1.85 = 0.54 ~= 17/32.
Если в оригинале результат измерения N с АЦП делится на 2 (т.е. N/2) и идет в работу, то нам нужно домножить его на 17/32, то есть получим искомое N*17/64.
Это можно представить как (16*N + N)/64 = 16*N/64 + N/64 = (N››2) + (N››6), то есть обойтись сдвигами и сложениями.
|
|
|
|
16.01.2020, 04:48
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 723
Сказал спасибо: 363
Сказали Спасибо 803 раз(а) в 377 сообщении(ях)
|
Re: Pic16F870 нужна помощь ассемблерщиков
Сообщение от tomitch
|
В Протеусе симулируется
|
Нет такой возможности.
Попробуйте - подправленный исходник во вложении.
По ходу там, где явно указано 'voltmeter', оригинальный фрагмент обработки результата АЦП был заменен на новый.
Т.е. закомментированы строки 1244..1254 с пометкой 'Original':
Код:
|
vov2 call atod ;get 10 bits
;››› Original
;bcf STATUS,C
;rrf hi,f
;rrf lo,f ;scale to 9 bits (N ›› 1)
;movf lo,w
;movwf acc
;movf hi,w
;movwf acc+1
;clrf acc+2
;clrf acc+3
;‹‹‹ Original |
и добавлен новый фрагмент с пометкой 'New'.
Код:
|
;››› New
; the goal is to obtain in acc the value (N ›› 2) + (N ››6) instead of (N ›› 1)
bcf STATUS,C
rrf hi,f
rrf lo,f ; hi:lo is shifted right by 1 (N ›› 1)
bcf STATUS,C
rrf hi,f
rrf lo,f ; hi:lo is shifted right by 2 (N ›› 2)
movf lo,w
movwf acc
movf hi,w
movwf acc+1
clrf acc+2
clrf acc+3 ; acc now contains hi:lo shifted right by 2 (N ›› 2)
bcf STATUS,C
rrf hi,f
rrf lo,f ; hi:lo is shifted right by 3 (N ›› 3)
bcf STATUS,C
rrf hi,f
rrf lo,f ; hi:lo is shifted right by 4 (N ›› 4)
bcf STATUS,C
rrf hi,f
rrf lo,f ; hi:lo is shifted right by 5 (N ›› 5)
bcf STATUS,C
rrf hi,f
rrf lo,f ; hi:lo is shifted right by 6 (N ›› 6)
bcf STATUS,C ; now we have to add hi:lo to acc
movf lo, w ; sum 0th bytes
addwf acc + 0,f
movf hi, w ; sum 1st bytes
btfsc STATUS, C
incfsz hi, w
addwf acc + 1, f
clrw ; sum 2nd bytes
btfsc STATUS, C
movlw 1
addwf acc + 2, f
;‹‹‹ New |
SP870.zip
Последний раз редактировалось j-Roger; 16.01.2020 в 12:59.
|
|
|
Сказали "Спасибо" j-Roger
|
|
|
16.01.2020, 13:09
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 723
Сказал спасибо: 363
Сказали Спасибо 803 раз(а) в 377 сообщении(ях)
|
Re: Pic16F870 нужна помощь ассемблерщиков
tomitch, удалось просимулировать, 'voltmeter' ведет себя как положено.
В посте #8 во вложении исходник, взятый из архива (пост #7) и файл *.hex
P.S.
Там еще логический пробник будет себя некорректно вести по причине изменения опоры, ибо я поправил только вольтметр
Последний раз редактировалось j-Roger; 16.01.2020 в 14:51.
|
|
|
Сказали "Спасибо" j-Roger
|
|
|
16.01.2020, 14:51
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,783
Сказал спасибо: 5,557
Сказали Спасибо 25,356 раз(а) в 5,697 сообщении(ях)
|
Re: Pic16F870 нужна помощь ассемблерщиков
Сообщение от tomitch
|
Есть устройство на Pic16F870, рассчитанное на питание 5В, которое и опора для АЦП.
...
Запитал от 2,7В , функционирует и на 20 МГц
|
Негоже так животину тиранить...
__________________
«Совершенство — это не тогда, когда уже нечего больше добавить, а тогда, когда уже нечего отнять.»
/Эйнштейн/
моя домашняя страничка: http://www.eddy.com.ua/
|
|
|
|
16.01.2020, 15:11
|
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 723
Сказал спасибо: 363
Сказали Спасибо 803 раз(а) в 377 сообщении(ях)
|
Re: Pic16F870 нужна помощь ассемблерщиков
Eddy71, можно попробовать приличное охлаждение и по волноводу подвести 1ГГц внешний такт; во будет зверь
|
|
|
|
16.01.2020, 16:39
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,783
Сказал спасибо: 5,557
Сказали Спасибо 25,356 раз(а) в 5,697 сообщении(ях)
|
Re: Pic16F870 нужна помощь ассемблерщиков
Дело не в перегреве, а в том, что с понижением напряжения сильно падает производительность периферии. Она начинает "отваливаться". 20МГц на 2,7в это жестко..
__________________
«Совершенство — это не тогда, когда уже нечего больше добавить, а тогда, когда уже нечего отнять.»
/Эйнштейн/
моя домашняя страничка: http://www.eddy.com.ua/
|
|
|
|
24.01.2020, 00:00
|
|
Гражданин KAZUS.RU
Регистрация: 28.04.2008
Сообщений: 506
Сказал спасибо: 251
Сказали Спасибо 573 раз(а) в 226 сообщении(ях)
|
Re: Pic16F870 нужна помощь ассемблерщиков
Сообщение от tomitch
|
Вопрос решён с помощью soft+MCP1640.
|
Подниму тему. Ещё одна модернизация без импульсника.
Расширен предел измерения напряжения до +27В с помощью насадки на щуп резистора 91кОм и изменения проги.
К сожалению не удалось погасить незначащие нули (с ассемблером на Вы)
Может кто-нибудь скорректирует прогу?
Последний раз редактировалось tomitch; 02.02.2022 в 01:24.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:07.
|
|