root / Version 1.3 / RS232_MUX.X / trash_code_unused.txt @ f4f84cf1
Historique | Voir | Annoter | Télécharger (9,401 ko)
1 | f4f84cf1 | Enzo Niro | Section to put temporary code that we use in a close future.... |
---|---|---|---|
2 | |||
3 | |||
4 | ////////////////////////////////////////////////////////////////////////// |
||
5 | //Start of code |
||
6 | |||
7 | |||
8 | |||
9 | |||
10 | //////////////////////////////////////////////////////////// |
||
11 | //Local variables |
||
12 | |||
13 | const char *boot_msg = BOOT_MSG; |
||
14 | |||
15 | cfgPort cfgVCOM1, cfgVCOM2, cfgVCOM3, cfgVCOM4; |
||
16 | uint8_t ledsCfg; |
||
17 | |||
18 | |||
19 | |||
20 | //Output buffer |
||
21 | uint8_t MCOMBuf[256], VCOM1Buf[256], VCOM2Buf[256], VCOM3Buf[256], VCOM4Buf[256]; |
||
22 | //Output buffer index |
||
23 | uint8_t MCOMIndex = 0, VCOM1Index = 0, VCOM2Index = 0, VCOM3Index = 0, VCOM4Index = 0; |
||
24 | //local timer counter for local process (blink led, ect...) |
||
25 | uint32_t timerCnt = 0; |
||
26 | //local timer for counting how many cycles passed since we've got activity on serial port ? |
||
27 | uint32_t serialTimer = 0; |
||
28 | |||
29 | //Counter to make a timeout if all data has passed |
||
30 | uint16_t MCOM_counter = 0; |
||
31 | uint16_t VCOM1_counter = 0; |
||
32 | uint16_t VCOM2_counter = 0; |
||
33 | uint16_t VCOM3_counter = 0; |
||
34 | uint16_t VCOM4_counter = 0; |
||
35 | |||
36 | |||
37 | for(int i = 0; i < 256; i++) |
||
38 | { |
||
39 | MCOMBuf[i] = 0; |
||
40 | VCOM1Buf[i] = 0; |
||
41 | VCOM2Buf[i] = 0; |
||
42 | VCOM3Buf[i] = 0; |
||
43 | VCOM4Buf[i] = 0; |
||
44 | } |
||
45 | |||
46 | |||
47 | PORTD.DIR = 0x01; // DEBUG LED |
||
48 | //PORTMUX.USARTROUTEA = _USART0_REG_WR; //set TX and RX on PD4 and PD5 pins |
||
49 | _PROTECTED_WRITE(CLKCTRL.OSCHFCTRLA, _FREQSEL_REG_WR); //switch to 24 MHz |
||
50 | |||
51 | /////////////////////////////////////////// |
||
52 | //Prepare VCOM configuration |
||
53 | |||
54 | //At first read EEPROM ! |
||
55 | getEEPROMCfg(); //Get serial port configuration |
||
56 | ledsCfg = getDebugLedsConfiguration(); //get debug leds configuration |
||
57 | |||
58 | //And then, read configuration for each port... |
||
59 | |||
60 | readConfiguration(&cfgVCOM1, 0); |
||
61 | readConfiguration(&cfgVCOM2, 1); |
||
62 | readConfiguration(&cfgVCOM3, 2); |
||
63 | readConfiguration(&cfgVCOM4, 3); |
||
64 | |||
65 | /////////////////////////////////////////// |
||
66 | //Interrupt & serial port setup |
||
67 | |||
68 | //Set port with debug leds |
||
69 | |||
70 | initPort1(UART_BAUD_VALUE, (ledsCfg & 0x1), F8BIT_MODE, ONE_STOPBIT, EVEN_PARITY); |
||
71 | |||
72 | //initPort0(UART_BAUD_VALUE, (ledsCfg & 0x1), F8BIT_MODE, ONE_STOPBIT, EVEN_PARITY); //init master port with debug leds |
||
73 | //initPort1(cfgVCOM1.baud, (ledsCfg & 0x2) >> 1, cfgVCOM1.dataByte, cfgVCOM1.stopBit, cfgVCOM1.parity); //init vcom1 port with debug leds |
||
74 | //initPort2(cfgVCOM2.baud, (ledsCfg & 0x4) >> 2, cfgVCOM2.dataByte, cfgVCOM2.stopBit, cfgVCOM2.parity); //init vcom2 port with debug leds |
||
75 | //initPort3(cfgVCOM3.baud, (ledsCfg & 0x8) >> 3, cfgVCOM3.dataByte, cfgVCOM3.stopBit, cfgVCOM3.parity); //init vcom3 port with debug leds |
||
76 | //initPort4(cfgVCOM4.baud, (ledsCfg & 0x16) >> 4, cfgVCOM4.dataByte, cfgVCOM4.stopBit, cfgVCOM4.parity); //init vcom4 port with debug leds |
||
77 | //Timer init |
||
78 | //Setup for interrupt every 25ms |
||
79 | timerInterruptInit(0x2EE0); |
||
80 | |||
81 | sei(); //never forget to enable global interrupt mask ! |
||
82 | |||
83 | /////////////////////////////////////////// |
||
84 | |||
85 | //Debug led on boot sequence |
||
86 | WATCHDOG_RESET; //reset WD counter |
||
87 | bootSequence(); //Launch leds sequence |
||
88 | |||
89 | |||
90 | for(uint8_t i = 0; i < 11; i++) |
||
91 | { |
||
92 | txWrite0(boot_msg[i]); |
||
93 | } |
||
94 | |||
95 | while(1) |
||
96 | { |
||
97 | WATCHDOG_RESET; //Always call this to prevent undesired boot... |
||
98 | |||
99 | |||
100 | /////////////////////////////////////////////////////////////// |
||
101 | //Master Port buffer read |
||
102 | |||
103 | if(portAvailable0() > 0) |
||
104 | { |
||
105 | MCOMBuf[MCOMIndex] = rxRead0(); //store byte into buffer |
||
106 | MCOMIndex++; //increment to next byte |
||
107 | global_n = MCOMIndex; |
||
108 | MCOM_counter = 0; //refresh timeout counter |
||
109 | } |
||
110 | |||
111 | |||
112 | |||
113 | |||
114 | /////////////////////////////////////////////////////////////// |
||
115 | //Virtual Port 1 buffer read |
||
116 | |||
117 | if(portAvailable1() > 0) //check if we have bytes to read |
||
118 | { |
||
119 | VCOM1Buf[VCOM1Index] = rxRead1(); //store byte into buffer |
||
120 | VCOM1Index++; //increment to next byte |
||
121 | VCOM1_counter = 0; //refresh timeout counter |
||
122 | } |
||
123 | |||
124 | |||
125 | |||
126 | /////////////////////////////////////////////////////////////// |
||
127 | //Virtual Port 2 buffer read |
||
128 | |||
129 | if(portAvailable2() > 0) //check if we have bytes to read |
||
130 | { |
||
131 | VCOM2Buf[VCOM2Index] = rxRead2(); //store byte into buffer |
||
132 | VCOM2Index++; //increment to next byte |
||
133 | VCOM2_counter = 0; //refresh timeout counter |
||
134 | } |
||
135 | |||
136 | |||
137 | |||
138 | /////////////////////////////////////////////////////////////// |
||
139 | //Virtual Port 3 buffer read |
||
140 | |||
141 | if(portAvailable3() > 0) //check if we have bytes to read |
||
142 | { |
||
143 | VCOM3Buf[VCOM3Index] = rxRead3(); //store byte into buffer |
||
144 | VCOM3Index++; //increment to next byte |
||
145 | VCOM3_counter = 0; //refresh timeout counter |
||
146 | } |
||
147 | |||
148 | |||
149 | |||
150 | |||
151 | /////////////////////////////////////////////////////////////// |
||
152 | //Virtual Port 4 buffer read |
||
153 | |||
154 | if(portAvailable4() > 0) //check if we have bytes to read |
||
155 | { |
||
156 | VCOM4Buf[VCOM4Index] = rxRead4(); //store byte into buffer |
||
157 | VCOM4Index++; //increment to next byte |
||
158 | VCOM4_counter = 0; //refresh timeout counter |
||
159 | } |
||
160 | |||
161 | //////////////////////////////////////////////////////////////////////// |
||
162 | |||
163 | |||
164 | /////////////////////////////////////// |
||
165 | //When buf is ready |
||
166 | if(MCOM_counter > SERIAL_PORT_TIMEOUT_COUNT) |
||
167 | { |
||
168 | //Send buffer to VCOM |
||
169 | MCOM_sendframe(MCOMBuf, MCOMIndex); |
||
170 | |||
171 | //Clear the buffer |
||
172 | for(uint8_t i = 0; i < MCOMIndex; i++) |
||
173 | { |
||
174 | MCOMBuf[i] = 0; |
||
175 | } |
||
176 | MCOMIndex = 0; //reset index buffer |
||
177 | MCOM_counter = 0; //reset counter |
||
178 | } |
||
179 | |||
180 | |||
181 | /////////////////////////////////////// |
||
182 | //When buf is ready |
||
183 | if(VCOM1_counter > SERIAL_PORT_TIMEOUT_COUNT) |
||
184 | { |
||
185 | //Send buffer to VCOM |
||
186 | VCOM_sendframe(VCOM1Buf, VCOM1Index, VCOM1_INDEX); |
||
187 | |||
188 | //Clear the buffer |
||
189 | for(uint8_t i = 0; i < VCOM1Index; i++) |
||
190 | { |
||
191 | VCOM1Buf[i] = 0; |
||
192 | } |
||
193 | VCOM1Index = 0; //reset index buffer |
||
194 | VCOM1_counter = 0; //reset counter |
||
195 | } |
||
196 | |||
197 | |||
198 | /////////////////////////////////////// |
||
199 | //When buf is ready |
||
200 | if(VCOM2_counter > SERIAL_PORT_TIMEOUT_COUNT) |
||
201 | { |
||
202 | //Send buffer to VCOM |
||
203 | VCOM_sendframe(VCOM2Buf, VCOM2Index, VCOM2_INDEX); |
||
204 | |||
205 | //Clear the buffer |
||
206 | for(uint8_t i = 0; i < VCOM2Index; i++) |
||
207 | { |
||
208 | VCOM2Buf[i] = 0; |
||
209 | } |
||
210 | VCOM2Index = 0; //reset index buffer |
||
211 | VCOM2_counter = 0; //reset counter |
||
212 | } |
||
213 | |||
214 | |||
215 | /////////////////////////////////////// |
||
216 | //When buf is ready |
||
217 | if(VCOM3_counter > SERIAL_PORT_TIMEOUT_COUNT) |
||
218 | { |
||
219 | //Send buffer to VCOM |
||
220 | VCOM_sendframe(VCOM3Buf, VCOM3Index, VCOM3_INDEX); |
||
221 | |||
222 | //Clear the buffer |
||
223 | for(uint8_t i = 0; i < VCOM3Index; i++) |
||
224 | { |
||
225 | VCOM3Buf[i] = 0; |
||
226 | } |
||
227 | VCOM3Index = 0; //reset index buffer |
||
228 | VCOM3_counter = 0; //reset counter |
||
229 | } |
||
230 | |||
231 | |||
232 | /////////////////////////////////////// |
||
233 | //When buf is ready |
||
234 | if(VCOM4_counter > SERIAL_PORT_TIMEOUT_COUNT) |
||
235 | { |
||
236 | //Send buffer to VCOM |
||
237 | VCOM_sendframe(VCOM4Buf, VCOM4Index, VCOM4_INDEX); |
||
238 | |||
239 | //Clear the buffer |
||
240 | for(uint8_t i = 0; i < VCOM4Index; i++) |
||
241 | { |
||
242 | VCOM4Buf[i] = 0; |
||
243 | } |
||
244 | VCOM4Index = 0; //reset index buffer |
||
245 | VCOM4_counter = 0; //reset counter |
||
246 | } |
||
247 | //////////////////////////////////////////////////////////////////////// |
||
248 | |||
249 | //NOTE : Not sure that stuff will be useful... |
||
250 | //Just in case if bytes does not match, clear counter |
||
251 | |||
252 | |||
253 | |||
254 | //Refresh led status |
||
255 | if(abs(getTimerCounts() - timerCnt) >= 25) |
||
256 | { |
||
257 | senseDebugLeds(); //display leds status |
||
258 | timerCnt = getTimerCounts(); //refresh counter |
||
259 | } |
||
260 | |||
261 | //count |
||
262 | if(abs(getTimerCounts() - serialTimer) >= TIMEBASE_COUNT) |
||
263 | { |
||
264 | //prevent incrementing counter if no bytes available... |
||
265 | |||
266 | //For master port |
||
267 | if(MCOMIndex > 0) |
||
268 | MCOM_counter++; |
||
269 | |||
270 | //For virtual port 1 |
||
271 | if(VCOM1Index > 0) |
||
272 | VCOM1_counter++; |
||
273 | |||
274 | //For virtual port 2 |
||
275 | if(VCOM2Index > 0) |
||
276 | VCOM2_counter++; |
||
277 | |||
278 | //For virtual port 3 |
||
279 | if(VCOM3Index > 0) |
||
280 | VCOM3_counter++; |
||
281 | |||
282 | //For virtual port 4 |
||
283 | if(VCOM4Index > 0) |
||
284 | VCOM4_counter++; |
||
285 | |||
286 | |||
287 | if(MCOMIndex >= 255) |
||
288 | MCOMIndex = 0; |
||
289 | |||
290 | if(VCOM1Index >= 255) |
||
291 | VCOM1Index = 0; |
||
292 | |||
293 | if(VCOM2Index >= 255) |
||
294 | VCOM2Index = 0; |
||
295 | |||
296 | if(VCOM3Index >= 255) |
||
297 | VCOM3Index = 0; |
||
298 | |||
299 | if(VCOM4Index >= 255) |
||
300 | VCOM4Index = 0; |
||
301 | |||
302 | |||
303 | serialTimer = getTimerCounts(); //refresh counter |
||
304 | } |
||
305 | } |