Revision 231

View differences:

branch/lepogam/Emb_App/SessionM32C_E8a_system.ini
25 25
[Target]
26 26
M32C E8a SYSTEM=Renesas Communications
27 27
[USER_DATA]
28
RESET=ff0030
28
RESET=ff0034
branch/lepogam/Emb_App/programme_principal_etud.c
124 124
unsigned int distance=0;
125 125
unsigned int vitesse=0;
126 126
unsigned int couleur=0; // vert -> ligne droie
127
unsigned int npiste=0;
127 128
unsigned int distance_ref=700;
128 129
unsigned int consigne=450;
129 130
unsigned int consigne_vitesse=34;
130 131
unsigned int vitesse_min=24;
131 132
unsigned int valeur_t=0;
132 133
unsigned int valeur_r=0;
134
int go=0;
133 135
int k1=2;
134 136
int k2=1;
135

  
137

  
138
void piste(){
139
	//'M'/77/0x7D?: Mode de course :
140
	//  Bit 15?: Etat feu tricolore ( 1 -> Vert, 0 -> Orange ou Rouge),
141
	//  Bits 14-8?: 1 Attente, 2 course, 3 essais libres)
142
	//  Bits 7-0?: numero de la piste
143
	CanFrame comm;
144
	CanFrame demande;
145
	CanFrame reponse;
146
	while(1){
147
		
148
	
149
		demande.data.id='M'; 
150
		demande.data.rtr=1;
151
	
152
		snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
153
		dly_tsk(500);
154
		npiste=periph[ADDR('M')].val<<8; // contient la valeur de retour du simulateur.
155
		
156
		switch(npiste){
157
			
158
        	case(256) : //verte
159
            consigne_vitesse =60;
160
            vitesse_min =35;
161
       		distance_ref = 880;
162
			go=1;
163
            break;
164
			
165
            case(512) : //bleue
166
            consigne_vitesse =40;
167
            vitesse_min =22;
168
            distance_ref = 700;
169
			go=1;
170
            break;
171
			
172
            case(768) : //rouge
173
            consigne_vitesse =34;
174
            vitesse_min =24;
175
            distance_ref = 700;
176
			go=1;
177
            break;
178

  
179
                
180
            case(1024) : //noir
181
            consigne_vitesse =25;
182
            vitesse_min =25;
183
            distance_ref = 700;
184
			go=1;
185
            break;
186
            }
187

  
188
        ext_tsk();
189
        }
190
	}
136 191
void asserv_tourelle(){
137 192
	
138 193
	
......
241 296
	sta_cyc(ID_acqui);
242 297
	sta_tsk(ID_periph_rx);
243 298
	
299
	sta_tsk(ID_piste);
244 300
	sta_tsk(ID_asserv_tourelle);
245 301
	sta_tsk(ID_asserv_roue);
246 302
	sta_cyc(ID_asserv1);
247 303
	sta_cyc(ID_asserv2);
248 304
	
305
	
249 306
	dly_tsk(600);	// attente mise en place de la tourelle
250 307
	sta_tsk(ID_asserv_vitesse);
251 308
	sta_cyc(ID_asserv3);
branch/lepogam/Emb_App/conf_noyau.cfg
62 62
	exinf	= 0x0;
63 63
};
64 64
task[]{
65
	entry_address	= piste();
66
	name	= ID_piste;
67
	stack_size	= 256;
68
	stack_section	= stack;
69
	priority	= 3;
70
	initial_start	= OFF;
71
	exinf	= 0x0;
72
};
73
task[]{
65 74
	entry_address	= asserv_tourelle();
66 75
	name	= ID_asserv_tourelle;
67 76
	stack_size	= 256;

Also available in: Unified diff