Révision 110
Ajouté par fltronel il y a plus de 6 ans
branch/tronel_florian/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff0018
|
||
RESET=ff001a
|
branch/tronel_florian/Emb_App/programme_principal_etud.c | ||
---|---|---|
//'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 '*'
|
||
|
||
//Variable contenant la valeur de l'angle
|
||
unsigned short V=0;
|
||
|
||
//Variable contenant l'angle obtenue
|
||
int Ang_o;
|
||
//Variable contenant l'angle souhait?
|
||
int Ang_s=450;
|
||
//Variable contenant la vitesse angulaire
|
||
int v_a;
|
||
//Gain de la r?gulation
|
||
int k=10;
|
||
|
||
void main()
|
||
{
|
||
... | ... | |
|
||
//TRAME N?1 : consigne de vitesse angulaire en 10eme de ?/s
|
||
CanFrame f1;
|
||
|
||
//TRAME N?2 : requ?te lecture
|
||
CanFrame r1;
|
||
//TRAME N?3 : reponse ? requ?te
|
||
CanFrame rep1;
|
||
|
||
//f1
|
||
f1.data.id='T';
|
||
f1.data.rtr=0;
|
||
|
||
//r1
|
||
r1.data.id='R';
|
||
r1.data.rtr=1;
|
||
|
||
|
||
ports_mcu();
|
||
lcd_init();
|
||
periph_init();
|
||
... | ... | |
//sta_tsk(ID_periph_rx);
|
||
|
||
while(1){
|
||
|
||
//periph_write('V',100);
|
||
|
||
//on envoie une requ?te pour la lecture de notre angle
|
||
snd_dtq(CanTx,r1.msg);
|
||
//on recup?re cette valeur
|
||
rcv_dtq(CanRx, &rep1.msg);
|
||
//on la copie dans un "unsigned short" pour pouvoir la lire avec un point d'arr?t
|
||
V=rep1.data.val;
|
||
Ang_o=rep1.data.val;
|
||
|
||
//on fixe la consigne ? 20?/s pendant 1sec
|
||
//f1.data.val=400; // 20?/s
|
||
//snd_dtq(CanTx, f1.msg);
|
||
//dly_tsk(1000);
|
||
periph_write('T',200);
|
||
dly_tsk(1000);
|
||
|
||
|
||
//on stop la rotation de la tourelle avec une consigne ? 0?/s
|
||
//f1.data.val=0;
|
||
//snd_dtq(CanTx, f1.msg);
|
||
//dly_tsk(1000);
|
||
periph_write('T',0);
|
||
dly_tsk(1000);
|
||
|
||
v_a=k*(Ang_s-Ang_o);
|
||
periph_write('T',v_a);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
void acqui()
|
Formats disponibles : Unified diff
Régulation de la position angulaire de la tourelle ok
Test régulation fonctionnelle après crash ok