Revision 296 branch/lepogam/Emb_App/programme_principal_etud.c

View differences:

programme_principal_etud.c
126 126
unsigned int couleur=0; // vert -> ligne droie
127 127
unsigned int npiste=0;
128 128
unsigned int distance_ref=700;
129
unsigned int distance_ref_init=700;
129 130
unsigned int consigne=450;
131
unsigned int consigne_init=450;
130 132
unsigned int consigne_vitesse=34;
131 133
unsigned int vitesse_min=24;
132 134
unsigned int valeur_t=0;
......
156 158
		switch(npiste){
157 159
			
158 160
        	case(256) : //verte
159
            consigne_vitesse =60;
160
            vitesse_min =35;
161
       		distance_ref = 880;
161
            consigne_vitesse =60; //60
162
            vitesse_min =35; //35
163
       		distance_ref_init = 820; // d?cal?e ? gauche 820
162 164
			go=1;
163 165
            break;
164 166
			
165 167
            case(512) : //bleue
166
            consigne_vitesse =40;
167
            vitesse_min =22;
168
            distance_ref = 700;
168
            consigne_vitesse =50; //48 ok 21'19, max 50
169
            vitesse_min =30;//26 ok 21,19, max 30
170
            distance_ref_init = 700; // centr?e 700
169 171
			go=1;
170 172
            break;
171 173
			
172 174
            case(768) : //rouge
173
            consigne_vitesse =34;
174
            vitesse_min =24;
175
            distance_ref = 700;
175
            consigne_vitesse =46; //40 ok 26,19
176
            vitesse_min =20; // 20 ok 26'19
177
            distance_ref_init = 700;
176 178
			go=1;
177 179
            break;
178 180

  
179 181
                
180 182
            case(1024) : //noir
181
            consigne_vitesse =25;
182
            vitesse_min =25;
183
            distance_ref = 700;
183
            consigne_vitesse =22;
184
            vitesse_min =22;
185
            distance_ref_init = 700;
184 186
			go=1;
185 187
            break;
186 188
            }
......
216 218
	}
217 219

  
218 220
void asserv1(){ //asservissement tourelle
219
	if(alpha!=consigne) valeur_t=k1*(consigne-alpha);
221
	if(alpha!=consigne) valeur_t=k1*(consigne-alpha);	
220 222
	}
221 223

  
222 224
void asserv_roue(){
......
238 240
	
239 241
		comm.data.id='D'; 
240 242
		comm.data.rtr=0; 
241
		comm.data.val=valeur_r;
243
		if(valeur_r>-100) comm.data.val=valeur_r;
244
		else comm.data.val=-100;
242 245
		snd_dtq (CanTx,comm.msg);
243 246
		dly_tsk(10);
244 247
		}
245 248

  
246 249
	}
247 250
void asserv2(){ //asservissement roue
248
	if(couleur==0x1c80) ; // bloc rouge grand valeur 2 avant saut
251
	if(couleur==0x1c80 || couleur==0x18c8 ) ; // avant saut: bloc rouge grand valeur 2 et pr?-barille: petit bloc cyan 32 , bloc les roues
252
	else if(couleur==0x18d0){
253
		distance_ref=400;
254
		if(distance!=distance_ref) valeur_r=-k2*(distance_ref-distance);
255
		}
249 256
	else {
257
		distance_ref=distance_ref_init;
250 258
		if(distance!=distance_ref) valeur_r=-k2*(distance_ref-distance);
251 259
		}
252 260
	}
......
275 283
	}
276 284
void asserv3(){ //asservisement vitesse
277 285
	if(couleur==0x1580 || couleur==0x1581 ) vitesse=consigne_vitesse; // vert=ligne droite
278
	else if(couleur==0x1c80) vitesse=45; // vitesse saut
279
	else if(couleur==0x1c88) vitesse=14; //vitesse apr?s saut,  bloc rouge grand valeur 32 apr?s saut
286
	else if(couleur==0x1c80) vitesse=45; // vitesse saut: bloc rouge grand valeur 2
287
	else if(couleur==0x1c88) vitesse=vitesse_min; //vitesse apr?s saut:  bloc rouge grand valeur 32 
288
	else if(couleur==0x1a90 || couleur==0x1890) vitesse=consigne_vitesse-8; //mise en place rail: grand bloc jaune 64 et piste courbe: petit bloc bleu(cyan) 64
289
	else if(couleur==0x1a88) vitesse=consigne_vitesse+4; //rail apres mise en place: gand bloc jaune 32 
290
	else if(couleur==0x18d0 || couleur==0x18c8) vitesse=vitesse_min; //barille: petit bloc cyan 64 et pr?-barille: petit bloc cyan 32
280 291
	else{
281 292
		vitesse=vitesse_min; //virage
282 293
		}

Also available in: Unified diff