Студопедия

КАТЕГОРИИ:


Архитектура-(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.

 

Нас интересуют вот эти строки:

  DDRD=0x30; // PD4 PD5 теперь выходы //.......... // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 12000,000 kHz // Mode: Fast PWM top=03FFh // OC1A output: Non-Inv. // OC1B output: Non-Inv. // Noise Canceler: Off // Input Capture on Falling Edge TCCR1A=0xA3; TCCR1B=0x09; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;  

Проанализируем этот код.

Настройка 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;
OCR1AL=0x00;

OCR1BH=0x00;
OCR1BL=0x00;

  Помните в мастере опцию – “Не инвертирующий”? Выбрав inverted, вы замените величину ШИМ на скважность! "1" и "0" на выходах OC1x просто поменяются местами и задав (записью соответствующего числа в регистры OCR1xx) величину ШИМ например 25 % на выходе вы получите сигнал со скважностью 25% - соответственно величина такого ШИМ сигнала будет 75%.  

 

Зададим величину ШИМ на выводе PD4, добавив в программу перед строкой while(1){ такие операторы:

// вывести ШИМ около 25% на PD4
OCR1BH = 0x00;
OCR1BL = 0xFF; // PWM(PD4) 255/1023 = 24.9(%)

Чтобы увидеть второй ШИМ сигнал на виртуальном осциллографе SCOPE симулятора VMLAB, нужно в файле проекта vmlab.prj внести добавку:

.plot V(PD1) V(PD4) V(PD5) V(DAC)

Таблица 4.1 – Варианты заданий к лабораторной работе № 4

№ вар Таймер Частота, с Скважность, % Вывод на Управление
Величина Кнопки
    46.8 кГц   Индик. Период ↑ ↓
    0.179 Гц   Зел. св. Период ← →
    5.8 к   Кр. св. Скважность ↑ ↓
    732 Гц   Динамик Скважность ← →
    0.715 Гц   Индик. Период ↑ ↓
    732 Гц   Зел. св. Период ← →
    138 Гц   Кр. св. Скважность ↑ ↓
    2.86 Гц   Динамик Скважность ← →
    138 Гц   Индик. Период ↑ ↓
    45 Гц   Зел. св. Период ← →
    22.9 Гц   Кр. св. Скважность ↑ ↓
    138 Гц   Динамик Скважность ← →
    732 Гц   Индик. Период ↑ ↓
    183 Гц   Зел. св. Период ← →
    5.8 кГц   Кр. св. Скважность ↑ ↓
    46.8 кГц   Динамик Скважность ← →

 

Лабораторная работа №5 – Измерение напряжений и токов с помощью АЦП

 




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 710; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.