3.1.1 Описание основных частей программе
В программе можно выделить следующие блоки:
· Блок объявления переменных. В этом блоке описываются основные переменные и флаги.
· Блок инициализации программы. В этом блоке осуществляется первоначальная настройка микроконтроллера. Установка битов управления и направления передачи данных в портах ввода-вывода, инициализация АЦП и последовательного канала.
· Основной цикл программы. Реализует сдвиг октавы, выводит на индикатор величину текущего сдвига, проверяет состояние клавиш, при нажатии или отжатии оных посылает соответствующее сообщение в последовательный порт.
· Обработчик прерывания таймера. Осуществляет сканирование клавиатуры. При нажатии и отжатии клавиш выставляет и сбрасывает соответствующие флаги.
· Обработчик прерывания АЦП. Считывает значения преобразования АЦП. Переводит их из диапазона 0..4096 в диапазон 0..100.
3.1.2 Описание алгоритма работы основной программы
При включении питания начинает выполнение основной программы. В начале нее вызывается процедура инициализации контроллера. Установка битов управления и направления передачи данных в портах ввода-вывода, инициализация АЦП и последовательного порта на скорости 2400 бит в секунду, размером кадра 9 бит (8 бит данных + один стоп-бит), что соответствует стандарту MIDI-связи.
Далее начинается исполнительный блок программы. Происходит зацикливание с помощью бесконечного цикла do while 1. В начале этого цикла происходит проверка на нажатие клавиши программирования сдвига октавы. Если она нажата, то, в соответствии с выбранной первыми четырьмя клавишами музыкальной клавиатуры устанавливается сдвиг. Выбранная величина сдвига отображается на индикаторе. Затем происходит однократный запуск АЦП для считывания значения устанавливаемой пользователем силы нажатия на клавишу. На следующем этапе проверяется состояние флага klo, который отвечает за отпущенные клавиши. Если этот флаг не равен нулю, то есть имеется необработанная отпущенная клавиша, номер этой клавиши с установленным седьмым битом ( в соответствии со стандартом MIDI) посылается через последовательный порт в персональный компьютер. На последнем этапе цикла происходит проверка нажатия новой клавиши. Если такое событие имеет место, то в последовательный порт посылается номер октавы и номер ноты, соответствующие нажатой клавише.
- Введение
- Техническое задание
- 1. Выбор микроконтроллера
- 2. Принцип действия устройства
- 2.1 Описание структурной схемы
- 2.2 Описание принципиальной схемы
- 2.3 Выбор элементной базы
- 3. Разработка программного обеспечения МПС
- 3.1 Описание алгоритма работы устройства
- 3.1.1 Описание основных частей программе
- 3.2 Листинг программы
- Заключение
- 4 Стандарт midi
- Вопрос 10 Стандартный набор инструментов gm. Расширенные стандарты – gs, xg, gm2. Выбор банка с помощью midi-контроллеров
- Домашняя студия: midi-клавиатуры
- 6.1.3. Стандарт midi
- Секцию клавиатурных контроллеров
- 31. Понятие потока событий midi. Цифровой интерфейс. Типы цифровых интерфейсов. Контроллеры.
- Вопрос 15 midi-контроллеры, их назначение и применение.
- Вопрос 3 midi-интерфейс. Передача сигналов по midi, коммутация звуковых устройств. Понятие midi-порта и midi-канала. Что такое velociTi? midi-файл, его разновидности