Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Ход работы. – сгенерируйте 1 KHz прямоугольный волновой сигнал на ePWM1A с переменной шириной импульса от 0 до 100%;





Задание:

– сгенерируйте 1 KHz прямоугольный волновой сигнал на ePWM1A с переменной шириной импульса от 0 до 100%;

– отобразите сигнал на осциллографе.

Используемые регистры:

– TBPRD: задает частоту сигнала;

– TBCTL: устанавливает операционный режим и время предделителя;

– CMPA: устанавливает ширину импульса на ePWM1A;

– AQCTLA: определяет форму сигнала на ePWM1A.

Порядок выполнения.

Создайте файл проекта.

В «C/C++» вкладке CCS откройте файл проекта Lab7.pjt.

Откройте файл «Lab7_1.c» и сохраните его как «Lab7_3.c»

Исключите файл «Lab7_2.c» из build. Используйте правое нажатие мыши в файле «Lab7_2.c», и разрешите “Exclude File(s) from Build”.

В файле «Lab7_3.c», отредактируйте функцию «Setup_ePWM1A()». Мы снова будем использовать режим счета «вверх–вниз A», так что мы можем использовать существующую установку для битовой области «TBCTL.CTRMODE». Тем не менее, теперь мы хотели бы установить ePWM1A в 1 по “CMPA – up match” и очистить ePWM1A по событию “CMPA – down match”. Измените установку для регистра AQCTLA соответственно.

В функции “Setup_ePWM1A()” добавьте строку, чтобы проинициализировать регистр CMPA на 0, который определит ширину импульса 100%:

EPwm1Regs.CMPA.half.CMPA = 0;

 

В «main()», измените вызов функции «ConfigCpuTimer()», чтобы определить период 100 микросекунд для таймера 0:

 

ConfigCpuTimer(&CpuTimer0, 150, 100);

Установка CpuTimer0 из Лабораторного упражнения Lab6. Он проинициализирован, чтобы запросить обработку прерываний один раз каждые 100 микросекунд. Теперь мы можем использовать свою подпрограмму обработки прерываний «cpu_timer0_isr()», чтобы увеличить величину в регистре CMPA пока он не достигнет величины в TBPRD – таким образом мы изменим ширину импульса постепенно от 100% на 0%. Если Вы хотите, Вы можете добавить вторую последовательность, чтобы увеличить ширину импульса ePWM1A снова в обратной последовательности до100%.

Примечание. Все регистры ePWM1загружены. Чтобы сравнить текущую величину CMPA с TBPRD, Вы можете использовать:

 

if (EPwm1Regs.CMPA.half.CMPA < EPwm1Regs.TBPRD)

Скомпилируйте, загрузите и протестируйте.

Теперь скомпилируйте, загрузите и протестируйте модифицированный проект. Осциллограмма сигнала ePWM1A должна выглядеть как на рисунке 2.51.

 

Рисунок 2.51 – Осциллограмма сигнала ePWM1A

 

Результат. Ширина импульса сигнала должна изменяться постепенно между 100% и 0 %.

Date: 2015-06-06; view: 480; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию