Revision 54

View differences:

branch/bacher/Emb_App/SessionM32C_E8a_system.ini
25 25
[Target]
26 26
M32C E8a SYSTEM=Renesas Communications
27 27
[USER_DATA]
28
RESET=ff001e
28
RESET=ff0026
branch/bacher/Emb_App/programme_principal_etud.c
118 118
//'j'/106/06A : R?cup?ration du r?sultat de dernier code envoy?. 0x77 si aucun code n'a ?t? soumis. <0 si la r?ponse n'est pas
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
//				correspondant au nom du v?hicule si le nom se termine par '*'
121
//				correspondant au nom du v?hicule si le nom se termine par '*'
122

  
123

  
122 124
int cons=450; //contient la consigne
123 125
int retour=0; //contient la valeur retourner par le p?riph
124 126
int k=1; //contient le gain du correcteur
125 127
int valeur=0; //contient la valeur ? envoyer
128
int distance=0;
129
int cons_roue=12522;
130
int valeur_roue=0;
131
int ang_roue=0;
126 132

  
133
CanFrame vit_roue;
134
CanFrame requete;
135
CanFrame dist;
136
CanFrame rot_roue;
127 137

  
128 138
void asserv0()
129 139
{
......
136 146
    demande.data.rtr=1;
137 147
        
138 148
    snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
139
    rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
140
    retour=reponse.data.val; // contient la valeur de retour du simulateur.
149
    retour=periph[ADDR('R')].val; // contient la valeur de retour du simulateur.
141 150
        
142 151
    comm.data.id='T'; 
143 152
    comm.data.rtr=0; 
144 153
    comm.data.val=valeur;
145 154
    snd_dtq (CanTx,comm.msg); //on envoie la modification ? effectuer
146 155
	if(retour!=cons) valeur=k*(cons-retour);
147
	
156

  
148 157
	}
149
}	
158
}	
159

  
150 160
void main()
151 161
{	
152 162

  
163
	
153 164

  
154 165
	ports_mcu();
155 166
    lcd_init();
......
161 172
	capture_init();
162 173
	
163 174
	sta_cyc(ID_acqui);
164
//	sta_tsk(ID_periph_rx);
175
	sta_tsk(ID_periph_rx);
165 176
	sta_tsk(ID_asserv0);
166 177
	
167 178
    while(1)
168
    {
169
		//LED_J=1;
170
		//dly_tsk(100);
171
		//LED_J=0;
172
		//dly_tsk(100);
179
    {

180
		vit_roue.data.id='V'; 

181
    	vit_roue.data.rtr=0; 

182
    	vit_roue.data.val=10;

183
	    snd_dtq (CanTx,vit_roue.msg);
173 184

  
185
		/*
186
		requete.data.id='U';
187
		requete.data.rtr=1;
188
		snd_dtq(CanTx, requete.msg);
189
		rcv_dtq(CanRx, &dist.msg);
190
		distance=requete.data.val;
191
		if (distance!=cons_roue){
192
			    rot_roue.data.id='D'; 
193
    			rot_roue.data.rtr=0; 
194
    			rot_roue.data.val=ang_roue-10;
195
    			snd_dtq (CanTx,rot_roue.msg);
196
		}	*/
174 197
	}
175 198
}
176 199

  

Also available in: Unified diff