Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 152 → Rev 153

/roboti/istrobot/camerus/SW/876/camerus.c
3,10 → 3,10
#USE FAST_IO (C)
 
// kroutitka
#define CERVENA 1 // AN1
#define CERNA 4 // AN4
#define ZELENA 3 // AN3
#define MODRA 0 // AN0
#define CERVENA 3 // AN3/RA3
#define CERNA 2 // AN2/RA2
#define ZELENA 1 // AN1/RA0
#define MODRA 0 // AN0/RA1
 
// I/O
#define LED PIN_C0
13,12 → 13,19
#define HREF PIN_C5
#define PIX PIN_C6
#define SERVO PIN_B7
#define MOT_L PIN_B5
#define MOT_R PIN_B6
 
void main()
{
int8 cas;
int16 offset;
int8 offset;
int8 rr; // Rozumna rychlost
int8 r1;
int8 r2;
 
int16 ble;
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
31,6 → 38,11
 
set_tris_c(0b11111000);
 
set_pwm1_duty(0); // Zastav motory
set_pwm2_duty(0);
output_low(MOT_L);
output_low(MOT_R);
 
output_high(LED);
 
delay_ms(200);
86,7 → 98,7
i2c_stop();
 
output_low(LED);
delay_ms(100);
delay_ms(200);
 
/*
i2c_start(); // BW + freeze AGC/AEC
96,11 → 108,13
i2c_stop();
*/
output_high(LED);
delay_ms(100);
delay_ms(200);
output_low(LED);
 
cas=128;
 
ble=0;
while(true)
{
while(!input(HREF));
128,7 → 142,30
delay_us(cas);
// delay_us(cas);
output_low(SERVO);
set_pwm1_duty(cas);
set_pwm2_duty(255-cas);
ble++;
set_adc_channel(ZELENA);
Delay_ms(1);
offset=read_adc();
set_adc_channel(CERNA);
Delay_ms(1);
rr=read_adc();
r1=cas>>1;
r2=255-offset-(cas>>1);
if (ble==99)
{
set_pwm1_duty(rr);
set_pwm2_duty(rr);
};
if ((ble>100)&&(ble<60000))
{
if (r1<=rr) set_pwm1_duty(r1);
if (r2<=rr) set_pwm2_duty(r2);
}
else
{
set_pwm1_duty(0);
set_pwm2_duty(0);
}
};
}