Projet

Général

Profil

« Précédent | Suivant » 

Révision 459

Ajouté par piduvernoi il y a plus de 6 ans

programme de fin de seance avec demarrage après un feu vert

Voir les différences:

branch/duvernois/Emb_App/SessionM32C_E8a_system.ini
[Target]
M32C E8a SYSTEM=Renesas Communications
[USER_DATA]
RESET=ff0020
RESET=ff0022
branch/duvernois/Emb_App/programme_principal_etud.c
int rotroue;
int mask= 0x00FF;
int maskdepart= 0x7FFF;
int Go;
int maskdepart= 0x8000;
unsigned int Go;
int cpt=0;
void position ()
{
......
{
comm.data.id='D'; comm.data.rtr=0; comm.data.val=rotroue;
snd_dtq (CanTx,comm.msg);
}
else
{
comm.data.id='D'; comm.data.rtr=0; comm.data.val=0;
snd_dtq (CanTx,comm.msg);
}
LED_J=!LED_J;
dly_tsk(25);
dly_tsk(20);
}
}
......
rottourelle=(consignetourelle-alpha);
comm.data.id='T'; comm.data.rtr=0; comm.data.val=rottourelle;
snd_dtq (CanTx,comm.msg);
dly_tsk(100);
dly_tsk(50);
}
}
......
if (valcapt ==0x5603)
{
Gainroue =0;
consignetele=40;
Valvitesse=45;
LED_V=!LED_V;
}
else if (valcapt ==0x4203)
{
Valvitesse=10;
Gainroue=1;
LED_V=!LED_V;
consignetele=400;
}
else
{
Valvitesse=20;
}
dly_tsk(100);
dly_tsk(50);
}
}
......
Go=(Valpiste & maskdepart);
}
void LEDJ()
{
if (var <= 0 && var >= 2000)
{
LED_J=1;
}
else
{
LED_J=0;
}
dly_tsk(1000);
}
void noir()
{
CanFrame comm;
......
if (valcapt ==0x5601)
{
consigneposition= 900;
Valvitesse=25;
Valvitesse=20;
consignetele=300;
}
else if (valcapt ==0x4a01)
......
}
else if (valcapt ==0x5602)
{
consignetele=50;
consignetele=40;
}
else if (valcapt ==0x5202)
{
......
}
else if (valcapt ==0x5603)
{
Valvitesse=42;
consignetele=40;
Valvitesse=43;
consignetele=20;
}
else if (valcapt ==0x4203)
{
......
Valvitesse=25;
consigneposition= 850;
consignetele=300;
}
dly_tsk(20);
}
dly_tsk(40);
}
}
......
while(1)
{
consignevitesse=Valvitesse;
comm.data.id='V';
comm.data.rtr=0;
comm.data.val=consignevitesse;
snd_dtq (CanTx,comm.msg);
dly_tsk(100);
}
dly_tsk(200);
}
}
void Depart()
{
CanFrame demande;
UINT flag;
while(1)
{
if (Go!=32768)
{
demande.data.id='M';
demande.data.rtr=1;
periph[ADDR('M')].ev=0x01;
snd_dtq(CanTx,demande.msg);
dly_tsk(10);
wai_flg(ev_periph,0x01,TWF_ANDW, &flag);
Valpiste=(periph[ADDR('M')]).val;
Go=(Valpiste & maskdepart);
}
dly_tsk(200);
}
}
void main()
{
ports_mcu();
......
sta_cyc(ID_acqui);
sta_tsk(ID_periph_rx);
sta_tsk(ID_Depart);
sta_tsk(ID_Piste);
dly_tsk(1000);
if (Nump == 1 || Nump == 5)
{
Valvitesse=30;
consignetele=600;
Valvitesse=45;
consignetele=1200;
consigneposition = 715;
}
if (Nump == 2 || Nump == 6)
......
dly_tsk(2000);
sta_tsk(ID_tourelle);
sta_tsk(ID_position);
sta_tsk(ID_LEDJ);
dly_tsk(2000);
while(Go==1)
LED_R=1;
while(Go==32768)
{
sta_tsk(ID_vitesse);
}
sta_tsk(ID_vitesse);
LED_V=1;
}
while(1)
{
dly_tsk(100);
......
void acqui()
{
LED_R=!LED_R;
}
branch/duvernois/Emb_App/conf_noyau.cfg
name = ID_periph_tx;
stack_size = 256;
stack_section = stack;
priority = 3;
priority = 4;
initial_start = ON;
exinf = 0x0;
};
......
name = ID_periph_rx;
stack_size = 256;
stack_section = stack;
priority = 2;
priority = 3;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_saut;
stack_size = 256;
stack_section = stack;
priority = 2;
priority = 3;
initial_start = OFF;
exinf = 0x0;
};
......
name = ID_noir;
stack_size = 256;
stack_section = stack;
priority = 3;
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = Depart();
name = ID_Depart;
stack_size = 256;
stack_section = stack;
priority = 2;
initial_start = OFF;
exinf = 0x0;
};
task[]{
entry_address = LEDJ();
name = ID_LEDJ;
stack_size = 256;
stack_section = stack;
priority = 1;
initial_start = OFF;
exinf = 0x0;
};
flag[]{
name = ev_bus_fin_tr;
initial_pattern = 0x0000;

Formats disponibles : Unified diff