Освоение методики разработки программных приложений в системе программирования С++ Builder 5 на примере создания проекта "Раusе_PPA", страница 4

ü  Функция Button1Click - Разрешение работы таймера:

в функцию обработчика события - нажатие клавиши "Пуск" - заношу разрешение работы таймера (строка 33 файла).

ü  Функция Button2Click – Закрытие формы и завершение приложения:

 (строка 39 файла).

ü  Функция Timer1Timer: Обработка переменной у по заданному алгоритму работы:

в функцию обработчика событий таймера (функция включается каждые 150 мс., если имеется разрешение работы таймера) заносятся операторы (строки 44, ...,54 файла) и значение переменой у выводится на форму и в порт канала С.

ü  Функция OnCreate: открытие платы ППА и её инициализация. Функция заносит в порт 0х103 значение управляющего слова 0х92 (строки 60, ...,62 файла).

ü  Функция OnDestroy: закрытие платы ППА (строка  69 файла).

    1. Компиляция проекта.

Осуществляется нажатием быстрой клавиши Run или клавиши F9.

    1. Включение и остановка проекта.

Включение программы осуществляется одним ClickОм левой кнопки мыши по кнопке Пуск. Выключение программы осуществляется одним ClickОм левой кнопки мыши по кнопке Закрыть.

    1. Отладка проекта

Выполнение программы по шагам для выявления ошибок алгоритмического характера, которые не обнаруживаются при компиляции  и компоновке.

Для этого: курсор подведён к выбранной строке кода файла реализации +Click л.кн.мыши и нажимается клавиша F4.

Прекращение отладки: Ctrl+F2.

j.  Получение распечаток файлов: головной программы, заголовочного и реализации.

Для этого активизируется требуемый файл в окне редактора кода:

ü  Активизация головного файла проекта: Project=>ViewSource

ü  Активизация заголовочного файла: в окне файла реализации Click пр.кн.мыши и выбрать OpenSource/Header File.

Выполняется команда: File=>Print=>Ok

  1. Структура данных для работы с ППА:

Выглядит следующим образом и представляет собой массив:

1) {BASE+3, 0x92}

2) {BASE, 0}

3) {BASE+1, 0}

4) {BASE+2, 0}

Строка 1) – определение управляющего слова ППА (в регистр с адресом BASE+3 посылается управляющее слово 0х92  ==> канал А работает на ввод, канал В на ввод, канал С на вывод, режим «Ноль»).

Строка 2) – определение адреса канала А (в регистр с адресом BASEпосылается константа 0)

Строка 3) – определение адреса канала B (в регистр с адресом BASE+1посылается константа 0)

Строка 4) – определение адреса канала С (в регистр с адресом BASE+2 посылается константа 0).

  1. Описание работы с основными функциями:

*  Функция открытия устройства:

OpenDevice() -----  открыть устройство

Чтобы открыть какое либо устройство (далее по тексту плату), надо как минимум использовать следующую примерную запись  на основе функции открытия платы:

HDevice=OpenDevice(N);

Где:

HDevice – наименование переменной которой ставится в соответствие открываемое устройство.

N – номер открываемой платы

Если необходимо открыть несколько плат, то необходимо повторить эту функцию и используется примерная запись вида:

HDevice1=OpenDevice(2)

и т.д.

*  Функция закрытия устройства:

CloseDevice (HDevice);

Где: HDevice – открытая ранее нами плата.

*  Запись (Посылка) данных в плату (соответствующие регистры):

Используется запись вида: WriteDeviceData(HDevice, &DataIO[i],k);

Где:

WriteDeviceData()

 - сама функция, которая запишет k элементов, начиная с i –го элемента из массива DataIO платы HDevice  в регистры.

*  Функция чтения данных:

Аналогично:

ReadDeviceData(HDevice, &DataIO[i],k);

- прочесть k элементов из массива DataIO платы HDevice, начиная с i-го элемента.

*  Создание массива:

Производится записью вида: TData  DataIO [] =

{

}