реклама на сайте
подробности

 
 
> Проблемы со скоростью АЦП у PIC.
angir
сообщение Nov 17 2005, 16:45
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 49
Регистрация: 8-02-05
Из: 61RUS
Пользователь №: 2 510



ДД.
Столкнулся с следуйщей проблемой: не хватает скорости АЦП у pic. Исходно задача стоит следуйщим образом: есть прерывание по таймеру, срабатывает со скоростью 12000 раз в секунду. Надо используя прерывание в том числе запускать АЦП и получать с него данные.
Алгоритм работы с АЦП у меня следуйщий: при инициализации портов и т.д. задаю режим работы - от внутреннего опорника, 0-й канал. После чего при каждом прерывании выполняется следуйщий алгоритм: начало преобразования (adcon -> go), выход из прерывания. При следуйщем прерывании - контролируем бит go - если не сбросился, ждем следуйщего прерывания и по новой.... Так вот: если прерывание идет с частотой например 1000 раз в секунду - все отлично работает. А на 12000 раз в секунду - вылетает из ацп постоянный код, не зависящий от входного напряжения. Сам сигнал на входе - очень медленно меняющийся, снаружи стоят кондеры в 0.1 и 1 мкф. Бился и так и этак. Пробывал и такую схему: в 1-ом прерывании программирую АЦП, во втором - запускаю, далее контролирую состояние бита GO/~Done, пока не снимется и по новой. Получается таже балалайка. Временные параметры на зарядку внутреннего конденсатора в пике - соблюдены.... Может кто-нибудь что-нибудь подскажет????? 2-ой день сижу с этой проблемой. Я конечно понимаю, что она, возможно и пустяковая, но тем не менее...
Сама программа - на ассемблере... оргинал кода привести сейчас не могу - по памяти боюсь ошибиться примерно вот такая конструкция.Сам пик - 16f676.... Прошу извинения за отсутствие формата - сам движок форума переформатирует нормальный формат.

start_irq

BTFSC ad_status,0
goto start_ad

movlw 0x41
movwf ADCON
BSF ad_status,0
goto next_irq

start_ad

BTFSC ad_status,1
goto wait_ad
BSF ADCON, GO
BSF ad_status,1
goto next_irq

wait_ad

BTFSC ADCON,GO
goto next_irq
MOVF adresh,w
movwf ad_result
CLRF ad_status

next_irq

retfie

Сообщение отредактировал angir - Nov 17 2005, 16:46
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01361 секунд с 7
ELECTRONIX ©2004-2016