Revision 461

View differences:

branch/decroux/Emb_App.tws
14 14
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\programme_principal_etud.c" 
15 15
[WORKSPACE_FILE_STATES]
16 16
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\conf_noyau.cfg" 75 75 1430 351 0 2 
17
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\crt0mr.a30" -8 -30 1596 539 1 1 
18
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\programme_principal_etud.c" 0 0 1596 539 0 0 
17
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\crt0mr.a30" 0 0 1596 539 0 1 
18
"E:\tp_info6_2018_decroux\tp_info6\Emb_App\programme_principal_etud.c" -8 -30 1596 539 1 0 
19 19
"E:\tp_info6_2018_decroux\tp_info6\bsp\periph.c" 75 75 1430 351 0 3 
20 20
"E:\tp_info6_2018_decroux\tp_info6\bsp\uart0.c" 100 100 1430 351 0 4 
21 21
[LOADED_PROJECTS]
branch/decroux/Emb_App/SessionM32C_E8a_system.ini
25 25
[Target]
26 26
M32C E8a SYSTEM=Renesas Communications
27 27
[USER_DATA]
28
RESET=ff001a
28
RESET=ff001c
branch/decroux/Emb_App/programme_principal_etud.c
126 126
unsigned int dis;
127 127
unsigned int capt=0x0000;
128 128
unsigned int Mode;
129
int cpt=0;
129 130

  
130 131

  
131 132

  
......
177 178
			}
178 179
			else if(dis>5000 || dis<400 || capt==0x7210) //Pour passer les trous et les tonneau 
