Revision 271

View differences:

branch/euphrasie_auguste/Emb_App/SessionM32C_E8a_system.ini
3 3
[RESET_RELEASE]
4 4
ENABLE=0
5 5
[CPU_SELECT]
6
DEVICE=M30879FL
6
DEVICE=M30865FJ
7 7
EMUSEL=0
8
MCU_GROUP=M32C__87 Group
8
MCU_GROUP=M32C__86 Group
9 9
[POWER_SUPPLY]
10 10
VOLTAGE_5_0=1
11 11
VOLTAGE_3_3=0
12 12
[FW_LOCATE]
13
FWADDRESS=f000
13
FWADDRESS=f800
14 14
RAMADDRESS=04
15 15
[WDT]
16 16
WDT_USE=0
branch/euphrasie_auguste/Emb_App/programme_principal_etud.c
134 134
void assser_tourelle(void);
135 135
void asser_roue_vitesse(void);
136 136
void decode_int(void);
137
void capteur(void);
137 138

  
138 139
short i;
139 140
short touche;
......
150 151
float dist_mur_droit;
151 152

  
152 153
float k_V = 1.0;
153
short commande_V_max = 40;
154
short commande_V_max = 100;
154 155
short commande_V;
155 156

  
156
unsigned short num_piste;
157
unsigned short num_piste;
158
unsigned short cap_touch;
157 159

  
158 160
void main()
159 161
{
......
164 166
		switch(num_piste)
165 167
     	   {
166 168
     	   	case 1: 
167
				 terrain_vert();
168
     	   	     break;	
169
				 terrain_vert();	break;	
169 170
			case 2: 
170
     	   	     terrain_bleu();
171
                 break;
171
     	   	     terrain_bleu();	break;
172 172
			case 3: 
173
     	   	     terrain_rouge();
174
                 break;
173
     	   	     terrain_rouge();	break;
175 174
			case 4: 
176
     	   	     terrain_noir();
177
                 break;
175
     	   	     terrain_noir();	break;
178 176
			case 5: 
179
				 terrain_vert();
180
     	   	     break;
177
				 terrain_vert();	break;
181 178
			case 6: 
182
     	   	     terrain_bleu();
183
                 break;
179
     	   	     terrain_bleu();	break;
184 180
			case 7: 
185
     	   	     terrain_rouge();
186
                 break;
181
     	   	     terrain_rouge();	break;
187 182
			case 8: 
188
     	   	     terrain_noir();
189
                 break;
183
     	   	     terrain_noir();	break;
190 184
		   }
191 185
    }
