Переделка Microchip-овского частотомера.

Поклонники продукции Microchip Technology Inc тусуются тут.
Закрыто
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Переделка Microchip-овского частотомера.

Сообщение dr.doc »

У Microchip в AN592 описан пример создания частотомера с использованием таймера TMR0 и предделителя. Так вот, собственно, в чем суть проблемы: вместо программной задержки попробовал использовать задержку от таймера TMR1. В Proteus, PIC Simulator IDE и MPLab SIM работает на ура, по разработанному алгоритму. Но! В железе - полная лажа. Прошивка с программной задержкой работает в железе правильно, т.е. на формирователь грешить не могу.
Для чего мне эти проблемы? А все просто - используя в прерывании по переполнению таймера TMR0 регистр, я получаю один временной измерительный интервал и одну погрешность во всем диапазоне измерений.
Участок кода с прерываниями
Спойлер;-----------------------------
; Прерывания
;-----------------------------
org 0x004

movwf w_temp
swapf STATUS,W
movwf s_temp

; Проверим от чего произошло прерывание

btfsc PIR1,TMR1IF
goto No_inc_Count
; Прерывание от переполнения TMR0
inc_Count ; Добавим 1 в случае одновременного протекания
; прерываний
bcf PIR1,TMR1IF ; Сбросим признак прерывания от TMR1
bcf INTCON,T0IF ; Сбросим признак прерывания от TMR0
incf Counter2,F
swapf s_temp,W
movfw STATUS
movfw w_temp
retfie
; Прерывание от переполнения TMR1
No_inc_Count
nop
nop
nop
;nop
banksel TRISA
bcf TRISB,4 ; запретим счет.
banksel PORTA

bsf _END_
btfsc INTCON,T0IF ; Если произошло прерывание от TMR0
goto inc_Count
bcf PIR1,TMR1IF ; Сбросим признак прерывания от TMR1

swapf s_temp,W
movfw STATUS
movfw w_temp
retfie
Может кто сталкивался с подобным?
P.S. А как в Atmel контроллерах выполняются прерывания (в какой последовательности)?
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Реклама
Аватара пользователя
Catcatcat
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Пт янв 13, 2012 21:46:35
Откуда: Днепропетровск
Контактная информация:

Re: Переделка Microchip-овского частотомера.

Сообщение Catcatcat »

Думаю у тебя может быть такая ситуация, что ты не сможешь бит прерывания от таймера ТМР1 сбросить.
Реклама
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: Переделка Microchip-овского частотомера.

Сообщение dr.doc »

Почему? Что этому мешает? В теле основной программы мы находимся в BANK0 и проверяем флаг _END_. Т.е. исключен вход в прерывания в другом банке. А с такой ситуацией я уже сталкивался (вход в прерывания в 1-м банке).
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: Переделка Microchip-овского частотомера.

Сообщение dr.doc »

Полагаю что все читают только "Непрочитанные сообщения"?
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
dr.doc
Это не хвост, это антенна
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Re: Переделка Microchip-овского частотомера.

Сообщение dr.doc »

Всем спасибо, тема закрыта, проблема решена. Причина была чисто аппаратной - возбудился формирователь импульсов. Именно он и гнал на вход частотомера не фронты, а пачки импульсов на переходе. Частота - сотни МГц. При отсутствии сигнала этот уровень не превышал 100 мВ, поэтому мной и игнорировался. А зря.
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Реклама
Закрыто

Вернуться в «PIC»