Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 07.08.2010, 23:31  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Конфликт прерываний таймера и АЦП

Сообщение от MasterMushi Посмотреть сообщение
Не забывайте что само прерывание очень сильно отбирает процессорное время. Вход и выход кушает драгоценные циклы которых может и не хватить на переход из прерывание в прерывание.
На самом деле не так, главное правильно распределить время АЛУ и ресурсы МК(RAM ROM таймеры ножки итд) между задачами.
Обрабатывать результаты можно где угодно, лишь бы другие задачи в это время не требовали себе ресурсов АЛУ.

Например здесь. формирование импульсов должно проистекать чтрого в начале прерывания, что бы не было джитера, а когда будет обработано АЦП уже мало играет роль.

В этой задаче минимальный период равен 1/30000=33мксек. Следовательно обработка в каждом прерывании может длится примерно 30-32 микросек, что бы успеть выйти и зайти в следующее прерывание по переполнению таймера.
В начале прерывания формируете импульсы и остаётся около 28-30 микросекунд времени на чтение и обработку результатов АЦП.

Делаете так. Организовали счётчик на 4. 33мкс*4=132мкс›104мкс АЦП гарантировано успевает преобразовать за 132 микросекунды. Далее разделение проходов по счётчику на 4 ветки:
За 1 проход прочитали результат АЦП и запустили след преобразование и сложили в буфер, вычислили среднее. поместили результат в промежуточный буфер, начали обработку этого результата. Длительность не более те самые 28-30мкс.
За 2 проход - продолжение обработка результатов АЦП Длительность не более те самые 28-30мкс.
За 3 проход - продолжение обработка результатов АЦП Длительность не более те самые 28-30мкс.
За 4 проход - продолжение обработка результатов АЦП Длительность не более те самые 28-30мкс.

Итого получаете на обработку 4*28 около 110 микросекунд. Если этого мало, разбить на большее количество проходов. Все процессы будут синхронизированы и ничего не наложится друг на друга.

Практически все программы у меня работают в прерываниях, в главном цикле ничего нет.
Есть даже проект на 200 килобайт ассемблера на МЕГЕ128, 3 вложеных прерывания от таймеров, и всё успевает и работает.
Реклама:
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов

Последний раз редактировалось picavr; 08.08.2010 в 00:22.
picavr вне форума  
Непрочитано 08.08.2010, 01:28  
ask_e
Прохожий
 
Регистрация: 31.10.2006
Сообщений: 6
Сказал спасибо: 7
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ask_e на пути к лучшему
По умолчанию Re: Конфликт прерываний таймера и АЦП

Да, хорошая штука ШИМ. Все получилось. Но другие варианты тоже попробую ради интереса, ибо с прерываниями надо уметь дружить. Благодарю всех.
ask_e вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Глюк" AVR таймера от кварца 32768 Гц alexgap Коллекция глюков 23 16.09.2013 07:29
АЦП 12-bit + ATMega32 моделирование в Proteus Flash_vrn Proteus 4 22.05.2010 05:20
Грабли с обработчиками прерываний в AVR _reckless Микроконтроллеры, АЦП, память и т.д 30 11.05.2010 00:36
Проблема с АЦП на PIC16C77 и PIC16F777 SonGoku Микроконтроллеры, АЦП, память и т.д 0 18.01.2010 23:58
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


Часовой пояс GMT +4, время: 08:43.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot