КАТЕГОРИИ: Архитектура-(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) |
Автоматическая генерация проекта
Запустите интегрированную среду разработки программ CodeVisionAVR. Из меню выберите File – New – Project – OK. На вопрос Do you want to use CodeWizardAVR ответьте Yes. (Wizard – мудрец, чародей). В появившемся диалоге во вкладке Chip выберите тип контроллера (Atmega8 или Atmega16) и установите частоту впаянного на плату кварца (для МК2 это 12 MHz). Program Type – Application (Тип программы – приложение). Во вкладке Ports должны быть запрограммированы порты на ввод информации (In) или на вывод (Out) в зависимости от подключенных к портам устройств. В соответствии со схемой контроллера MK2 к порту В подключены катоды светодиодных индикаторов, а к порту D – управление их сегментами, следовательно эти порты программируем на вывод. Начальное состояние Output Value (выводимая величина) устанавливаем нулевым. К выводам порта А PA7 и PA6 подключены реле, а к PA1 – динамик, поэтому их программируем на вывод, Output Value = 0 иначе реле сразу сработают. Остальные выводы порта А будут использоваться как входы АЦП, поэтому их программируем на вход, подтяжку (Pullup) – внутреннее подключение к источнику питания через резистор 20К во избежание неопределенного состояния порта – не производим. К выводам порта С подключена клавиатура, поэтому их программируем на вход. Подтяжку не производим, так она реализована внешними резисторами 10К к напряжению питания. Во вкладке External IRQ (Interrupt Request – внешние прерывания) можно указать внешние источники прерываний. Так если выбрать INT2 Enabled (дана возможность) то при установке Falling Edge (по спадающему фронту) при переходе (INT2/AIN0)PB2 входа порта В из высокого в низкое состояние будет вызвана функция с именем ext_int2_isr(), которая должна быть оформлена в тексте программы. Такое действие можно вызвать, например, нажатием кнопки, заземляющей при нажатии данный вывод. Найдите на корпусе процессора выводы, через которые можно вызывать внешние прерывания INT0 и INT1. В нашем контроллере внешние прерывания не используются, поэтому ничего во вкладке не меняйте. Timer 0 – это 8-битнй таймер, имеющий низкую точность. Будет использоваться для переключения разрядов светодиодного индикатора. В качестве источников импульсов (Clock Source) выбираем System Clock, тогда таймер будет работать с частотой кварцевого генератора, уменьшенной в 1, 8, 64, 256 или 1024 раз, в зависимости от значения делителя, что при частоте кварца 12 МГц дает нам частоты 12000 КГц, 1500 КГц, 187.5 КГц, 64.875 КГц или 11.718 КГц. Выберем Clock Value = 187.5 КГц. При поступлении импульсов на вход таймера с такой частотой, его счетчик будет увеличиваться на 1 при получении каждого импульса. Выбираем Mode: Normal Top, что означает нормальный режим работы – счет от 0 до FF. Для вызова прерывания при переполнении выбрать Overflow Interrupt. Вызываемая функция будет иметь имя interrupt [TIM0_OVF] void timer0_ovf_isr(void) и будет вызываться с частотой 187500 Гц / 256 = 732 раза в секунду. При 6 цифрах в индикаторе будет происходить 732 / 6 = 122 зажигания каждой цифры в секунду. Так как частота выше 60, то мерцания индикатора заметно не будет. Timer1 – 16-битный таймер. Максимальное значение счетчика FFFF = 216 - 1 = 65535. Соответственно имеет большУю точность. В УМК используется для организации часов. На вход таймера подадим системные тактовые импульсы, в нашем случае 12 МГц. Прерывание будем вызывать не при переполнении, а при достижении счетчиком значения 12000. 12 000 000 / 12 000 = 1000 вызовов в секунду. Поместив в функцию прерывания счетчик, получим значение времени в миллисекундах, прошедшего с момента включения МК – переменная itime. Установки таймера 1: Clock Source: System Clock Clock Value: 12000 kHz – установить частоту кварца Mode: Normal Top = FFFFh – но мы будем останавливать счет раньше – при достижении 12000 Interrupt on: Compare A Match – совпадение при сравнении Comp. A: 2ee0 – число, равное 2*4096+14*256+14*16 = = 12000, заносится в специальный регистр таймера, при совпадении с которым вызывается прерывание Вызываемая функция будет иметь имя interrupt [TIM1_COMPA] void timer1_compa_isr(void). Вкладка Project Information – занести свою фамилию и группу. Вкладка ADC (Analog to Digital Converter) – установка режима работы аналого-цифрового преобразователя. ADC Enabled – Выбрать работу АЦП Interrupt – Вызывать прерывание по окончании счета Nose Canceller – Подавлять шумы при работе АЦП Volt Ref AREF pin – Референсное напряжение будет взято с вывода AREF Можно выбрать AVCC pin – сравнение будет производится с напряжением питания или Int.cap.on AREF – использовать внутренний источник референсного напряжения 2.54 В. Clock 187.500 kHz – Частота тактового генератора для АЦП Данные во вкладках LCD (Liquid Crystal Display), I2C, 1Wire, USART, Analog Comparator, SPI оставляем без изменений, так как их не используем. Запускаем генерацию проекта: Диалог со вкладками не закрываем(!) а из его меню выбираем File – Generate Save and Exit – будут вызваны три диалога: 1. Save C Compiler Source File – 2. Save C Compiler Project File – во всех случаях укажите одно и тоже имя файла, 3. Save Workspace – например, TimerTest Предлагаемые типы файлов не изменяйте! После того, как генерация проекта будет завершена и в окне откроется сгенерированный текст файла на языке С, следует установить режимы работы программатора.
Дата добавления: 2014-12-23; Просмотров: 645; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |