Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Ход работы. Используемые регистры:Используемые регистры: – TBPRD: определяет частоту сигнала; – TBCTL: устанавливает операционный режим и время предделителя; – AQCTLA: определяет форму сигнала ePWM1A. Порядок выполнения. Создайте новый файл проекта. Используя Code Composer Studio, создайте новый проект CCS, названный Lab7.pjt в C:\DSP2833x_V4\Labs (или в другой папке, которая доступна Вам). Откройте файл Lab6.c из C:\DSP2833x_V4\Labs\Lab6 и сохраните его как Lab7_1.c в C:\DSP2833x_V4\Labs\Lab7. Определите размер системного стека. В окне проекта, правое нажатие на проекте «Lab7» и выбор «Properties». В категории «C/C++ Build», «C2000 Linker», «Basic Options» устанавливаем размер стека C в 0x400. Как мы делали в предшествующих лабораторных работах, добавим некоторые файлы, предусмотренные в библиотеке, в проект. В C/C++ вкладке, правым нажатием на проекте «Lab7» и выбор “Link Files to Project”. Перейдите в папку: «C:\tidcs\c28\dsp2833x\v131\ DSP2833x_headers \source» и добавьте:DSP2833x_GlobalVariableDefs.c Повторите шаги “Link Files to Project”. Из C:\tidcs\c28\dsp2833x\v131\DSP2833x_common\source добавьте: – DSP2833x_CodeStartBranch.asm; – DSP2833x_SysCtrl.c; – DSP2833x_ADC_cal.asm; – DSP2833x_usDelay.asm; – DSP2833x_CpuTimers.c; – DSP2833x_PieCtrl.c; – DSP2833x_PieVect.c; – DSP2833x_DefaultIsr.c; Из C:\tidcs\c28\dsp2833x\v131\DSP2833x_headers\cmd, добавьте в «Lab7»: DSP2833x_Headers_nonBIOS.cmd. Опции компиляции проекта. Мы также должны указать маршрут поиска файлов include для C–Компилятора. Правое нажатие в проекте «Lab7» и выбор «Properties». Выбор «C/C++ Build», «C2000 Compiler», «Include Options». В окне: “Add dir to #include search path”, добавляем следующие строки: – C:\tidcs\C28\dsp2833x\v131\DSP2833x_headers\include; – C:\tidcs\c28\DSP2833x\v131\DSP2833x_common\include; Примечание. Используйте кнопку «Add», чтобы добавить новые маршруты. (рисунок 2.47) Закройте окно свойств нажимая <OK>. Компиляция загрузка и тестирование. Нажмите кнопку «Rebuild Active Project» или выполните: Project → Rebuild All (Alt +B) и наблюдайте работу инструментальных средств в окне build. Если Вы получаете ошибки или предупреждения необходима доработка. Загрузите выходной файл на сеанс отладчика: Target → Debug Active Project и откройте вкладку «Debug». Проверьте код исходной программы «Lab7_1.c» в отладочном окне и убедитесь, что синяя стрелка для текущей позиции счетчика команд устанавливается под линией “void main(void)”. Запустите работу в реальном времени Target → Run. Если код не работает как, он работал в Lab6, не продолжайте следующие шаги. Возвратитесь и попытайтесь обнаружить, какой шаг процедуры Вы пропустили. Модифицируйте Исходную Программу. В CCS, переключитесь на «C/C++» вкладку. В функции "Gpio_select()", установите в мультиплексном регистре линию GPIO0, чтобы разрешить выходной сигнал ePWM1A. В «main()», только после вызова функции "Gpio_select()", поставьте вызов новой функции "Setup_ePWM1A()". Также, добавьте новое описание функции в начале «Lab7_1.c»:
void Setup_ePWM1A(void);
В конце Lab7_1.c, добавьте определение новой функции "Setup_ePWM1A()". Мы будем использовать эту функцию, чтобы проинициализировать ePWM1, для генерации прямоугольного сигнала 1 kHz. Мы должны проинициализировать следующие регистры:
– EPwm1Regs.TBCTL; – EPwm1Regs.TBPRD; – EPwm1Regs.AQCTLA.
Чтобы установить регистры, мы можем использовать или обращение к группе битов "all" или побитовое обращение "bit". Инструкция "all" потребует от нас вычислять шестнадцатиричный номер для всех 16 битов. Используя "bit" – структуру, мы можем оставить вычисление индивидуальных битовых областей C–компилятору. Например, инструкция для установки операционного способа "up/down" должна выглядеть так:
EPwm1Regs.TBCTL.bit.CTRMODE = 2;
Кроме того, мы должны вычислить величину для регистра TBPRD. Если мы используем "up/down" – счет то формула для ePWM1A:
(2.8)
Коэффициент 1/2 должен использоваться при "up/down" способе действия. Запомните, что TBPRD – 16–битовый регистр, следовательно, максимальное число для TBPRD – (216 –1) или 65535. Теперь запустите устройство, F28335ControlCard должна сгенерировать сигнал PWM 1kHz для тактовой частоты 150 MHz. Ваше задание – вычислить соответствующие числа для CLKDIV, HSPCLKDIV и TBPRD. В функции "Setup_ePWM1A()" проинициализируйте:
EPwm1Regs.TBCTL.bit.CLKDIV; EPwm1Regs.TBCTL.bit.HSPCLKDIV; EPwm1Regs.TBCTL.bit.CTRMODE = 2; // up–down mode EPwm1Regs.TBPRD; EPwm1Regs.AQCTLA.all = 0x0006; // zero = set; period = clear Перекомпилируйте, загрузите, протестируйте. Теперь вновь создайте, загрузите и протестируйте новый проект. Программа должна все еще показывать двоичный счетчик из Lab6 в светодиодах LD1–LD4. Новое дополнение – 1 kHz – сигнал на выходе ePWM1A (контакт J6–1 в Периферийной плате исследователя). Используйте осциллограф, чтобы проверить этот сигнал. Это должно выглядеть примерно как на рисунке 2.48. Дополнительное упражнение. Эксперимент с другими частотами изменяя величину для регистра TBPRD.
Рисунок 2.48 – Сигнал на выходе ePWM1A
|