Projet

Général

Profil

« Précédent | Suivant » 

Révision 341

Ajouté par naidzim1 il y a plus de 6 ans

lecture événement OK

Voir les différences:

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