Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 194 → Rev 195

/roboti/istrobot/camerus/SW/876/camerus.c
44,8 → 44,8
enum stavy {start,rozjezd,jizda,cihla,cil};
stavy stav; // Kde jsme na trati
int8 cas; // Cas hrany bila/cerna v radce
int8 stred; // vystredeni kolecka
 
 
inline void brzda()
{
int8 n,i;
79,15 → 79,11
 
for(n=0; n<14; n++)
{
set_adc_channel(MODRA); // Kroutitko na vystredeni predniho kolecka
Delay_ms(1);
offset=read_adc();
 
output_high(SERVO); // Odvysilani impuzu 1 az 2ms pro servo
delay_us(1000);
delay_us(offset);
delay_us(offset);
delay_us(offset);
delay_us(stred);
delay_us(stred);
delay_us(stred);
delay_us(angle);
delay_us(angle);
output_low(SERVO);
99,7 → 95,7
EXT_isr() // Preruseni od prekazky
{
int8 i;
 
set_pwm1_duty(0); // reverz (zabrzdi)
set_pwm2_duty(0);
output_high(MOT_L); // vzad
122,10 → 118,11
return;
};
 
set_adc_channel(DALKOMER); // Prepni A/D prevodnik na detektor cihly
SetServo((CASAVR-CASMIN)); // rovne
 
set_pwm1_duty(140); // vpred
set_pwm2_duty(140);
set_pwm1_duty(100); // vpred
set_pwm2_duty(100);
output_low(MOT_L);
output_low(MOT_R);
i=0;
135,8 → 132,8
while(!input(ODO));
i++;
if(i==8) return; // nedojeli jsme k cihle, jed dal
}
brzdi:
};
brzdi:
set_pwm1_duty(0); // reverz (zabrzdi)
set_pwm2_duty(0);
output_high(MOT_L);
333,7 → 330,7
stav=start;
trasa=0;
 
// ... Hlavni smycka ...
// ......... Hlavni smycka .........
while(true)
{
int8 pom;
359,15 → 356,11
// Na konci obrazovaho radku to blbne. Jednak chyba od apertury
// a vubec to nejak na kraji nefunguje.
 
set_adc_channel(MODRA); // Kroutitko na vystredeni predniho kolecka
Delay_ms(1);
offset=read_adc();
 
output_high(SERVO); // Odvysilani impuzu 1 az 2ms pro servo
delay_us(1000);
delay_us(offset);
delay_us(offset);
delay_us(offset);
delay_us(stred);
delay_us(stred);
delay_us(stred);
delay_us(cas);
delay_us(cas);
output_low(SERVO);
395,9 → 388,6
set_pwm2_duty(0);
}
 
set_adc_channel(DALKOMER); // Prepni A/D prevodnik na detektor cihly
Delay_ms(1);
 
if((stav==jizda)&&(trasa>50)) // musi to alespon 1s jet
{
ext_int_edge(H_TO_L); // Nastav podminky preruseni od cihly
407,15 → 397,22
};
 
if(stav==start) // Snimkuje, toci servem a ceka na start
if(read_adc()<128)
{
disp(0x80);
while(read_adc()<128); // Cekej, dokud starter neda ruku pryc
set_pwm1_duty(255); // Rychly rozjezd !!! Zkontrolovat na oscyloskopu
set_pwm2_duty(255);
disp(0x1);
delay_ms(400);
stav=jizda;
set_adc_channel(MODRA); // Kroutitko na vystredeni predniho kolecka
Delay_ms(1);
stred=read_adc();
set_adc_channel(DALKOMER); // Prepni A/D prevodnik na detektor cihly
Delay_ms(1);
if(read_adc()<128)
{
disp(0x80);
while(read_adc()<128); // Cekej, dokud starter neda ruku pryc
set_pwm1_duty(255); // Rychly rozjezd !!! Zkontrolovat na oscyloskopu
set_pwm2_duty(255);
disp(0x1);
delay_ms(400);
stav=jizda;
};
}
 
pom=0x80; // Zobrazeni pozice cary na displayi
/roboti/istrobot/camerus/SW/876/objizdka_R.c
73,7 → 73,7
while(input(ODO));
while(!input(ODO));
n++;
if(n==9) break;
if(n==10) break;
}
set_pwm1_duty(0); // reverz (zabrzdi)
set_pwm2_duty(0);
113,7 → 113,7
while(input(ODO));
while(!input(ODO));
n++;
if(n==9) break;
if(n==8) break;
}
/*
set_pwm1_duty(0); // reverz (zabrzdi)