Revision 52 branch/bacher/Emb_App/programme_principal_etud.c

View differences:

programme_principal_etud.c
123 123
int retour=0; //contient la valeur retourner par le p?riph
124 124
int k=1; //contient le gain du correcteur
125 125
int valeur=0; //contient la valeur ? envoyer
126

  
126

  
127

  
128
void asserv0()
129
{
130
	CanFrame comm;
131
	CanFrame demande;
132
	CanFrame reponse;
133
	while(1){
134
		
135
    demande.data.id='R'; 
136
    demande.data.rtr=1;
137
        
138
    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.
141
        
142
    comm.data.id='T'; 
143
    comm.data.rtr=0; 
144
    comm.data.val=valeur;
145
    snd_dtq (CanTx,comm.msg); //on envoie la modification ? effectuer
146
	if(retour!=cons) valeur=k*(cons-retour);
147
	
148
	}
149
}	
127 150
void main()
128 151
{	
129
	CanFrame comm;
130
    CanFrame demande;
131
    CanFrame reponse;
152

  
132 153

  
133 154
	ports_mcu();
134 155
    lcd_init();
......
141 162
	
142 163
	sta_cyc(ID_acqui);
143 164
//	sta_tsk(ID_periph_rx);
144

  
165
	sta_tsk(ID_asserv0);
166
	
145 167
    while(1)
146 168
    {
147 169
		//LED_J=1;
148 170
		//dly_tsk(100);
149 171
		//LED_J=0;
150 172
		//dly_tsk(100);
151
    	demande.data.id='R'; 
152
        demande.data.rtr=1;
153
        
154
        snd_dtq (CanTx,demande.msg); // Interrogation du peripherique
155
        rcv_dtq (CanRx,&reponse.msg); // Attente de la reponse
156
        retour=reponse.data.val; // contient la valeur de retour du simulateur.
157
        
158
        comm.data.id='T'; 
159
        comm.data.rtr=0; 
160
        comm.data.val=valeur;
161
        snd_dtq (CanTx,comm.msg); //on envoie la modification ? effectuer
162
		
163
		if(retour!=cons) valeur=k*(cons-retour);
164
                
165
        
166 173

  
167 174
	}
168 175
}

Also available in: Unified diff