В дальнейшем, для использования в лабораторной установке БИС ППА платы расширения 5600 будет настроен в режим «0», каналы А и В настраиваются на ввод, канал С на вывод. Код управляющего слова ППА, решающий поставленную задачу, представляет собой константу 0х92.
Итак, в общем случае работа с БИС плат расширения предполагает запись необходимых кодов (констант) в соответствующие регистры или чтение кодов из регистров. Конкретные действия определяются назначением БИС. Очевидно, что в языке программирования необходимо иметь функции записи/чтения кодов регистров БИС.
Использование платы расширения в прикладной программе требует в начале программы сделать так называемое «открытие» платы. Открытие платы расширения представляет собой создание специальной переменной (в виде целого длинного числа (32 разряда)), которое в функциях записи/чтения кодов БИС будет идентификатором конкретной платы расширения с которой идет работа. В наших программах это будет переменная Hdevice объявленная типа long в которую заносится 32 разрядное число с помощью функции OpenDevice(N).
Открытие платы расширения происходит с помощью функции OpenDevice( ), например:
Hdevice = OpenDevice (N);
Где N – десятичный номер платы расширения (0 - N) в списке плат расширения компьютера;
Hdevice - переменная в которой хранится константа (длинное, целое 32 разрядное число);
В конце программы необходимо «закрыть» плату расширения с помощью функции CloseDevice ( ), например:
CloseDevice ( Hdevice );
Тем самым сообщая операционной системе об окончании работы с данной платой расширения в конкретной прикладной программе и давая возможность другим прикладным программам работать с данной платой.
Запись/чтение кодов БИС плат расширения производится с помощью функций ввода/вывода, соответственно:
WriteDeviceData (Hdevice, &DataIO[i], k);
ReadDeviceData (Hdevice, &DataIO[i], k);
Где:
Hdevice – переменная, определяющая плату расширения с которой ведется работа;
DataIO – имя массива данных типа структура в котором располагаются адреса и коды регистров БИС, используемые при записи/чтении. (Будет рассмотрено далее);
DataIO[i] – элемент массива данных, номер которого определяется переменной i;
&DataIO[i] – взять адрес элемента массива данных с номером i;
k – количество элементов массива, начиная с номера i, используемых при работе функции записи/чтения.
Тип данных типа структура используются в дальнейшем как тип данных каждого элемента массива, который используется в функциях записи и чтения регистров БИС.
Структура объединяет несколько переменных, возможно разного типа, в нашем случае одного типа.
Тип данных структура используемых в дальнейшем имеет вид:
typedef struct
{
unsigned short int port, value;
} TDataIO;
Где:
struct – ключевое слово для объявления структуры;
port, value – переменные объявленные (как беззнаковые, целые, короткие (16 разрядов каждая) ) в структуре;
TDataIO – имя переменной типа структура;
Typedef – оператор позволяющий назначать имена новым типам данных.
В целом же эту конструкцию надо рассматривать так:
Имя – TDataIO будет определять тип данных типа структура, рассмотренная выше.
Следовательно, в дальнейшем TDataIO следует рассматривать как тип данных объявленных для каких либо переменных, например в массиве.
Тип данных типа одномерный массив структур будет иметь следующий вид:
TDataIO DataIO [ ] =
{
{ port, value },
{ port, value },
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.