- •1. Введение.
- •2. Разработка аппаратного обеспечения.
- •2.3.2. Работа блока цап .
- •2.4. Согласование .
- •2.5.3. Расчет минимального напряжения на выходе модуля
- •2.5.4. Расчет надежности.
- •2.5.5. Расчет потребляемой мощности.
- •2.5.6. Тепловой расчет.
- •2.5.7. Расчет точности коэффициентов усиления.
- •3. Разработка программного обеспечения для pic-процессора.
- •3.1. Структура данных.
- •3.2. Принцип построения программы.
- •3.3 Структурная схема программы.
- •3.3.1 Тело основного цикла.
- •3.3.2. Работа модуля ацп.
- •3.3.3. Работа модуля цап.
- •3.3.4. Работа модуля ачх.
- •3.3.5. Работа модуля вах.
- •3.4. Интерфейсы:
- •3.4.1. Интерфейс общения с rs-232.
- •3.4.2. Интерфейс общения с цаПом max513.
- •3.5. Расчеты:
- •3.5.2.1. Расчет констант для задержки в модуле ацп.
- •3.5.2.2. Расчет констант для задержки в модуле цаПа.
- •4. Разработка программного обеспечения для пк.
- •4.1. Структура данных.
- •4.2. Принцип построения программы.
- •4.3. Структурная схема программы.
- •4.3.1. Модуль отображения.
- •4.3.2. Модуль преобразования Фурье.
- •4.3.3. Модуль ачх.
- •4.3.4. Модуль вах.
- •4.3.5. Интерфейс с асинхронным портом pic-процессора.
- •4.3.6. Модуль работы с файлами.
- •4.3.7. Модуль редактора.
- •4.3.8. Модуль генератора.
- •5. Инструкция по эксплуатации.
- •5.1. Порядок работы.
- •5.2. Управляющие клавиши .
- •5.3. Проверка связи с платой уэип.
- •5.4. Получение новой осциллограммы.
- •5.5. Получение нового ачх.
- •5.6. Получение нового вах.
- •5.7. Преобразование Фурье.
- •5.8. Работа с файлами.
- •5.9. Редактирование сигналов.
- •5.10. Генерация сигналов.
- •6. Заключение.
4.3.6. Модуль работы с файлами.
Программа-интерфейс построена таким образом, что есть возможность сохранить на диске измеренный сигнал или считать ранее сохраненный.
При написании модуля работы с файлами были использованы стандартные процедуры языка С++. Это процедуры нахождения первого файла с данным расширением, нахождения следующего файла с данным расширением, смена текущей директории, удаление и создание файла с выбранным именем. Используя эти процедуры программа сначала переходит в каталог для хранения результатов, затем находит первый файл с расширением hhh (при разработки программа было решено ввести свой формат для сохранения результатов вычислений). Далее найденный файл отображается в верхнем левом углу второго окна. После этого ищется следующий файл с данным расширением и выводится под первым. Подобным образом отображаются все файлы с расширением hhh из выбранной директории. При выводе на экран отображается только имя файла, без его расширения.
После вывода на экран всех файлов запускается процедура обработки нажатия клавиш. С помощью стрелок происходит выбор файла (при нажатии стрелки в буфер загружается имя следующего файла, при нажатии стрелки буфер текущего файла обнуляется, находится первый файл и от него отчитывается значение на 1 меньше предыдущего), при нажатии на клавишу Enter происходит загрузка данных из выбранного файла в массив и выход из модуля обработки файлов, при нажатии клавишу Del происходит затирание файла на который указывает текущий указатель и снова происходит отображение всех файлов данной директории.
Режим записи информации в файл реализован более просто. При передаче управления подпрограмме записи у пользователя спрашивается имя файла для сохранения. И в подпрограмму передаются следующие параметры: имя сохраняемого массива, количество сохраняемых байт, имя файла, в который необходимо сохранить массив. Все эти данные являются входными параметрами для стандартной функции записи в файл.
4.3.7. Модуль редактора.
Модуль редактора был введен в программу для возможности генерировать сигнал любой формы. Основой этого модуля является обработчик нажатия клавиш. После запуска редактора очищается нижнее окно, выводится на него шкала, и появляется графический курсор. Управление курсором осуществляется стрелками. При нажатии на происходит запоминание координаты по оси Y в массиве, увеличивается значение текущего указателя и рисуется горизонтальная линия длиной 2 пиксела, при нажатии клавиш происходит только увеличение (или уменьшение) координаты по оси Y и рисуется вертикальная линия в необходимом направлении. Таким образом можно нарисовать сигнал практически любой формы.
Выход из режима редактора может быть осуществлен 3 способами:
- Нажатие клавиши Esc - отмена режима редактора.
- Нажатие клавиши Enter и достижение курсором правой границы окна - нормальное завершение режима редактора, в котором выдаются запросы о длительности и амплитуде введенного сигнала. Но при нажатии на Enter длительность повторяемого отрезка сигнала будет меньше максимальной.
После нормального завершения режима редактора значения из временного массива данных редактора переписываются в глобальный массив, соответствующий нижнему окну и происходит отображение нарисованного сигнала в нижнем окне.