Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cpture channel
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
hoggar
Задача: yеобходимо определять длины импульсов, поступающих на CAP1.0 - CAP1.3 (Philips LPC2138).

Возникшая проблема: в момент одновременного прихода импульсов на разные каналы захвата обрабатывается только один импульс.

Вопрос: как правильно осуществить обработку входящих импульсов.
etoja
Длительность импульсов сравнима с быстродействием процессора?
hoggar
длительность импульсов меняется от 0.8 мс до 2.2 мс
GetSmart
Вообще-то у этой серии был аппаратный косяк по этому поводу. Заключался в том, что когда при записи "1" битов в регистр T0IR для сброса флагов, происходил новый захват, то он терялся. А вот если несколько захватов происходят очень близко (пока прерывание не дойдёт до момента сброса этих флагов) то они все должны нормально запомниться. Это я проверял на своих 2132 и 2138-х.

Длительность же импульсов насколько я знаю вообще ни на что не влияет. Даже нескольких десятков наносекунд хватит.

Вобщем, на "косячных" LPC-шках никак не сделать корректную обработку всех захватов. Только если внутри прерывания вручную анализировать эти входы, точнее копии этих входов, подключённых снаружи проца к другим нормальным входам. Теоретически это можно сделать если импульсы не очень короткие и не очень частые (1 мс заглаза хватит). Одна хорошая весчь - если хоть один захват происходит, он 100% отработается. А уже после сброса его флага можно вручную анализировать остальные входы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.