Révision 234
Ajouté par codiagne il y a plus de 6 ans
branch/diagne/Emb_App/SessionM32C_FoUSB_UART.hsf | ||
---|---|---|
[HIMDBVersion]
|
||
2.0
|
||
[DATABASE_VERSION]
|
||
"2.2"
|
||
"2.3"
|
||
[SESSION_DETAILS]
|
||
""
|
||
[INFORMATION]
|
||
... | ... | |
[WINDOW_POSITION_STATE_DATA_VD3]
|
||
[WINDOW_POSITION_STATE_DATA_VD4]
|
||
[WINDOW_Z_ORDER]
|
||
[TARGET_NAME]
|
||
"M32C FoUSB/UART" "" 0
|
||
[STATUSBAR_STATEINFO_VD1]
|
||
"MasterShowState" 1
|
||
"ApplicationShowState" 1
|
||
... | ... | |
[STATUSBAR_DEBUGGER_PANESTATE_VD2]
|
||
[STATUSBAR_DEBUGGER_PANESTATE_VD3]
|
||
[STATUSBAR_DEBUGGER_PANESTATE_VD4]
|
||
[TARGET_NAME]
|
||
"M32C FoUSB/UART"
|
||
[DEBUGGER_OPTIONS]
|
||
"Unknown Options"
|
||
[DOWNLOAD_MODULES]
|
||
... | ... | |
"FALSE"
|
||
[DISABLE_MEMORY_ACCESS_DURING_EXECUTION]
|
||
"FALSE"
|
||
[DEBUGGER_OPTIONS_PROPERTIES]
|
||
"0"
|
||
[COMMAND_FILES]
|
||
[DEFAULT_DEBUG_FORMAT]
|
||
"IEEE695_RENESAS"
|
branch/diagne/Emb_App/SessionM32C_Simulator.hsf | ||
---|---|---|
[HIMDBVersion]
|
||
2.0
|
||
[DATABASE_VERSION]
|
||
"2.2"
|
||
"2.3"
|
||
[SESSION_DETAILS]
|
||
""
|
||
[INFORMATION]
|
||
... | ... | |
[WINDOW_POSITION_STATE_DATA_VD3]
|
||
[WINDOW_POSITION_STATE_DATA_VD4]
|
||
[WINDOW_Z_ORDER]
|
||
[TARGET_NAME]
|
||
"" "" 0
|
||
[STATUSBAR_STATEINFO_VD1]
|
||
"MasterShowState" 1
|
||
"ApplicationShowState" 1
|
||
... | ... | |
[STATUSBAR_DEBUGGER_PANESTATE_VD2]
|
||
[STATUSBAR_DEBUGGER_PANESTATE_VD3]
|
||
[STATUSBAR_DEBUGGER_PANESTATE_VD4]
|
||
[TARGET_NAME]
|
||
""
|
||
[DEBUGGER_OPTIONS]
|
||
""
|
||
[DOWNLOAD_MODULES]
|
||
... | ... | |
"FALSE"
|
||
[DISABLE_MEMORY_ACCESS_DURING_EXECUTION]
|
||
"FALSE"
|
||
[DEBUGGER_OPTIONS_PROPERTIES]
|
||
"0"
|
||
[COMMAND_FILES]
|
||
[DEFAULT_DEBUG_FORMAT]
|
||
""
|
branch/diagne/Emb_App/programme_principal_etud.c | ||
---|---|---|
|
||
short alpha;
|
||
short vitesse, longueur;
|
||
short pos;
|
||
|
||
void Asserv0(){
|
||
|
||
CanFrame req, comm;
|
||
UINT flag;
|
||
while (1)
|
||
{
|
||
req.data.id='R';
|
||
req.data.rtr=1;
|
||
//requ?te de lecture
|
||
CanFrame req,reponse,comm;
|
||
UINT flag;
|
||
while(1)
|
||
{
|
||
req.data.id='R'; //lecture angle de la tourelle
|
||
req.data.rtr=1; //requ?te de lecture
|
||
snd_dtq(CanRx, req.msg);
|
||
//Attente de la r?ponse
|
||
//rcv_dtq(CanRx, &reponse.msg);
|
||
periph[ADDR('R')].ev=0x01;
|
||
snd_dtq(CanTx, req.msg);
|
||
//Attente de la r?ponse
|
||
wai_flg (ev_periph, 0x01, TWF_ANDW, &flag);
|
||
pos=periph[ADDR('R')].val;
|
||
//Lecture de la valeur
|
||
|
||
//CanFrame demande;
|
||
//CanFrame reponse;
|
||
//CanFrame comm;
|
||
snd_dtq(CanTx,req.msg);
|
||
wai_flg(ev_periph, 0x01, TWF_ANDW,&flag);
|
||
alpha=periph[ADDR('R')].val;
|
||
|
||
//Vitesse de la tourelle
|
||
comm.data.id='T';
|
||
comm.data.rtr=0;
|
||
comm.data.val=450-pos; // Pour un gain de 1, on regule pour avoir 45degr?s
|
||
snd_dtq (CanTx,comm.msg);
|
||
}
|
||
|
||
comm.data.val=450-alpha; // Pour un gain de 1, on regule pour avoir 45degr?s
|
||
snd_dtq(CanTx,comm.msg);
|
||
dly_tsk(100);
|
||
}
|
||
|
||
}
|
||
|
||
void distance(){
|
||
CanFrame req;
|
||
UINT flag;
|
||
req.data.id='U';
|
||
req.data.rtr=1;
|
||
periph[ADDR('U')].ev=0x01;
|
||
snd_dtq(CanTx, req.msg);
|
||
//Attente de la r?ponse
|
||
wai_flg (ev_periph, 0x01, TWF_ANDW, &flag);
|
||
longueur=periph[ADDR('U')].val;
|
||
|
||
|
||
}
|
||
|
||
|
||
void regulation_roue(){
|
||
CanFrame req;
|
||
while(1){
|
||
UINT flag;
|
||
req.data.id='D';
|
||
req.data.rtr=0;
|
||
req.data.val=2*(longueur-737);
|
||
snd_dtq(CanTx, req.msg);
|
||
|
||
}
|
||
CanFrame req,reponse,comm;
|
||
UINT flag;
|
||
while(1)
|
||
{
|
||
req.data.id='U'; //lecture angle de la tourelle
|
||
req.data.rtr=1; //requ?te de lecture
|
||
snd_dtq(CanRx, req.msg);
|
||
//Attente de la r?ponse
|
||
//rcv_dtq(CanRx, &reponse.msg);
|
||
periph[ADDR('U')].ev=0x01;
|
||
snd_dtq(CanTx,req.msg);
|
||
wai_flg(ev_periph, 0x01, TWF_ANDW,&flag);
|
||
alpha=periph[ADDR('U')].val;
|
||
|
||
//Vitesse de la tourelle
|
||
comm.data.id='D';
|
||
comm.data.rtr=0;
|
||
comm.data.val=-(450-alpha); // Pour un gain de 1, on regule pour avoir 45degr?s
|
||
snd_dtq(CanTx,comm.msg);
|
||
dly_tsk(100);
|
||
}
|
||
}
|
||
|
||
|
||
void Avancer(){
|
||
CanFrame requete;
|
||
CanFrame req;
|
||
dly_tsk(6000);
|
||
req.data.id='V';
|
||
req.data.rtr=0;
|
||
req.data.val=15;
|
||
snd_dtq(CanTx,req.msg);
|
||
|
||
dly_tsk(5000);
|
||
//test avec vitesse
|
||
requete.data.id='V';
|
||
requete.data.rtr=0;
|
||
requete.data.val=48;
|
||
snd_dtq(CanTx, requete.msg);
|
||
}
|
||
|
||
}
|
||
|
||
void main()
|
||
{
|
||
CanFrame requete,reponse,comm;
|
||
CanFrame req,reponse,comm;
|
||
ports_mcu();
|
||
lcd_init();
|
||
periph_init();
|
||
... | ... | |
clavier_init(1);
|
||
capture_init();
|
||
|
||
|
||
|
||
//Variables globales utlis?es par les asservissements
|
||
|
||
|
||
sta_cyc(ID_acqui);
|
||
sta_tsk(ID_periph_rx);
|
||
sta_tsk(ID_periph_rx);
|
||
sta_tsk(ID_Asserv0);
|
||
distance;
|
||
regulation_roue;
|
||
distance();
|
||
Avancer();
|
||
sta_tsk(ID_Avancer);
|
||
sta_tsk(ID_roue);
|
||
|
||
|
||
while(1)
|
||
{
|
||
... | ... | |
dly_tsk(100);
|
||
LED_J=0;
|
||
dly_tsk(100);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
void acqui()
|
branch/diagne/Emb_App/conf_noyau.cfg | ||
---|---|---|
name = ID_Asserv0;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 9;
|
||
priority = 5;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
task[]{
|
||
entry_address = Avancer();
|
||
name = ID_Avancer;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 7;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
task[]{
|
||
entry_address = regulation_roue();
|
||
name = ID_roue;
|
||
stack_size = 256;
|
||
stack_section = stack;
|
||
priority = 7;
|
||
initial_start = OFF;
|
||
exinf = 0x0;
|
||
};
|
||
|
||
|
||
flag[]{
|
||
name = ev_bus_fin_tr;
|
||
initial_pattern = 0x0000;
|
Formats disponibles : Unified diff
Fin piste verte