Révision 351
Ajouté par stpouotong il y a plus de 6 ans
branch/Styves_POUOTONG/tp_info6/Emb_App/programme_principal_etud.c | ||
---|---|---|
// disponible. 0xab avec a-> nombre de couleurs bien plac?es et b -> couleurs pr?sentes mais mal plac?es.
|
||
//'I'/73/Ox49 : D?finition du nom du v?hicule. Doit d?buter par le caract?re '#' et entraine le chargement de la configuration de piste
|
||
// correspondant au nom du v?hicule si le nom se termine par '*'
|
||
|
||
long couleur_capteur;
|
||
long capt;
|
||
long val_capteur;
|
||
void Asserv0() //asservissemt de la tourelle
|
||
{
|
||
CanFrame requete;
|
||
... | ... | |
|
||
erreur = consigne - dist;
|
||
cmd = erreur*k;
|
||
|
||
comm.data.id = 'D';
|
||
comm.data.rtr = 0; //Indique une ecriture
|
||
comm.data.val = cmd;
|
||
snd_dtq(CanTx, comm.msg);
|
||
if(val_capteur == 0xF4){
|
||
comm.data.id = 'D';
|
||
comm.data.rtr = 0; //Indique une ecriture
|
||
comm.data.val = 0;
|
||
snd_dtq(CanTx, comm.msg);
|
||
}
|
||
else if(dist < 1000 || val_capteur == 0x80){
|
||
comm.data.id = 'D';
|
||
comm.data.rtr = 0; //Indique une ecriture
|
||
comm.data.val = cmd;
|
||
snd_dtq(CanTx, comm.msg);
|
||
}
|
||
|
||
dly_tsk(10);
|
||
}
|
||
}
|
||
long couleur_capteur;
|
||
long capt;
|
||
|
||
void capteur()
|
||
{
|
||
CanFrame req;
|
||
CanFrame comm;
|
||
UINT flag;
|
||
while(1)
|
||
{
|
||
req.data.id = 'C';
|
||
req.data.rtr = 1;
|
||
periph[ADDR('C')].ev = 0x01;
|
||
snd_dtq(CanTx, req.msg);
|
||
dly_tsk(2000);
|
||
wai_flg(ev_periph, 0x01, TWF_ANDW, &flag);
|
||
capt = periph[ADDR('C')].val;
|
||
couleur_capteur = capt&0xFF00;
|
||
}
|
||
|
||
}
|
||
req.data.id = 'C';
|
||
req.data.rtr = 1;
|
||
periph[ADDR('C')].ev = 0x01;
|
||
snd_dtq(CanTx, req.msg);
|
||
dly_tsk(200);
|
||
wai_flg(ev_periph, 0x01, TWF_ANDW, &flag);
|
||
capt = periph[ADDR('C')].val;
|
||
couleur_capteur = capt & 0xFF00;
|
||
val_capteur = capt & 0x00FF;
|
||
}
|
||
dly_tsk(10);
|
||
}
|
||
void main()
|
||
{
|
||
CanFrame comm;
|
||
... | ... | |
ports_mcu();
|
||
lcd_init();
|
||
periph_init();
|
||
periph_nom("#AutoTest*");
|
||
periph_nom("#Autoset*");
|
||
|
||
can_init();
|
||
clavier_init(1);
|
Formats disponibles : Unified diff
piste bleue validé :)