Informatics Point
Информатика и проектирование
Основное назначение ассемблерного кода - измерение входного сигнала с одинаковыми интервалами времени и обеспечение требуемой скорости вычислений 500 отсчетов в секунду. Сначала мы программируем Timer0 на непрерывную работу и генерацию прерываний с интервалом 1 мс. С каждым прерыванием перезапускается Timer0, считывается отсчет входного сигнала и увеличивается значение переменной c2ms, которая используется для синхронизации с кодом C. На этой стадии разработки кода первыми строками кода на C были:
while(c2ms<2);ms = 0;= iAdc0;
Изначально c2ms равно нулю и код C зациклится на строчке while(c2ms<2). После 1 ms таймер Timer0 вырабатывает прерывание, затем c2ms увеличивается на 1. После следующей 1 мс переменная c2ms увеличивается до 2. Теперь условие (c2ms<2) больше не выполняется, сбрасывается на 0 счетчик c2ms, и производятся вычисления фильтра. После этого код C помещает результаты в цепочку переменных, представляющих собой последовательные результаты, готовые для дальнейшей обработки с помощью повторной итерации. Завершает цикл команда printf( .), которая посылает результат на дисплей компьютера. Последующая обработка данных на PC может быть очень простой - например, просто вывод результата на графический дисплей, - либо сколь угодно сложной.
Для повышения точности результата период прерываний таймера Timer0 был сокращен до 1/32 мс и данные были накоплены в iAdc0 для того, чтобы получить большее число измерений за то же время. Кроме того, условие цикла было переделано в c2ms<64, так что процессор дожидается 64 измерений, прежде чем выполнить цикл фильтрации.
Величина iAdc0 сохранена в iAdc00 для дальнейшей обработки, затем iAdc0 сбрасывается, и теперь эта переменная готова к получению следующих 64 измерений. Ниже приведен код на ассемблере. Этот улучшенный алгоритм обеспечивает получение графика, показанного на рис. 5 внизу.
: push ACCPSWTR0 ;Остановить счетчик T0.
mov TH0,#0fdh ;Загрузить 1/32ms.TL0,#0f6hTR0 ;Запустить T0.a,ADCDATALa,iAdc0+3iAdc0+3,aa,ADCDATAH ;прибавить результат
;преобразования к iAdc0.a,#0fh
addc a,iAdc0+2iAdc0+2,aaa,iAdc0+1
mov iAdc0+1,aADCCON2,#0 ;Начать преобразование.ADCCON2,#10hc25ms ;Увеличить счетчик ms.
IntT0R: pop PSWACC
Программа на ассемблере
Другие среды разработки
Так же можно использовать более специализированную среду LABView.
Рис. 6. Результаты ЭКГ в программе LABView
Рис. 7, Результаты ЭКГ в программе LaView
Усилители:
Рассмотрены вопросы стабилизации режима усилителей по постоянному току и, в частности, описываемых измерительных усилителей серии AD62x и нового усилителя AD8225.
Для усилительных устройств существенным является стабильность их режима по постоянному току [1], при котором обеспечиваются линейность характеристик и, вообще, способность устройств выполнять свои усилительные функции.
Входы большинства операционных усилителей и других устройств являются выводами баз биполярных транзисторов. Примерами могут быть измерительный усилитель AD620 фирмы Analog Devices [3], микросхемы для измерения электрической энергии [4] и другие устройства.
Проектирование линзовой афокальной насадки для маломощного лазера
Основой любого оптического прибора, в том числе и лазера,
является оптическая система, которая представляет собой совокупность оптических
деталей (линз, зер ...
Электромагнитная совместимость средств связи
Исходные данные для прогнозирования ЭМС
Мощность передатчика РРЛ, Вт;
Частота сигнала передатчика РРЛ, МГц;
Высота установки антенны передатчика РР ...
Проектирование автоматизированного реабилитационного устройства, предназначенного для реабилитации кистевого сустава человека
В современном мире нас повсюду окружают новейшие достижения техники.
Невозможно представить ни одну из сфер деятельности человека без использования
мехатрон ...
Меню сайта
2024 © www.informaticspoint.ru