]> rtime.felk.cvut.cz Git - arc.git/blob - boards/ti_tms570ls/examples/tms570_hdk_led/config/IoHwAb_Digital.c
Added an example of LED Blinker for the TMS570LS31x HDK
[arc.git] / boards / ti_tms570ls / examples / tms570_hdk_led / config / IoHwAb_Digital.c
1 /*\r
2 * Configuration of module: IoHwAb (IoHwAb_Digital.c)\r
3 *\r
4 * Created by:              \r
5 * Copyright:               \r
6 *\r
7 * Configured for (MCU):    MPC551x\r
8 *\r
9 * Module vendor:           ArcCore\r
10 * Generator version:       3.1.3\r
11 *\r
12 * Generated by Arctic Studio (http://arccore.com) \r
13 */\r
14 \r
15 #include "IoHwAb.h"\r
16 #include "IoHwAb_Internal.h"\r
17 #if defined(USE_DIO)\r
18 #include "Dio.h"\r
19 #else\r
20 \r
21 #if defined(USE_DET)\r
22 #include "Det.h"\r
23 #endif\r
24 \r
25 \r
26 #error "DIO Module is needed by IOHWAB"\r
27 #endif\r
28 /************************************ External Device Drivers *************************************/\r
29 \r
30 /***************************************** Signal states ******************************************/\r
31 \r
32 boolean IoHwAb_DigitalSignal_Led4_Locked = IOHWAB_UNLOCKED;\r
33 IoHwAb_LevelType IoHwAb_DigitalSignal_Led4_Saved = IOHWAB_LOW;\r
34 const IoHwAb_LevelType IoHwAb_DigitalSignal_Led4_Default = IOHWAB_LOW;\r
35 \r
36 /**************************************** Digital outputs *****************************************/\r
37 \r
38 /********************************** DigitalSignal_Led4 functions **********************************/\r
39 \r
40 Std_ReturnType IoHwAb_Set_Digital_DigitalSignal_Led4(IoHwAb_LevelType newValue, IoHwAb_StatusType *status) {\r
41         Std_ReturnType rv = E_OK;\r
42         Dio_LevelType setLevel = 0;\r
43         IoHwAb_QualityType q = IOHWAB_GOOD;\r
44 \r
45         if (IOHWAB_UNLOCKED == IoHwAb_DigitalSignal_Led4_Locked) {\r
46                 setLevel = (Dio_LevelType) newValue;\r
47         } else {\r
48                 setLevel = (Dio_LevelType) IoHwAb_DigitalSignal_Led4_Saved;\r
49         }\r
50 \r
51         Dio_WriteChannel(DIO_CHANNEL_NAME_LED_CHANNEL, setLevel);\r
52         status->quality = q;\r
53 \r
54         return rv;\r
55 }\r
56 \r
57 Std_ReturnType IoHwAb_Dcm_DigitalSignal_Led4(uint8 action, IoHwAb_LevelType value) {\r
58         imask_t state;\r
59         Std_ReturnType rv = E_OK;\r
60 \r
61         switch (action) {\r
62         case IOHWAB_RETURNCONTROLTOECU:\r
63                 IoHwAb_DigitalSignal_Led4_Locked = IOHWAB_UNLOCKED;\r
64                 break;\r
65 \r
66         case IOHWAB_RESETTODEFAULT:\r
67                 IoHwAb_LockSave(state);\r
68                 IoHwAb_DigitalSignal_Led4_Saved = IoHwAb_DigitalSignal_Led4_Default;\r
69                 IoHwAb_DigitalSignal_Led4_Locked = IOHWAB_LOCKED;\r
70                 IoHwAb_LockRestore(state);\r
71                 break;\r
72 \r
73         case IOHWAB_FREEZECURRENTSTATE:\r
74                 if (IOHWAB_UNLOCKED == IoHwAb_DigitalSignal_Led4_Locked) {\r
75                         IoHwAb_LockSave(state);\r
76                         IoHwAb_DigitalSignal_Led4_Saved = Dio_ReadChannel(DIO_CHANNEL_NAME_LED_CHANNEL);\r
77                         IoHwAb_DigitalSignal_Led4_Locked = IOHWAB_LOCKED;\r
78                         IoHwAb_LockRestore(state);\r
79                 }\r
80                 break;\r
81 \r
82         case IOHWAB_SHORTTERMADJUST:\r
83                 IoHwAb_LockSave(state);\r
84                 IoHwAb_DigitalSignal_Led4_Saved = value;\r
85                 IoHwAb_DigitalSignal_Led4_Locked = IOHWAB_LOCKED;\r
86                 IoHwAb_LockRestore(state);\r
87                 break;\r
88 \r
89         default:\r
90                 rv = E_NOT_OK;\r
91                 break;\r
92         }\r
93 \r
94         return rv;\r
95 }\r
96 \r
97 /***************************************** Digital inputs *****************************************/\r
98 \r
99 /************************************* Parameterized digital **************************************/\r
100 \r
101 Std_ReturnType IoHwAb_Set_Digital(IoHwAb_SignalType signal, IoHwAb_LevelType newValue, IoHwAb_StatusType *status) {\r
102 \r
103         IOHWAB_VALIDATE_RETURN(IOHWAB_SIGNAL_IS_VALID_DIGITAL_OUTPUT(signal), IOHWAB_DIGITAL_SET_ID, IOHWAB_E_PARAM_SIGNAL, E_NOT_OK);\r
104 \r
105         switch (signal) {\r
106         case IOHWAB_SIGNAL_DIGITALSIGNAL_LED4: {\r
107                 return IoHwAb_Set_Digital_DigitalSignal_Led4(newValue, status);\r
108         }\r
109                 break;\r
110 \r
111         default: {\r
112                 return E_NOT_OK;\r
113         }\r
114                 break;\r
115         }\r
116 }\r
117 \r
118 Std_ReturnType IoHwAb_Get_Digital(IoHwAb_SignalType signal, IoHwAb_LevelType *value, IoHwAb_StatusType *status) {\r
119 \r
120         IOHWAB_VALIDATE_RETURN(IOHWAB_SIGNAL_IS_VALID_DIGITAL_INPUT(signal), IOHWAB_DIGITAL_GET_ID, IOHWAB_E_PARAM_SIGNAL, E_NOT_OK);\r
121 \r
122         switch (signal) {\r
123         default: {\r
124                 return E_NOT_OK;\r
125         }\r
126         }\r
127 }\r
128 \r