Révision 386
Ajouté par sabeaussan il y a plus de 6 ans
branch/beaussant/Emb_App/crt0mr.a30 | ||
---|---|---|
; after reset,this program will start
|
||
;-----------------------------------------------------------------
|
||
__SYS_INITIAL:
|
||
LDC #__Sys_Sp,ISP ; set initial ISP
|
||
LDC #__Sys_Sp,ISP ; set initial ISPl
|
||
|
||
MOV.B #2,0AH
|
||
MOV.B #00,PMOD ; Set Processor Mode Register
|
branch/beaussant/Emb_App/programme_principal_etud.c | ||
---|---|---|
//CanFrame touche;
|
||
short consigne=450;
|
||
int dist_obs=0;
|
||
int dist_consigne=705;
|
||
int dist_consigne=703;
|
||
int cmpt;
|
||
char kt=3;
|
||
char kv=10;
|
||
float kr=1.5;
|
||
//char c;
|
||
int in;
|
||
FLGPTN flag;
|
||
int is_stable=0;
|
||
int dans;
|
||
int est_stable=0;
|
||
... | ... | |
comm.data.id=id;
|
||
comm.data.rtr=0;
|
||
comm.data.val=val;
|
||
snd_dtq (CanTx,comm.msg);
|
||
snd_dtq(CanTx,comm.msg);
|
||
}
|
||
|
||
|
||
void main()
|
||
{
|
||
|
||
{
|
||
ports_mcu();
|
||
lcd_init();
|
||
periph_init();
|
||
periph_nom("#LeBolide*");
|
||
can_init();
|
||
clavier_init(1);
|
||
capture_init();
|
||
// sta_cyc(ID_acqui);
|
||
capture_init();
|
||
sta_tsk(ID_ctrlt);
|
||
sta_tsk(ID_depart);
|
||
sta_tsk(ID_periph_rx);
|
||
|
||
sta_tsk(ID_periph_rx);
|
||
while(1){};
|
||
|
||
}
|
||
|
||
int intervalle(int val,int borne)
|
||
... | ... | |
while(est_stable!=1){
|
||
dist_obs=acquiFrame('U');
|
||
if(dist_obs<1000){
|
||
commandeR=-1*kr*(dist_consigne-dist_obs);
|
||
envoieFrame('D',commandeR);
|
||
est_stable=stable();
|
||
commandeR=-1*kr*(dist_consigne-dist_obs);
|
||
envoieFrame('D',commandeR);
|
||
est_stable=stable();
|
||
}
|
||
dly_tsk(10);
|
||
}
|
||
... | ... | |
val_capt=acquiFrame('C');
|
||
val_capt=val_capt>>8;
|
||
envoieFrame('V',commandeV);
|
||
if((dist_obs<900 && val_capt!=99) || val_capt==106){
|
||
if((dist_obs<900 && val_capt!=99 && dist_obs>0)){
|
||
commandeR=-1*kr*(dist_consigne-dist_obs);
|
||
envoieFrame('D',commandeR);
|
||
dist_obs=acquiFrame('U');
|
||
... | ... | |
void asserv_vitesse(){
|
||
while(1){
|
||
dans=intervalle(commandeR,15);
|
||
if(dans==1 && val_capt!=99){
|
||
commandeV=60;
|
||
kr=0.5;
|
||
if(val_capt==99)
|
||
{
|
||
commandeV=45;
|
||
kr==0;
|
||
}
|
||
else if(val_capt==66)
|
||
else if(val_capt==106 || val_capt==66)
|
||
{
|
||
commandeV=15;
|
||
commandeV=10;
|
||
kr=0.8;
|
||
}
|
||
else if(dans==0 && val_capt!=99)
|
||
else if(dans==1 && val_capt!=99)
|
||
{
|
||
commandeV=35;
|
||
kr=1.5;
|
||
commandeV=70;
|
||
kr=0.7;
|
||
}
|
||
else if(val_capt==99 && commandeV!=10)
|
||
else if(dans==0 && val_capt!=106)
|
||
{
|
||
commandeV=60;
|
||
dly_tsk(300);
|
||
commandeV=10;
|
||
|
||
|
||
commandeV=30;
|
||
kr=1.5;
|
||
}
|
||
dly_tsk(30);
|
||
}
|
||
}
|
||
}
|
||
/*int virage()
|
||
{
|
Formats disponibles : Unified diff
rouge ok