Révision 202
Ajouté par casotty il y a plus de 6 ans
branch/sotty/Emb_App/SessionM32C_E8a_system.ini | ||
---|---|---|
[Target]
|
||
M32C E8a SYSTEM=Renesas Communications
|
||
[USER_DATA]
|
||
RESET=ff002a
|
||
RESET=ff002c
|
branch/sotty/Emb_App/programme_principal_etud.c | ||
---|---|---|
short distance_mur = 0;
|
||
short angle_tourelle = 450;
|
||
short vit_roue = 30;
|
||
short ang_roue = 0;
|
||
|
||
void main()
|
||
{
|
||
init();
|
||
|
||
//dly_tsk(1000);
|
||
//Obtention de la couleur du feu
|
||
while ( (send_requete('M')>>15)==0 ){ //Attente que le feu soit vert
|
||
dly_tsk(50);
|
||
}
|
||
|
||
while(1)
|
||
{
|
||
LED_J=1;
|
||
... | ... | |
asserv_roue();
|
||
}
|
||
}
|
||
|
||
void acqui()
|
||
{
|
||
LED_V=!LED_V;
|
||
}
|
||
|
||
|
||
void rotation_tourelle(short angle){
|
||
... | ... | |
while(1){
|
||
vitesse_tourelle = K*(angle_tourelle - position_tourelle());
|
||
send_commande(VITESSE_TOURELLE, vitesse_tourelle);
|
||
dly_tsk(50);
|
||
}
|
||
}
|
||
|
||
... | ... | |
send_commande(VITESSE_ROUES,vitesse);
|
||
}
|
||
|
||
|
||
void angle_roue(short angle){
|
||
send_commande(ANGLE_ROUES,angle);
|
||
}
|
||
|
||
|
||
void asserv_roue(void){
|
||
//Maintient de la voiture au centre de la piste
|
||
char K = 1.5;
|
||
short ang_roue;
|
||
short telemetre;
|
||
|
||
while(1){
|
||
vitesse_roue(vit_roue);
|
||
//Angle des roues
|
||
distance_mur = distance_telemetre()*sin(3.1415*angle_tourelle/1800.0);
|
||
ang_roue = K*(distance_mur-500);
|
||
if(distance_mur > 1200) { //Trou dans le mur
|
||
ang_roue = 0;
|
||
}
|
||
else {
|
||
|
||
ang_roue = K*(distance_mur-500);
|
||
}
|
||
angle_roue(ang_roue);
|
||
|
||
//Vitesse des roues
|
||
if(ang_roue < 50) { //Virages
|
||
vit_roue = 30;
|
||
}
|
||
else {
|
||
vit_roue = 20;
|
||
}
|
||
vitesse_roue(vit_roue);
|
||
}
|
||
}
|
||
|
||
... | ... | |
snd_dtq(CanTx, comm.msg);
|
||
}
|
||
|
||
void acqui()
|
||
{
|
||
LED_V = !LED_V;
|
||
}
|
||
|
||
|
||
void init(void) {
|
||
//Initialise tous les peripheriques, taches et cycliques handler
|
||
|
Formats disponibles : Unified diff
Filtrage du trou effectif
Depart si feu vert
Passage de la piste verte et bleue