Изучение принципов программирования платы расширения содержащей параллельный периферийный адаптер с использованием интегрированной среды разработки языка программирования С++ Builder 5, страница 7

4.5.2 Добавить в проект обработчик событий функции FormCreate:

          Щелкнуть два раза левой кнопкой мыши по свободному от объектов месту визуальной формы (в файл реализации проекта добавится заготовка этой функции и пустое тело функции) (см. рисунок 14).

4.5.3 Добавить в проект обработчик событий функции FormDestroy:

          В редакторе кода сделать активной визуальную форму.

          В инспекторе объектов перейти на панель Events объекта Form.

          Выбрать пункт On Destroy и щелкнуть по нему 1 раз левой кнопкой мыши. Справа от пункта On Destroy появится пустое окно белого цвета. Установить курсор в это окно и щелкнуть два раза левой кнопкой мыши по этому окну (в файле реализации проекта добавится заготовка этой функции – имя функции и пустое тело функции) (см. рисунок 14).

Рисунок 14

4.6 Программирование файла реализации проекта

4.6.1 На рисунке 15 показана распечатка файла реализации проекта PausePPAUnit1.cpp, который создан на основе файла PauseUnit1.cpp (см. Методические указания № 5 рисунок 20).

4.6.2 Строка 5 – внесение директивы BASE 0x100  (см. рисунок 15).

4.6.3 Строка 14 – объявление переменной HDevice.

4.6.4 Строки 23 – 29 объявление и инициализация структуры данных для работы с ППА.

4.6.5 Строки 53, 54 в функции Timer1Timer – вывод переменной «y» в порт канала» С ППА.

4.6.6 Строки 60, 62 в функции Form Create – открытие платы ППА и инициализация ППА.

4.6.7  Строка 69 в функции Form Destroy – закрытие платы ППА.

1: //---------------------------------------------------------------------------

2:

3: #include <vcl.h>

4: #pragma hdrstop

5: #define BASE 0x100

6: #include "Pause_PPA.h"

7: #include "DriverDataIO.h"

8: //---------------------------------------------------------------------------

9: #pragma package(smart_init)

10: #pragma resource "*.dfm"

11: TForm1 *Form1;

12: unsigned short int y;

13: //  Объявление указателя для ППА

14:    long HDevice;

15: //---------------------------------------------------------------------------

16: __fastcall TForm1::TForm1(TComponent* Owner)

17:       : TForm(Owner)

18: {

19: y = 0;

20: }

21: //---------------------------------------------------------------------------

22: // Инициализация структуры данных

23:   TDataIO DataIO[] =

24:    {

25:      {BASE+3, 0x92},// Адрес и упр.слово ППА, реж. 0, A<--,B<--,C-->

26:      {BASE,0},      // Адрес канала А

27:      {BASE+1,0},    // Адрес канала В

28:      {BASE+2,0}     // Адрес канала С

29:    };

30: void __fastcall TForm1::Button1Click (TObject *Sender)

31: {

32: // Разрешение работы таймера

33:   Timer1 -> Enabled = true;

34: }

35: //---------------------------------------------------------------------------

36: void __fastcall TForm1::Button2Click (TObject *Sender)

37: {

38: // Закрытие формы и завершение приложения

39:  Close();

40: }

41: //---------------------------------------------------------------------------

42: void __fastcall TForm1::Timer1Timer (TObject *Sender)

43: {

44: // Инверсия y

45: y = ~y;

46: // Выделение разряда D0 переменной y

47: y = y&0x01;

48: // Вывод значения переменной "y" на форму

49: Label2 -> Caption = "y =" + AnsiString(y);

50: // Окрашивание переменной "y" в красный цвет

51: Label2 -> Font -> Color = clRed;

52: // Вывод значения переменной "y" в порт канала "C"

53: DataIO[3].value = y;

54: WriteDeviceData (HDevice, &DataIO[3], 1);

55: }

56: //---------------------------------------------------------------------------

57: void __fastcall TForm1::FormCreate (TObject *Sender)

58: {

59:  // Открытие платы ППА

60: HDevice = OpenDevice (1);

61: // Инициализация ППА

62:   WriteDeviceData ( HDevice, &DataIO[0], 1 );