192 186
}
......
196 190

  
197 191
void terrain_vert(void){
198 192
	while((num_piste == 1) || (num_piste == 5)){
199
		for(i=0;i<50;i++){	assser_tourelle();	dly_tsk(10);}
193
		commande_V_max = 0;
194
		for(i=0;i<100;i++){	assser_tourelle();	dly_tsk(10);}
200 195
		periph_command('T', 0);
201 196
		while((periph_requete('M') >> 15) == 0 )	dly_tsk(50); 				// attente feux vert
197
		periph_command('D', 0);
198
		periph_command('V', 60);
199
		dly_tsk(250);
202 200
		while((num_piste == 1) || (num_piste == 5)){
203
			
204 201
			assser_tourelle();
205 202
			asser_roue_vitesse();
203
			capteur();
206 204
			
207
			
205
			switch(cap_touch)
206
     	   {
207
     	   	case 86: //ligne droite
208
				 k_D = 1.0;
209
				 commande_V_max = 60;
210
				 distance_centre = 700;	break;
211
			case 74 :
212
			case 82 :
213
			case 66 :
214
			case 67 : //virage
215
				 k_D = 1.25;
216
				 commande_V_max = 40;
217
				 distance_centre = 800;	break;
218
			default :
219
				 k_D = 1.25;
220
				 commande_V_max = 40;
221
				 distance_centre = 650;	break;
222
		   }
208 223
			num_piste = (periph_requete('M') << 8) >> 8;
209 224
			dly_tsk(50);
210 225
		}
......
213 228

  
214 229
void terrain_bleu(void){
215 230
	while((num_piste == 2) || (num_piste == 6)){
216
		for(i=0;i<50;i++){	assser_tourelle();	dly_tsk(10);}
231
		for(i=0;i<100;i++){	assser_tourelle();	dly_tsk(10);}
217 232
		periph_command('T', 0);
218 233
		while((periph_requete('M') >> 15) == 0 )	dly_tsk(50); 				// attente feux vert
234
		periph_command('D', 0);
235
		periph_command('V', 60);
236
		dly_tsk(250);
219 237
		while((num_piste == 2) || (num_piste == 6)){
238
			assser_tourelle();
239
			asser_roue_vitesse();
240
			capteur();
220 241
			
221
			
222
			
223
			
224
			
242
			switch(cap_touch)
243
     	   {
244
     	   	case 86: //ligne droite
245
				 k_D = 1.3;
246
				 commande_V_max = 50;
247
				 distance_centre = 500;	break;
248
			case 74 :
249
			case 82 :
250
			case 66 :
251
			case 67 : //virage
252
				 k_D = 1.4;
253
				 commande_V_max = 25;
254
				 distance_centre = 500;	break;
255
			default :
256
				 k_D = 1.25;
257
				 commande_V_max = 50;
258
				 distance_centre = 500;	break;
259
		   }
225 260
			num_piste = (periph_requete('M') << 8) >> 8;
226
			dly_tsk(50);
261
			dly_tsk(40);
227 262
		}
228 263
	}
229 264
}
230 265

  
231 266
void terrain_rouge(void){
232 267
	while((num_piste == 3) || (num_piste == 7)){
233
		for(i=0;i<50;i++){	assser_tourelle();	dly_tsk(10);}
268
		for(i=0;i<100;i++){	assser_tourelle();	dly_tsk(10);}
234 269
		periph_command('T', 0);
235 270
		while((periph_requete('M') >> 15) == 0 )	dly_tsk(50); 				// attente feux vert
236 271
		while((num_piste == 3) || (num_piste == 7)){
272
			assser_tourelle();
273
			asser_roue_vitesse();
274
			capteur();
237 275
			
238
			
239
			
240
			
241
			
276
			switch(cap_touch)
277
     	   {
278
     	   	case 86: //ligne droite
279
				 k_D = 1.0;
280
				 commande_V_max = 100;
281
				 distance_centre = 500;	
282
				 break;
283
			case 74 :
284
			case 82 :
285
			case 66 :
286
			case 67 : //virage
287
				 k_D = 1.25;
288
				 commande_V_max = 15;
289
				 distance_centre = 500;	
290
				 break;
291
			default :
292
				 k_D = 1.0;
293
				 commande_V_max = 100;
294
				 distance_centre = 500;	break;
295
			}
242 296
			num_piste = (periph_requete('M') << 8) >> 8;
243 297
			dly_tsk(50);
244 298
		}
......
247 301

  
248 302
void terrain_noir(void){
249 303
	while((num_piste == 4) || (num_piste == 8)){
250
		for(i=0;i<50;i++){	assser_tourelle();	dly_tsk(10);}
304
		for(i=0;i<100;i++){	assser_tourelle();	dly_tsk(10);}
251 305
		periph_command('T', 0);
252 306
		while((periph_requete('M') >> 15) == 0 )	dly_tsk(50); 				// attente feux vert
253 307
		while((num_piste == 4) || (num_piste == 8)){
......
263 317
}
264 318

  
265 319

  
320
void capteur(void){
321
	cap_touch = (periph_requete('C') >> 8);
322
}
266 323

  
267 324

  
268 325

  
269 326

  
270

  
271 327
void decode_int(void){
272 328
	//short i = 0;
273 329
	//while(touche != '#'){
......
294 350
	
295 351
	if(commande_D < 0)	commande_D = commande_D * (-1);
296 352
	
297
	commande_V = commande_V_max - (k_V * (commande_D/10));
353
	//commande_V = commande_V_max - (k_V * (commande_D/10));
298 354
	
299
	if(commande_V < 0)	commande_V = commande_V * (-1);
355
	//if(commande_V < 0)	commande_V = commande_V * (-1);
300 356
	
301
	periph_command('V', commande_V);
357
	if(Bp_D == 1){commande_V_max = 0;}
358
	
359
	periph_command('V', commande_V_max);
302 360
}
303 361

  
304 362

  
......
314 372
	ports_mcu();
315 373
    lcd_init();
316 374
	periph_init();
317
	periph_nom("#AutoTest*");
375
	periph_nom("#Auguste*");
318 376
    can_init();
319 377
    clavier_init(1);
320 378
	capture_init();
......
322 380
	sta_tsk(ID_periph_rx);
323 381
}
324 382

  
383

  
325 384
void acqui()
326 385
{
327 386
	LED_V=!LED_V;
328 387
	//consigne_T = ad00;
329
	commande_V_max = ad01/10;
388
	//commande_V_max = ad01/10;
330 389
}
331 390

  
332 391
void assser_tourelle(void){

Also available in: Unified diff