Projet

Général

Profil

« Précédent | Suivant » 

Révision 452

Ajouté par nacao il y a plus de 6 ans

Séance 6

Voir les différences:

branch/nan_cao/Emb_App/programme_principal_etud.c
short couleurcap;
short mod;
short angle;
//short capteur;
CanFrame comm_ang;
CanFrame comm_vitesse;
......
{
req.data.id='R'; //lecture angle de la tourelle
req.data.rtr=1;
//Attente de la reponse
periph[ADDR('R')].ev=0x01;
snd_dtq(CanTx,req.msg);
......
comm.data.rtr=0;
comm.data.val=vitourelle;
snd_dtq(CanTx,comm.msg);
if (alpha!=450) vitourelle=450-alpha;
if (alpha!=450) vitourelle=450-alpha;
dly_tsk(20);
}
......
comm_ang.data.id='D'; //angle de roue
comm_ang.data.rtr=0;
comm_ang.data.val=angle;
if(distance < 1100) angle=-(710-distance);
if(distance < 1100) angle=-(700-distance);
else comm_ang.data.val=0;
snd_dtq(CanTx,comm_ang.msg);
dly_tsk(20);
......
}
}
*/
*/
/* 6 seance
void vit(){
while(1)
......
snd_dtq(CanTx,comm_vitesse.msg);
}
}
*/
void vit(){
while(1)
{
dly_tsk(500);
comm_vitesse.data.id='V'; //Vitesse de la tour
comm_vitesse.data.rtr=0;
if(Bp_G==1) comm_vitesse.data.val=0;
else comm_vitesse.data.val=vitesse;
snd_dtq(CanTx,comm_vitesse.msg);
}
}
void affichage()
{
while(1){
dly_tsk(10);
lcd_putc('mod');
}
}
void main()
{
CanFrame comm;
ports_mcu();
lcd_init();
......
can_init();
clavier_init(1);
capture_init();
sta_tsk(ID_affichage);
sta_tsk(ID_ang_roue);
sta_tsk(ID_ang_tourelle);
sta_tsk(ID_vitesse);
......
while(1)
{
switch(num_piste){
case 1:
vitesse=30;
......
case 3:
if(cap==0x7601) {
vitesse=80;
}
else if (cap==0x5603) vitesse=50;
vitesse=60;
}
else if (cap==0x4203) vitesse=5;
else if (cap==0x5202) vitesse=40;
else if (cap==0x7602) vitesse=5;
else if (cap==0x7610) vitesse=0;
else if (cap==0x7602) vitesse=5;
else if (cap==0x5604) vitesse=5;
else vitesse=30;
break;
break;
}
LED_J=1;
dly_tsk(100);
LED_J=0;
dly_tsk(100);
// LED_R=1;
// dly_tsk(100);
// LED_R=0;
// dly_tsk(100);
LED_R=1;
dly_tsk(100);
LED_R=0;
dly_tsk(100);
}
}
......
LED_V=!LED_V;
}
branch/nan_cao/Emb_App/conf_noyau.cfg
exinf = 0x0;
};
task[]{
entry_address = affichage();
name = ID_affichage;
stack_size = 512;
stack_section = stack;
priority = 7;
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = periph_tx();

Formats disponibles : Unified diff