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


Полезное:

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


Категории:

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






Лабораторная работа 2.11





Тема: независимая модуляция на ePWM1A и ePWM1B

Цель: сгенерировать прямоугольный волновой сигнал 1 kHz в линии ePWM1A и второй сигнал в ePWM1B с независимой модуляцией ширины импульса. Сигнал ePWM1A будет управляться регистром CMPA, а ePWM1B – регистром CMPB. На этот раз мы также будем изменять в реальном времени величины в CMPA и в CMPB во время работы программы.

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

Откройте Файл Проекта

Откройте Lab7.pjt в «C/C++» вкладке Code Composer Studio.

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

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

В функции «Setup_ePWM1()», измените строку, чтобы проинициализировать регистр EPwm1Regs.AQCTLB. Новая установка для AQCTLB должна устанавливать ePWM1B в 1 если CMPB считает вверх и очищать ePWM1B если CMPB – считает вниз.

После строки инициализации регистра TBPRD, добавьте две строки, для установки регистров CMPA и CMPB, чтобы первоначально сгенерировать ширину импульса 50%.

 

EPwm1Regs.CMPA.half.CMPA = EPwm1Regs.TBPRD / 2;

EPwm1Regs.CMPB = EPwm1Regs.TBPRD / 2;

 

Имейте в виду различие между структурными типами данных двух регистров. Это различие определяется секундным действующим режимом, называющимся “High Resolution PWM” (HRPWM), который доступен только для сигнальной линии ePWMxA. Для того, чтобы поддерживать этот режим, TI расширили структурный тип для регистра CMPA.

В функции «cpu_timer0_isr()», удалите все инструкции, для изменения ширины импульса регистром CMPA. Мы будем использовать фиксированную ширину импульса для этого упражнения, первоначально 50% для как ePWM1A так и для ePWM1B.

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

Теперь скомпилируете, загрузите и протестируйте модифицированный проект. На экране осциллографа сигналы ePWM1A и ePWM1B должны выглядеть похожими на следующий график Рисунок (2.53).

 

 

Рисунок 2.53 – Сигналы ePWM1A и ePWM1B

 

Остановите выполнение кода:

– Target → Halt, followed by;

– Target → Reset → Reset CPU.

Теперь откройте Контрольное Окно View → Watch.

В окне «Watch 1» добавьте две переменные:

EPwm1Regs.CMPA.half.CMPA

EPwm1Regs.CMPB

 

Разрешите способ отладки в реальном времени:

Target → Advanced → Enable Silicon Realtime Mode.

На вашем экране появится предупреждение, чтобы сообщить Вам, что теперь Вы войдете в режим отладки в реальном времени. Ответьте на это окно «Yes».

В контрольном окне (рисунок 2.54) нажмите иконку «Continuous Refresh».

 

 

Рисунок 2.54 – Вид контрольного окна

 

Перезапустите ваш тест, на этот раз с новой последовательностью:

Scripts → Realtime Emulation Control → Run_Realtime_with_Restart Контрольное окно должно отображать текущие величины для CMPA и CMPB (рисунок 2.55).

 

 

Рисунок 2.55 – Контрольное окно с величинами CMPA и CMPB

Теперь, пока код все еще работает, измените величины в CMPA и CMPB на 9375 и 28125 соответственно.

Результат должен выглядеть как на рисунке 2.56.

 

 

Рисунок 2.56 – Сигналы ePWMA и ePWMB

Попробуйте другие комбинации CMPA и CMPB и проверьте изменение осциллограммы.

Если Вы сделали это упражнение, необходимо полностью остановить DSC. Мы к настоящему времени работаем в режиме реального времени, поэтому должны выполнить другую командную последовательность:

Scripts Realtime → Emulation Control → Full_Halt_with_Reset.

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



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