blob: 1a213ac2ffbc2910ddc5d2483f32b0950c500c33 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
package body TS1325.LED is
protected body LED_State is
function Get return LED_Colour is
State: Byte;
Red_On, Green_On: Boolean;
begin
Inport (LED_Port, State);
Green_On := (State and Green_Bit) = Green_Bit;
Red_On := (State and Red_Bit) /= Red_Bit;
if not (Green_On or Red_On) then
return Off;
elsif Green_On and not Red_On then
return Green;
elsif Green_On and Red_On then
return Yellow;
else
return Red;
end if;
end Get;
procedure Set (Col: in LED_Colour) is
State: Byte;
begin
Inport (LED_Port, State);
case Col is
when Off =>
State := (State and not Green_Bit) or Red_Bit;
when Green =>
State := State or Green_Bit or Red_Bit;
when Yellow =>
State := (State or Green_Bit) and not Red_Bit;
when Red =>
State := State and not (Green_Bit or Red_Bit);
end case;
Outport (LED_Port, State);
end Set;
end LED_State;
end TS1325.LED;
|