Revision 341

View differences:

branch/najib_idzim/tp_info6/Emb_App/SessionM32C_E8a_system.ini
25 25
[Target]
26 26
M32C E8a SYSTEM=Renesas Communications
27 27
[USER_DATA]
28
RESET=ff0026
28
RESET=ff0028
branch/najib_idzim/tp_info6/Emb_App/programme_principal_etud.c
128 128
void cmdRoue(unsigned short angle);       // commande angle des roues en 10e de degre
129 129
int lireCapt();
130 130
char typeCapteur();
131
int lireEvent();
131 132

  
132 133
unsigned short distance = 56;
133
 int capt = 0;
134
int capt = 0;
135
int even = 0;
134 136
void main()
135 137
{
136 138
	ports_mcu();
......
159 161
    while(1)
160 162
    {
161 163
		capt = lireCapt();
164
		even = lireEvent();
162 165
		dly_tsk(100);
163 166
		
164 167
    }
......
272 275
int lireCapt()
273 276
{
274 277
	CanFrame requete;
275
	FLGPTN flag;
278
	UINT flag;
276 279
	
277 280
	requete.data.id = 'C';
278 281
	requete.data.rtr = 1;          // Requete de lecture 
279 282
	periph[ADDR('C')].ev =0x03;
280 283
	snd_dtq(CanTx, requete.msg);
281 284
	
282
	wai_flg(event,(FLGPTN) 0x0007,TWF_ORW,&flag); // Declarer la variable flag comme : FLGPTN flag
283
	
284 285
	wai_flg(ev_periph, 0x03, TWF_ANDW, &flag);
285
	clr_flg(event,~flag);
286
	
287 286
	return  periph[ADDR('C')].val;
288 287
}
289 288

  
......
306 305
	return 0;
307 306
}
308 307

  
308
// les evenements
309

  
310
// Si le simulateur envoi un evenement sur 16 bits il est recu grace a:
311
// par exemple:  wai_flg(event,(FLGPTN) 0x0007,TWF_ORW,&flag); // Declarer la variable flag comme : FLGPTN flag
312
// Attention l'evenement n'est pas efface apres reception, il faut donc utiliser clr_flg(event,~flag); par example
313
//Bit   Information associee            Remarque
314
//0     Capteur Vert,                   remis a zero lors de la lecture du peripherique 'C'
315
//1     Capteur Jaune,                  remis a zero lors de la lecture du peripherique 'C'
316
//2     Capteur Rouge,                  remis a zero lors de la lecture du peripherique 'C'
317
//3     Capteur Bleu,                   remis a zero lors de la lecture du peripherique 'C'
318
//4     Capteur Cyan,                   remis a zero lors de la lecture du peripherique 'C'
319
//5
320
//6     Collision avec le sol,          remise a zero au changement de piste.
321
//7     Fin de course (capteur vert),   remis a zero lors de la lecture du peripherique 'C'
322
//8     La piste a change ,             remis a zero lors de la lecture du peripherique 'M'
323
//9     Le mode de course a change ,    remis a zero lors de la lecture du peripherique 'M'
324
//10
325
//11    Le vehicule a termine un tour,   remis a zero au changement du mode de course.
326
//12    Sortie de la piste,
327
//13    Teleportation a ete utilisee,   remis a zero au changement de piste ou du mode de course.
328
//14    Faux depart                     remise a zero au changement du mode de course.
329

  
330
int lireEvent()
331
{
332
	
333
	FLGPTN flag;
334
	int even;
335
	
336
	wai_flg(event,(FLGPTN) 0x0007,TWF_ORW,&flag);
337
	even = flag;
338
	clr_flg(event,~flag);
339
	
340
	return  even;
341
	
342
}
343

  
309 344
// les asservissement
310 345

  
311 346
void asserv_tour()
......
334 369
	int angle;
335 370
	
336 371
	
337
	k = 2;                //gain definni experimentalement
372
	k = 2.8;                //gain definni experimentalement
338 373
	distanceCons = 500;//disMur(); //Pos initiale milieu de piste
339 374
	
340 375
	while(1)

Also available in: Unified diff