Projet

Général

Profil

« Précédent | Suivant » 

Révision 474

Ajouté par gamatteozz il y a plus de 6 ans

tache des feu, bouton poussoir partiellement reussi

Voir les différences:

branch/matteozzi/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/matteozzi/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/matteozzi/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff002a
RESET=ff005a
branch/matteozzi/Emb_App/programme_principal_etud.c
unsigned short vitesse;
unsigned short distance_m;
unsigned short cons_angl=400;
unsigned char piste;
unsigned short cap;
unsigned feu;
///////////////////////////
//Declaration des taches///
///////////////////////////
......
void commande_vit(){ //commande de la vitesse //TODO a ameliorer
while(1){
if (vitesse==10){
dly_tsk(1000);
vitesse=30;
comm.data.id='V';
comm.data.rtr=0;
comm.data.val=vitesse;
snd_dtq(CanTx, comm.msg);
dly_tsk(2000);
}
comm.data.id='V';
comm.data.rtr=0;
comm.data.val=vitesse;
......
if(val_cap==0x6310){
comm.data.id='V';
comm.data.rtr=0;
comm.data.val=70;
comm.data.val=45;
snd_dtq(CanTx, comm.msg);
dly_tsk(260);
vitesse=30;
dly_tsk(600);
vitesse=10;
}
}
}
......
}
}
void lcd(){
UINT flag;
while(1){
requete.data.id='M'; //demande de la requete C
requete.data.rtr=1;
periph[ADDR('M')].ev=0x01; //demande de lecture car rtr=1
snd_dtq(CanTx, requete.msg); //envoie de la demande dans CanTx
dly_tsk(50);
wai_flg(ev_periph, 0x01, TWF_ANDW, &flag); //recoie la demande dans CanRx
piste=(periph[ADDR('M')].val);
requete.data.id='C'; //demande de la requete C
requete.data.rtr=1;
periph[ADDR('C')].ev=0x01; //demande de lecture car rtr=1
snd_dtq(CanTx, requete.msg); //envoie de la demande dans CanTx
dly_tsk(50);
wai_flg(ev_periph, 0x01, TWF_ANDW, &flag); //recoie la demande dans CanRx
val_cap=(periph[ADDR('C')].val);
if (piste==0x01){
lcd_str("Piste verte");break;
}
if (piste==0x02){
lcd_str("Piste bleu");break;
}
if (piste==0x03){
lcd_str("Piste rouge");break;
}
if (piste==0x04){
lcd_str("Piste noire");break;
}
}
}
void bouton(){
while(1){
if(Bp_G==1){
vitesse=0;
LED_R=1;
dly_tsk(50);
}
else{
vitesse=30;
LED_R=0;
}
}
}
void main()
{
{
UINT flag;
ports_mcu();
lcd_init();
periph_init();
......
sta_tsk(ID_orient_roue);
sta_tsk(ID_capteur);
sta_tsk(ID_vitesse);
sta_tsk(ID_lcd);
sta_tsk(ID_bouton);
dly_tsk(1000);
requete.data.id='M'; //demande de la requete C
requete.data.rtr=1;
periph[ADDR('M')].ev=0x01; //demande de lecture car rtr=1
snd_dtq(CanTx, requete.msg); //envoie de la demande dans CanTx
dly_tsk(50);
wai_flg(ev_periph, 0x01, TWF_ANDW, &flag); //recoie la demande dans CanRx
feu=periph[ADDR('M')].val;
while((feu&1000000000000000)==0){
requete.data.id='M'; //demande de la requete C
requete.data.rtr=1;
periph[ADDR('M')].ev=0x01; //demande de lecture car rtr=1
snd_dtq(CanTx, requete.msg); //envoie de la demande dans CanTx
dly_tsk(50);
wai_flg(ev_periph, 0x01, TWF_ANDW, &flag); //recoie la demande dans CanRx
feu=periph[ADDR('M')].val;
}
vitesse=15;
dly_tsk(200);
vitesse=30;
switch(piste){
case 0x01:
vitesse=40;
break;
case 0x02:
vitesse=35;
break;
case 0x03:
vitesse=30;
break;
case 0x04:
vitesse=90;
break;
}
while(1)
{
LED_R=0;
LED_J=0;
dly_tsk(50);
LED_R=1;
LED_J=1;
dly_tsk(50);
}
}
branch/matteozzi/Emb_App/conf_noyau.cfg
//
// kernel.cfg : building file for MR308 Ver.4.00
//
// Generated by M3T-MR308 GUI Configurator at 2018/12/19 17:30:51
// Generated by M3T-MR308 GUI Configurator at 2019/01/14 14:55:12
//
////////////////////////////////////////////////////////////////////////////////
// system definition
system{
stack_size = 256;
priority = 15;
priority = 20;
system_IPL = 4;
message_pri = 1;
timeout = YES;
......
// max definition
maxdefine{
max_task = 7;
max_task = 9;
max_flag = 3;
max_dtq = 2;
max_cyh = 1;
......
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = lcd();
name = ID_lcd;
stack_size = 256;
stack_section = stack;
priority = 16;
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = bouton();
name = ID_bouton;
stack_size = 256;
stack_section = stack;
priority = 20;
initial_start = OFF;
exinf = 0x0;
};
flag[]{
name = ev_bus_fin_tr;

Formats disponibles : Unified diff