software_APIs  1.0.0
gpios.h
Go to the documentation of this file.
1 
4 #ifndef GPIO_C_HEADER_FILE
5 #define GPIO_C_HEADER_FILE
6 
15 void GPIOs_configureAll(enum gpio_mode config){
16  #ifndef ARM
17  reg_mprj_io_37 = config;
18  reg_mprj_io_36 = config;
19  reg_mprj_io_35 = config;
20  #endif
21  reg_mprj_io_34 = config;
22  reg_mprj_io_33 = config;
23  reg_mprj_io_32 = config;
24  reg_mprj_io_31 = config;
25  reg_mprj_io_30 = config;
26  reg_mprj_io_29 = config;
27  reg_mprj_io_28 = config;
28  reg_mprj_io_27 = config;
29  reg_mprj_io_26 = config;
30  reg_mprj_io_25 = config;
31  reg_mprj_io_24 = config;
32  reg_mprj_io_23 = config;
33  reg_mprj_io_22 = config;
34  reg_mprj_io_21 = config;
35  reg_mprj_io_20 = config;
36  reg_mprj_io_19 = config;
37  reg_mprj_io_18 = config;
38  reg_mprj_io_17 = config;
39  reg_mprj_io_16 = config;
40  reg_mprj_io_15 = config;
41  reg_mprj_io_14 = config;
42  reg_mprj_io_13 = config;
43  reg_mprj_io_12 = config;
44  reg_mprj_io_11 = config;
45  reg_mprj_io_10 = config;
46  reg_mprj_io_9 = config;
47  reg_mprj_io_8 = config;
48  reg_mprj_io_7 = config;
49  reg_mprj_io_6 = config;
50  reg_mprj_io_5 = config;
51  reg_mprj_io_4 = config;
52  reg_mprj_io_3 = config;
53  reg_mprj_io_2 = config;
54  reg_mprj_io_1 = config;
55  reg_mprj_io_0 = config;
56  // GPIOs_loadConfigs();
57 }
63  reg_mprj_xfer = 1;
64  while ((reg_mprj_xfer&0x1) == 1);
65 
66 }
77 void GPIOs_configure(int gpio_num,enum gpio_mode config){
78  switch(gpio_num){
79  case 0 :
80  reg_mprj_io_0 = config; break;
81  case 1 :
82  reg_mprj_io_1 = config; break;
83  case 2 :
84  reg_mprj_io_2 = config; break;
85  case 3 :
86  reg_mprj_io_3 = config; break;
87  case 4 :
88  reg_mprj_io_4 = config; break;
89  case 5 :
90  reg_mprj_io_5 = config; break;
91  case 6 :
92  reg_mprj_io_6 = config; break;
93  case 7 :
94  reg_mprj_io_7 = config; break;
95  case 8 :
96  reg_mprj_io_8 = config; break;
97  case 9 :
98  reg_mprj_io_9 = config; break;
99  case 10:
100  reg_mprj_io_10 = config; break;
101  case 11:
102  reg_mprj_io_11 = config; break;
103  case 12:
104  reg_mprj_io_12 = config; break;
105  case 13:
106  reg_mprj_io_13 = config; break;
107  case 14:
108  reg_mprj_io_14 = config; break;
109  case 15:
110  reg_mprj_io_15 = config; break;
111  case 16:
112  reg_mprj_io_16 = config; break;
113  case 17:
114  reg_mprj_io_17 = config; break;
115  case 18:
116  reg_mprj_io_18 = config; break;
117  case 19:
118  reg_mprj_io_19 = config; break;
119  case 20:
120  reg_mprj_io_20 = config; break;
121  case 21:
122  reg_mprj_io_21 = config; break;
123  case 22:
124  reg_mprj_io_22 = config; break;
125  case 23:
126  reg_mprj_io_23 = config; break;
127  case 24:
128  reg_mprj_io_24 = config; break;
129  case 25:
130  reg_mprj_io_25 = config; break;
131  case 26:
132  reg_mprj_io_26 = config; break;
133  case 27:
134  reg_mprj_io_27 = config; break;
135  case 28:
136  reg_mprj_io_28 = config; break;
137  case 29:
138  reg_mprj_io_29 = config; break;
139  case 30:
140  reg_mprj_io_30 = config; break;
141  case 31:
142  reg_mprj_io_31 = config; break;
143  case 32:
144  reg_mprj_io_32 = config; break;
145  case 33:
146  reg_mprj_io_33 = config; break;
147  case 34:
148  reg_mprj_io_34 = config; break;
149  case 35:
150  reg_mprj_io_35 = config; break;
151  case 36:
152  reg_mprj_io_36 = config; break;
153  case 37:
154  reg_mprj_io_37 = config; break;
155  default:
156  break;
157  }
158 }
159 
171 void GPIOs_writeLow(unsigned int data){reg_mprj_datal = data;}
183 void GPIOs_writeHigh(unsigned int data){reg_mprj_datah = data;}
198 void GPIOs_writeLowHigh(long data){
199  reg_mprj_datal = data;
200  reg_mprj_datah = data <<32;
201 
202 }
209 unsigned int GPIOs_readHigh(){
210  #ifdef ARM
211  return reg_mprj_datah & 0x7; // because with ARM the highest 3 GPIOsare not used by the design it is used by flashing
212  #else
213  return reg_mprj_datah;
214  #endif
215 }
222 unsigned int GPIOs_readLow(){return reg_mprj_datal;}
234 void GPIOs_waitLow(unsigned int data){while (GPIOs_readLow() != data);}
246 void GPIOs_waitHigh(unsigned int data){
247  #ifdef ARM
248  data = data&0x7; // because with ARM the highest 3 GPIOs are not used by the design it is used by flashing
249  #endif
250  while (GPIOs_readHigh() != data);
251 }
264 void GPIOs_waitLowWithMask(unsigned int data,unsigned int mask){while (GPIOs_readLow() & mask != data);}
277 void GPIOs_waitHighWithMask(unsigned int data,unsigned int mask){
278  #ifdef ARM
279  data = data&0x7; // because with ARM the highest 3 GPIOs are not used by the design it is used by flashing
280  #endif
281  while (GPIOs_readHigh() != data);
282 }
283 //
284 #ifndef DOXYGEN_SHOULD_SKIP_THIS
285 unsigned int get_active_gpios_num(){
286  #ifdef ARM
287  return 34;
288  #else
289  return 37;
290  #endif
291 }
292 unsigned int get_gpio_num_bit(){
293  #ifdef SKY
294  return 13;
295  #elif GF
296  return 10;
297  #endif
298 }
299 #endif /* DOXYGEN_SHOULD_SKIP_THIS */
300 
301 #ifdef DOXYGEN_DOCS_ONLY
302 
321 enum gpio_mode {};
322 
323 #endif
324 #endif // GPIO_C_HEADER_FILE
void GPIOs_configureAll(enum gpio_mode config)
Definition: gpios.h:15
void GPIOs_waitLowWithMask(unsigned int data, unsigned int mask)
Definition: gpios.h:264
void GPIOs_writeHigh(unsigned int data)
Definition: gpios.h:183
void GPIOs_writeLow(unsigned int data)
Definition: gpios.h:171
unsigned int GPIOs_readHigh()
Definition: gpios.h:209
void GPIOs_waitLow(unsigned int data)
Definition: gpios.h:234
void GPIOs_configure(int gpio_num, enum gpio_mode config)
Definition: gpios.h:77
void GPIOs_writeLowHigh(long data)
Definition: gpios.h:198
void GPIOs_loadConfigs()
Definition: gpios.h:62
void GPIOs_waitHighWithMask(unsigned int data, unsigned int mask)
Definition: gpios.h:277
void GPIOs_waitHigh(unsigned int data)
Definition: gpios.h:246
gpio_mode
Definition: gpios.h:321
unsigned int GPIOs_readLow()
Definition: gpios.h:222