Révision 340
Ajouté par audercoux il y a plus de 6 ans
branch/decroux/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff001a
|
||
RESET=ff001c
|
branch/decroux/Emb_App/programme_principal_etud.c | ||
---|---|---|
int kt=1;//Gain tourelle
|
||
int kr=1; // Gain roue
|
||
unsigned int dis;
|
||
unsigned int capt;
|
||
unsigned int capt=0x0000;
|
||
|
||
|
||
// Tache qui met la tourelle a 45degres
|
||
... | ... | |
dis=periph[ADDR('U')].val; // Contient la derniere valeur renvoyee par le simulateur
|
||
periph[ADDR('U')].maj; // Incremente a chaque reception
|
||
//Assevicement
|
||
if(dis>700)
|
||
if(dis>1000)
|
||
{
|
||
commRoues.data.id='D'; // Commande de l'angle des roues
|
||
commRoues.data.rtr=0; //Indique une requete d'?criture
|
||
... | ... | |
{
|
||
commRoues.data.id='D'; // Commande de l'angle des roues
|
||
commRoues.data.rtr=0; //Indique une requete d'?criture
|
||
commRoues.data.val=kr*(dis-650); // Correction de la disance
|
||
commRoues.data.val=kr*(dis-680); // Correction de la disance
|
||
snd_dtq(CanTx,commRoues.msg);
|
||
}
|
||
dly_tsk(10);
|
||
}
|
||
|
||
}
|
||
|
||
//Fonctin vitesse
|
||
void vitesse(unsigned int valcapt)
|
||
{
|
||
CanFrame commVit;
|
||
commVit.data.id='V';
|
||
commVit.data.rtr=0;
|
||
commVit.data.val=25;
|
||
snd_dtq (CanTx,commVit.msg);
|
||
if(valcapt== 0x5603)
|
||
{
|
||
commVit.data.id='V';
|
||
commVit.data.rtr=0;
|
||
commVit.data.val=45;
|
||
snd_dtq (CanTx,commVit.msg);
|
||
}
|
||
else if(valcapt==0x7608)
|
||
{
|
||
commVit.data.id='V';
|
||
commVit.data.rtr=0;
|
||
commVit.data.val=0;
|
||
snd_dtq (CanTx,commVit.msg);
|
||
commVit.data.id='V';
|
||
commVit.data.rtr=0;
|
||
commVit.data.val=5;
|
||
snd_dtq (CanTx,commVit.msg);
|
||
|
||
}
|
||
}
|
||
else if(valcapt==0x5604)
|
||
{
|
||
commVit.data.id='V';
|
||
commVit.data.rtr=0;
|
||
commVit.data.val=25;
|
||
snd_dtq (CanTx,commVit.msg);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
// Focntion delay
|
||
void Pause(void)
|
||
{
|
||
int i;
|
||
for(i=0; i<9000; i=i+1);
|
||
|
||
}
|
||
|
||
|
||
void main()
|
||
{
|
||
CanFrame commVit;
|
||
|
||
CanFrame capteur;
|
||
CanFrame commRoues;
|
||
|
||
ports_mcu();
|
||
lcd_init();
|
||
periph_init();
|
||
... | ... | |
|
||
sta_cyc(ID_acqui);
|
||
sta_tsk(ID_periph_rx);
|
||
sta_tsk(ID_asservissemet_tourelle);
|
||
dly_tsk(2000);
|
||
sta_tsk(ID_asservissement_roues);
|
||
sta_tsk(ID_asservissemet_tourelle);
|
||
dly_tsk(3000);
|
||
|
||
while(1)
|
||
{
|
||
//Commande en vitesse
|
||
commVit.data.id='V';
|
||
commVit.data.rtr=0;
|
||
commVit.data.val=20;
|
||
snd_dtq (CanTx,commVit.msg);
|
||
vitesse(capt);
|
||
//Lecture de la valeur du capteur
|
||
capteur.data.id='C'; //Information sur le dernier capteur touc?
|
||
capteur.data.rtr=1; // Indiquation d'une requiete de lecture
|
||
snd_dtq (CanTx,capteur.msg); // Interrogation du peripherique
|
||
capteur.data.id='C'; //Information sur le dernier capteur
|
||
capteur.data.rtr=1; // Indiquation d'une requiete de lecture
|
||
snd_dtq (CanTx,capteur.msg); // Interrogation du peripherique
|
||
capt=periph[ADDR('C')].val; // Contient la derniere valeur renvoyee par le simulateur
|
||
periph[ADDR('C')].maj; // Incremente a chaque reception
|
||
//LED_J=1;
|
||
//dly_tsk(100);
|
||
//LED_J=0;
|
||
periph[ADDR('C')].maj;
|
||
// Incremente a chaque reception
|
||
LED_J=1;
|
||
dly_tsk(100);
|
||
LED_J=0;
|
||
dly_tsk(100);
|
||
}
|
||
}
|
branch/decroux/Emb_App/conf_noyau.cfg | ||
---|---|---|
};
|
||
|
||
|
||
|
||
|
||
//
|
||
// End of Configuration
|
||
//
|
Formats disponibles : Unified diff
Passage de la piste rouge réussit