КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример настройки Таймера0 на генерацию 10-битного ШИМ
В качестве примера запрограммируем Таймер1 на вывод двухканального 10-битного ШИМ с максимально возможной частотой. Двухканальный – означает, что у нас будет два отдельных сигнала, каждый со своей величиной ШИМ. Программный код для конфигурации таймера 1 создадим с помощью мастера CVAVR: 1. Запустите компилятор CodeVisionAVR и кликните по серой шестеренке в панели инструментов - запустится мастер начального кода. 2. Выберите тип МК и частоту кварца (рис.4.1а):
а) б) Рисунок 4.1 – Настройки проекта при задании режимов Таймера 1
3. Щелкните по ярлыку - Таймеры и затем по Таймер 1 4. Сделайте следующие установки: - оставить источник тактирования таймера без изменения - "System Clock"; - выбрать тактирующую частоту равной частоте кварца; - режим ШИМ mode 7 - по Лекции, табл. 7.1; - выходы Out A: и B: установите "Не инвертирующими". 5. Во вкладке Ports установите для битов 4 и 5 режим Out, таким образом, сконфигурировав контакты PD4 и PD5 для работы выходами. Почему именно эти выводы? Потому что, как следует из Лекции, рис.3.1, именно эти выводы имеют имена OC1B и OC1A что означает Output Compare выводы каналов В и А Таймера 1. Вот и все установки для 2-х каналов 10-битного (top = 3FFh) ШИМ на ножках PD4 и PD5. 6. Посмотрим код, полученный мастером, выбрав в меню над вкладками File - Program Preview.
Нас интересуют вот эти строки:
Проанализируем этот код. Настройка PD4, PD5 для работы на выход должна быть очевидной! Далее идут комментарии настройки Таймера1 и строка кода: TCCR1A=0xA3; // 1010 0011 описание этого регистра Лекции, стр. 46. Биты_7_6 выбирают форму сигнала на выводе PD5 (канал А Таймера 1), биты_5_4 – на выводе PD4 (канал B). Биты_1_0 совместно с битами_5_4 регистра TCCR1B определяют режим работы ШИМ по по Лекции, табл. 7.1. В нашем случае: TCCR1B=0x09; // 0000 1001 Значит комбинация 4-х битов определяющая режим ШИМ 0111. По Лекции, табл. 7.1 определяем, что это режим 7, как и было указано мастеру! Биты_2_0 регистра TCCR1B определяют коэф. деления источника тактового сигнала прежде чем он попадет в Таймер_1. У нас это 001 по таблице 48 коэф. деления 1 - т.е. таймер_1 считает с частотой кварца. Скорость счета совместно с разрядностью ШИМ определяют частоту ШИМ сигнала! Значит, частота ШИМ задается коэффициентом деления тактирующего МК сигнала и разрядностью ШИМ. Самостоятельно определите назначение следующих 4 регистров. Рассмотрим еще 4 регистра, в которые нужно записывать желаемую величину ШИМ в виде числа от 0 до 1023: OCR1AH=0x00; OCR1BH=0x00;
Зададим величину ШИМ на выводе PD4, добавив в программу перед строкой while(1){ такие операторы: // вывести ШИМ около 25% на PD4 Чтобы увидеть второй ШИМ сигнал на виртуальном осциллографе SCOPE симулятора VMLAB, нужно в файле проекта vmlab.prj внести добавку: .plot V(PD1) V(PD4) V(PD5) V(DAC) Таблица 4.1 – Варианты заданий к лабораторной работе № 4
Лабораторная работа №5 – Измерение напряжений и токов с помощью АЦП
Дата добавления: 2014-12-23; Просмотров: 710; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |