You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
@IMXO
Схему в Протеусе не рисовал, а те, что были - давно утеряны. Да там схема-то особо и не нужна. RB3 - вход (последовательный 1 wire), все остальные - выходы на сегменты и выбор знака. В проекте Протеуса подтянул RB3 к питанию, остальные - выходы, в никуда. В общем, схема как в 16f505_test. В программе на первую секунду зажигаются все сегменты (на выходах на сегменты все нули), потом индицируется " - - " (только два нуля) и без последовательного кода на входе не меняется. Линии выбора знака индикатора должны меняться с частотой примерно 60 Гц.
элементарно. сигнал усилить в усилителем в 20раз и пропустить через триггер Шмитта на компараторе , подать на вход INT МК и включить прерывание по нарастающему фронту,
запустить любой таймер на тик 1мс , по отработке таймера инкриминировать беззнаковый счетчик разрядностью 16 бит
по отработке прерывания по фронту из нового значения счетчика вычесть старое значение счетчика = период с точностью +/-1мс
новое значение счетчика сохранить как старое.
@IMXO , вот например, дешифратор динамического семисегментного индикатора. Написан в 2003-м под pic16c, для pic16f исправлен OPTION в 2015-м в MPLab 8.40. В ASM есть коментарии. RB3 - вход (последовательный 1 wire), все остальные - выходы на сегменты и выбор знака.
С этим проектом с единственным из всех Протеус запустил заново созданный проект (даже ещё без имени и не сохранённый), открылось окно окно Sourse Code и может долго шагать по шагам, дважды вызвав подпрограмму. Но всё равно если RUN, то вылетает с той же ошибкой в DLL на совершенно безобидной операции то ли RLC, то ли MOVE (по которым он уже дважды прошёл), - не отловил, т.к. при вылете в ошибку закрываются все окна Sourse Code.
DC_BAG1.rar