179 180
			{
181
				LED_J=1;
182
				dly_tsk(100);
180 183
				commRoues.data.id='D'; // Commande de l'angle des roues 
181 184
				commRoues.data.rtr=0; //Indique une requete d'?criture
182 185
				commRoues.data.val= 0; // Correction de la disance
......
219 222
		{	
220 223
			if(dis>1000 ) //Pour passer les trous 
221 224
			{
225
				LED_J=1;
226
				dly_tsk(100);
222 227
				commRoues.data.id='D'; // Commande de l'angle des roues 
223 228
				commRoues.data.rtr=0; //Indique une requete d'?criture
224 229
				commRoues.data.val= 0; // Correction de la disance
......
265 270
//Fonction vitesse rouge
266 271
void vitesse3(unsigned int valcapt)
267 272
{
268
		CanFrame commVit;
269
		//vitesse pour passer le tramplin piste rouge
270
		if(valcapt== 0x6a08)
273
	CanFrame commVit;
274
	//vitesse pour passer le tramplin piste rouge
275
	if(valcapt== 0x6a08)
276
	{
277
		commVit.data.id='V';
278
		commVit.data.rtr=0;
279
		commVit.data.val=45; 
280
		snd_dtq (CanTx,commVit.msg);
281
	} 
282
	//Ralentissemet apr?s tramplin piste rouge
283
	else if(valcapt==0x7608||valcapt==0x4203) 
284
	{
285
		commVit.data.id='V';
286
		commVit.data.rtr=0;
287
		commVit.data.val=15;
288
		snd_dtq (CanTx,commVit.msg);
289
	}	
290
	else
291
	{
292
		commVit.data.id='V';
293
		commVit.data.rtr=0;
294
		commVit.data.val=30; //Reprise de vitesse une fois la voiture stabilis? piste rouge
295
		snd_dtq (CanTx,commVit.msg);
296
	}	
297
}	
298
			
299
		
300

  
301
int vitesse2(int capt)
302
{
303
	CanFrame commVit;
304
	if(capt==0x5605)
305
	{
306
		cpt=cpt+1;
307
		if(cpt==24)
271 308
		{
272 309
			commVit.data.id='V';
273
			commVit.data.rtr=0;
274
			commVit.data.val=45; 
310
			commVit	.data.rtr=0;
311
			commVit.data.val=0; 
275 312
			snd_dtq (CanTx,commVit.msg);
276
		} 
277
		//Ralentissemet apr?s tramplin piste rouge
278
		else if(valcapt==0x7608||valcapt==0x4203) 
313
			return cpt;
314
		}
315
		else
279 316
		{
280 317
			commVit.data.id='V';
281
			commVit.data.rtr=0;
282
			commVit.data.val=15;
318
			commVit	.data.rtr=0;
319
			commVit.data.val=30; 
283 320
			snd_dtq (CanTx,commVit.msg);
284
		}	
285
		else 
286
		{	commVit.data.id='V';
287
			commVit.data.rtr=0;
288
			commVit.data.val=25; //Reprise de vitesse une fois la voiture stabilis? piste rouge
289
			snd_dtq (CanTx,commVit.msg);
290
		}		
321
		}
322
	}
323
	else
324
	{
325
		commVit.data.id='V';
326
		commVit	.data.rtr=0;
327
		commVit.data.val=30; 
328
		snd_dtq (CanTx,commVit.msg);
329
	}
330
	return cpt;
331
	
291 332
}
292 333

  
293
//Fonctin vitesse verte et bleu
294
void vitesse1()
334
//Fonctin vitesse verte 
335
int vitesse1(int capt)
295 336
{
296 337
	CanFrame commVit;
297
	commVit.data.id='V';
298
	commVit.data.rtr=0;
299
	commVit.data.val=30; 
300
	snd_dtq (CanTx,commVit.msg);
338
	if(capt==0x5605)
339
	{
340
		cpt=cpt+1;
341
		if(cpt==9)
342
		{
343
			commVit.data.id='V';
344
			commVit	.data.rtr=0;
345
			commVit.data.val=0; 
346
			snd_dtq (CanTx,commVit.msg);
347
			return cpt;
348
		}
349
		else
350
		{
351
			commVit.data.id='V';
352
			commVit	.data.rtr=0;
353
			commVit.data.val=42; 
354
			snd_dtq (CanTx,commVit.msg);
355
		}
356
	}
357
	else
358
	{
359
		commVit.data.id='V';
360
		commVit	.data.rtr=0;
361
		commVit.data.val=42; 
362
		snd_dtq (CanTx,commVit.msg);
363
	}
364
	return cpt;
301 365
}
302
//Lecture couleur de la piste et feu
366

  
367
//Lecture couleur de la piste et du feu
303 368
unsigned int lecture_piste()
304 369
{
305
	
306
		CanFrame Mcourse;
307
		Mcourse.data.id='M'; 
308
   		Mcourse.data.rtr=1; // Indiquation d'une requiete de lecture
309
  		snd_dtq (CanTx,Mcourse.msg); // Interrogation du peripherique
310
		Mode=periph[ADDR('M')].val; // Contient la derniere valeur renvoyee par le simulateur
311
		periph[ADDR('M')].maj;
312
		dly_tsk(10);
370
	CanFrame Mcourse;
371
	Mcourse.data.id='M'; 
372
   	Mcourse.data.rtr=1; // Indiquation d'une requiete de lecture
373
  	snd_dtq (CanTx,Mcourse.msg); // Interrogation du peripherique
374
	Mode=periph[ADDR('M')].val; // Contient la derniere valeur renvoyee par le simulateur
375
	periph[ADDR('M')].maj;
313 376
	return Mode;
314 377
}
378
 
379
// Fonction lecture capteur
380
unsigned int  lecture_Capteur()
381
{
382
	CanFrame capteur;
383
	capteur.data.id='C'; //Information sur le dernier capteur 
384
   	capteur.data.rtr=1; // Indiquation d'une requiete de lecture
385
  	snd_dtq (CanTx,capteur.msg); // Interrogation du peripherique
386
	capt=periph[ADDR('C')].val; // Contient la derniere valeur renvoyee par le simulateur
387
	periph[ADDR('C')].maj;// Incremente a chaque reception
388
	return capt;
389
}
315 390

  
316 391

  
317

  
318 392
// Focntion delay
319 393
void Pause(void)
320 394
{
......
327 401
void main()
328 402
{
329 403
	
330
	CanFrame capteur;
331 404
	
332 405
	ports_mcu();
333 406
    lcd_init();
......
349 422
		Mode= lecture_piste();
350 423
		if(Mode==0x8304 || Mode==0x0304)//On est sur la piste noir
351 424
		{
352
			
353
			//Lecture de la valeur du capteur
354
			capteur.data.id='C'; //Information sur le dernier capteur 
355
   			capteur.data.rtr=1; // Indiquation d'une requiete de lecture
356
  			snd_dtq (CanTx,capteur.msg); // Interrogation du peripherique
357
			capt=periph[ADDR('C')].val; // Contient la derniere valeur renvoyee par le simulateur
358
			periph[ADDR('C')].maj;// Incremente a chaque reception
425
			capt=lecture_Capteur();
359 426
			vitesse4(capt);
360 427
		}
361
		else if(Mode==0x8303 || Mode==0303) //O est sur la piste rouge
428
		else if(Mode==0x8303 || Mode==0x0303) //O est sur la piste rouge
362 429
		{
363
			
364
			//Lecture de la valeur du capteur
365
			capteur.data.id='C'; //Information sur le dernier capteur 
366
   			capteur.data.rtr=1; // Indiquation d'une requiete de lecture
367
  			snd_dtq (CanTx,capteur.msg); // Interrogation du peripherique
368
			capt=periph[ADDR('C')].val; // Contient la derniere valeur renvoyee par le simulateur
369
			periph[ADDR('C')].maj;// Incremente a chaque reception
430
			capt=lecture_Capteur();
370 431
			vitesse3(capt);
371 432
		}
372 433
		else if(Mode==0x8302 || Mode==0x0302) //On est dur la piste bleu
373 434
		{
374
			vitesse1();
435
			capt=lecture_Capteur();
436
			cpt=vitesse2(capt);
437
			if (cpt==24)//Compteur pour arreter la voiture a 3 eme tour
438
			{
439
				return ;
440
			}
375 441
		}
376 442
		else if(Mode==0x8301 || Mode==0x0301)//On est sur la piste verte
377 443
		{
378
			vitesse1();
444
			capt=lecture_Capteur();
445
			cpt=vitesse1(capt);
446
			if (cpt==9)//Compteur pour arreter la voiture a 3 eme tour
447
			{
448
				return ;
449
			}
379 450
		}
380 451
		
381
		LED_J=1;
382
		dly_tsk(100);
452
		
383 453
		LED_J=0;
384 454
		dly_tsk(100);
385 455
				

Also available in: Unified diff