ecco le righe commentate e giusto, cio capito qualcosa?
Codice:
int tempo, gradi, x, y, valore, gradiRil, i; //settaggio variabili
void main (void){
ANSEL = 1; // configurazione input alanogico
TRISIO = 0b001011; // gpio0-1-3 in input gpio2 in output
valore = 40;
i=0;
while (1){
inizio:
tempo = ADC_READ(0); //legge valore su GP0 per la velocita rotazione
delay_ms(5); //ritardo lettura valore
gradiRil = ADC_READ(1); //legge valore su GP per angolo rotazione
delay_ms(5); //ritardo lettura valore
tempo = (tempo+50)/50; //variabile tempo +50 diviso 50
gradiRil = (gradiRil+50)/7; //variabile gradirilevati +50 diviso 7
for(x=0;x<tempo;x++){ //se X uguale a 0 ma minore di tempo aumenta X
for(y=0;y<valore;y++){ // se Y uguale a 0 ma minore di valore aumenta Y
gpio.f2 = 1; //genera il segnale controllo servo
}
gpio.f2 = 0;
delay_ms(5);
}
if(gpio.f3) //rileva segnale tasto
i=i^1; //se i uguale portalo ad 1 cioe tasto premuto
delay_ms(5000);// qui ritardo di 5 secondi dopo la pressione tasto
while(gpio.f3){}
if(i)
gradi = gradiRil;
else
gradi = 40; //se i gradi sono uguali a gradiRil porta a 40
if(valore==gradi)
goto inizio; //se invece valore uguale a gradi ritorna inizio
if(valore>gradi) //se valore e maggiore di gradi
valore--; //diminuisci il valore
else //altrimenti
valore++; //aumenta valore
}}