Revision 43

View differences:

branch/maincent/tp_info6/Emb_App/programme_principal_etud.c
119 119
//				disponible. 0xab avec a-> nombre de couleurs bien plac?es et b -> couleurs pr?sentes mais mal plac?es.
120 120
//'I'/73/Ox49 : D?finition du nom du v?hicule. Doit d?buter par le caract?re '#' et entraine le chargement de la configuration de piste
121 121
//				correspondant au nom du v?hicule si le nom se termine par '*'
122

  
122 123
short alpha;
124
short d;
125
void tri(void)
126
{
127
	CanFrame m;
128
		while (1)
129
		{
130
			rcv dtq(CanRx,&m.msg);  //Attente et lecture de la r?ponse
131
			switch(m.data.id)
132
			{
133
				case 'T': //Tourelle 
134
					alpha = m.data.val;
135
					break;
136
				case 'U': //distance mur
137
					d = m.data.val;	 
138
			}
139
		}
140
}
141

  
142

  
143

  
123 144
short k=1;
124 145
void asserv0(){
125

  
126
	CanFrame requete, reponse, comm;
127 146
	
128
	//commande en vitesse de la tourelle
129

  
147
	CanFrame requete, reponse, comm;	

148
	//commande en vitesse de la tourelle
130 149
	comm.data.id = 'T';
131 150
	comm.data.rtr = 0; //indique une ecriture
132
	comm.data.val = k*(-450-alpha);
151
	comm.data.val = k*(-900-alpha);
133 152
	snd_dtq(CanTx, comm.msg);
134
	
135
	
153
		
136 154
	//position tourelle
137 155
	requete.data.id='R';
138 156
	requete.data.rtr=1; //Indique une requ?te de lecture
139 157
	snd_dtq(CanTx, requete.msg);
158
//	rcv_dtq(CanRx, &reponse.msg);
159
	alpha=reponse.data.val;
160
	
161
	//Avancer
162
/*	comm.data.id = 'V';
163
	comm.data.rtr = 0; //indique une ecriture
164
	comm.data.val = 20;
165
	snd_dtq(CanTx, comm.msg);
166
*/	
167
}
168

  
169

  
170

  
171
void dist(){
172
	CanFrame requete, reponse;			
173
	//distance mur
174
	requete.data.id='U';
175
	requete.data.rtr=1; //Indique une requ?te de lecture
176
	snd_dtq(CanTx, requete.msg);
140 177
	rcv_dtq(CanRx, &reponse.msg);
141
	alpha=reponse.data.val;
178
	if
179
	d=reponse.data.val;
180
}
142 181

  
143
}
182

  
144 183

  
145 184
void main()
146 185
{
......
160 199

  
161 200
    while(1)
162 201
    {
163
		asserv0();
202
		sta_tsk(ID_asservtourelle);
203
		sta_tsk(ID_dist);
204
		sta_tsk(ID_tri);
164 205
    }
165 206
}
166 207

  

Also available in: Unified diff