OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [lib/] [libbsp/] [i386/] [ts_386ex/] [tools/] [ts_1325_ada/] [ts1325_test.adb] - Blame information for rev 609

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
--
2
--  A test program that uses the TS1325 Button and LED packages.
3
--
4
 
5
with Text_IO;
6
 
7
with I386_Ports;
8
use I386_Ports;
9
 
10
with TS1325.LED;
11
use TS1325.LED;
12
 
13
with TS1325.Button;
14
use TS1325.Button;
15
 
16
with TS1325.Parallel;
17
use TS1325.Parallel;
18
 
19
procedure Ts1325_Test is
20
 
21
   Test_Parallel_Interval: Duration := 1.0;
22
   Read_Button_Interval: Duration := 1.0;
23
   Read_LED_Interval: Duration := 1.0;
24
   Set_LED_Interval: Duration := 0.2;
25
 
26
   task Test_Parallel is
27
      entry Start;
28
   end Test_Parallel;
29
 
30
   task body Test_Parallel is
31
      W_Data, R_Data: I386_Ports.Byte := 0;
32
   begin
33
      accept Start;
34
 
35
      loop
36
         W_Data := W_Data + 1;
37
         Write_Parallel_Port (W_Data);
38
         Read_Parallel_Port (R_Data);
39
         Text_IO.Put_Line ("Parallel Port Loopback: Data Write = " &
40
                           I386_Ports.Byte'Image (W_Data) &
41
                           ", Data Read = " &
42
                           I386_Ports.Byte'Image (R_Data));
43
         delay Test_Parallel_Interval;
44
      end loop;
45
   end Test_Parallel;
46
 
47
   task Read_Button is
48
      entry Start;
49
   end Read_Button;
50
 
51
   task body Read_Button is
52
   begin
53
      accept Start;
54
 
55
      loop
56
         if Is_Button_Pressed then
57
            Text_IO.Put_Line ("Button is pressed.");
58
         else
59
            Text_IO.Put_Line ("Button is not pressed.");
60
         end if;
61
         delay Read_Button_Interval;
62
      end loop;
63
   end Read_Button;
64
 
65
   task Read_Colour is
66
      entry Start;
67
   end Read_Colour;
68
 
69
   task body Read_Colour is
70
   begin
71
      accept Start;
72
 
73
      loop
74
         Text_IO.Put_Line ("Reading LED colour as " &
75
                           LED_Colour'Image (LED_State.Get));
76
         delay Read_LED_Interval;
77
      end loop;
78
   end Read_Colour;
79
 
80
   task Set_Colour is
81
      entry Start;
82
   end Set_Colour;
83
 
84
   task body Set_Colour is
85
      Colour: LED_Colour := Off;
86
   begin
87
      accept Start;
88
 
89
      loop
90
         LED_State.Set (Colour);
91
 
92
         if Colour = LED_Colour'Last then
93
            Colour := LED_Colour'First;
94
         else
95
            Colour := LED_Colour'Succ (Colour);
96
         end if;
97
 
98
         delay Set_LED_Interval;
99
      end loop;
100
   end Set_Colour;
101
 
102
begin
103
   Text_IO.Put_Line ("TS-1325 Utilities Test");
104
   Text_IO.Put_Line ("======================");
105
   Text_IO.New_Line;
106
   Text_IO.Put_Line ("-=> Press the button to begin.");
107
   Text_IO.New_Line;
108
 
109
   Wait_For_Button_Press;
110
 
111
   Set_Colour.Start;
112
   Read_Colour.Start;
113
   Read_Button.Start;
114
   Test_Parallel.Start;
115
end Ts1325_Test;

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.