Révision 341
Ajouté par naidzim1 il y a plus de 6 ans
branch/najib_idzim/tp_info6/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff0026
|
||
RESET=ff0028
|
branch/najib_idzim/tp_info6/Emb_App/programme_principal_etud.c | ||
---|---|---|
void cmdRoue(unsigned short angle); // commande angle des roues en 10e de degre
|
||
int lireCapt();
|
||
char typeCapteur();
|
||
int lireEvent();
|
||
|
||
unsigned short distance = 56;
|
||
int capt = 0;
|
||
int capt = 0;
|
||
int even = 0;
|
||
void main()
|
||
{
|
||
ports_mcu();
|
||
... | ... | |
while(1)
|
||
{
|
||
capt = lireCapt();
|
||
even = lireEvent();
|
||
dly_tsk(100);
|
||
|
||
}
|
||
... | ... | |
int lireCapt()
|
||
{
|
||
CanFrame requete;
|
||
FLGPTN flag;
|
||
UINT flag;
|
||
|
||
requete.data.id = 'C';
|
||
requete.data.rtr = 1; // Requete de lecture
|
||
periph[ADDR('C')].ev =0x03;
|
||
snd_dtq(CanTx, requete.msg);
|
||
|
||
wai_flg(event,(FLGPTN) 0x0007,TWF_ORW,&flag); // Declarer la variable flag comme : FLGPTN flag
|
||
|
||
wai_flg(ev_periph, 0x03, TWF_ANDW, &flag);
|
||
clr_flg(event,~flag);
|
||
|
||
return periph[ADDR('C')].val;
|
||
}
|
||
|
||
... | ... | |
return 0;
|
||
}
|
||
|
||
// les evenements
|
||
|
||
// Si le simulateur envoi un evenement sur 16 bits il est recu grace a:
|
||
// par exemple: wai_flg(event,(FLGPTN) 0x0007,TWF_ORW,&flag); // Declarer la variable flag comme : FLGPTN flag
|
||
// Attention l'evenement n'est pas efface apres reception, il faut donc utiliser clr_flg(event,~flag); par example
|
||
//Bit Information associee Remarque
|
||
//0 Capteur Vert, remis a zero lors de la lecture du peripherique 'C'
|
||
//1 Capteur Jaune, remis a zero lors de la lecture du peripherique 'C'
|
||
//2 Capteur Rouge, remis a zero lors de la lecture du peripherique 'C'
|
||
//3 Capteur Bleu, remis a zero lors de la lecture du peripherique 'C'
|
||
//4 Capteur Cyan, remis a zero lors de la lecture du peripherique 'C'
|
||
//5
|
||
//6 Collision avec le sol, remise a zero au changement de piste.
|
||
//7 Fin de course (capteur vert), remis a zero lors de la lecture du peripherique 'C'
|
||
//8 La piste a change , remis a zero lors de la lecture du peripherique 'M'
|
||
//9 Le mode de course a change , remis a zero lors de la lecture du peripherique 'M'
|
||
//10
|
||
//11 Le vehicule a termine un tour, remis a zero au changement du mode de course.
|
||
//12 Sortie de la piste,
|
||
//13 Teleportation a ete utilisee, remis a zero au changement de piste ou du mode de course.
|
||
//14 Faux depart remise a zero au changement du mode de course.
|
||
|
||
int lireEvent()
|
||
{
|
||
|
||
FLGPTN flag;
|
||
int even;
|
||
|
||
wai_flg(event,(FLGPTN) 0x0007,TWF_ORW,&flag);
|
||
even = flag;
|
||
clr_flg(event,~flag);
|
||
|
||
return even;
|
||
|
||
}
|
||
|
||
// les asservissement
|
||
|
||
void asserv_tour()
|
||
... | ... | |
int angle;
|
||
|
||
|
||
k = 2; //gain definni experimentalement
|
||
k = 2.8; //gain definni experimentalement
|
||
distanceCons = 500;//disMur(); //Pos initiale milieu de piste
|
||
|
||
while(1)
|
Formats disponibles : Unified diff
lecture événement OK