Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 206 → Rev 209

/roboti/istrobot/cholerik/cholerik.c/cholerik.c
4,7 → 4,7
#include "cholerik.h"
 
// Konstanty
#define TRESHOLD 0x250 // rozhodovaci uroven pro okraj areny
#define TRESHOLD 0x90 // rozhodovaci uroven pro okraj areny
//#define DEBUG1 1 // Diagnostika pohonu
 
//motory //Napred vypnout potom zapnout!
53,23 → 53,24
if (((FRONT && stav) || (!FRONT && !stav))) {if (f<255) f++;} else {f=0;};
majak++;
stav = ((majak & 0b1) == 0b1);
if (input(PIN_A3)) arena_r=TRUE; else arena_r=FALSE;
if (input(PIN_A2)) arena_l=TRUE; else arena_l=FALSE;
if (stav)
{
if (read_adc(ADC_READ_ONLY) > TRESHOLD) arena_l=TRUE; else arena_l=FALSE;
set_adc_channel(R); // prepnuti kanalu ADC, je treba min 10us na ustaleni
delay_us(10);
read_adc(ADC_START_ONLY);
// if (read_adc(ADC_READ_ONLY) > TRESHOLD) arena_l=TRUE; else arena_l=FALSE;
// set_adc_channel(R); // prepnuti kanalu ADC, je treba min 10us na ustaleni
// delay_us(10);
// read_adc(ADC_START_ONLY);
set_pwm1_duty(27); // 1:1
}
else
{
if (read_adc(ADC_READ_ONLY) > TRESHOLD) arena_r=TRUE; else arena_r=FALSE;
set_adc_channel(L); // prepnuti kanalu ADC, je treba min 10us na ustaleni
delay_us(10);
read_adc(ADC_START_ONLY);
// if (read_adc(ADC_READ_ONLY) > TRESHOLD) arena_r=TRUE; else arena_r=FALSE;
// set_adc_channel(L); // prepnuti kanalu ADC, je treba min 10us na ustaleni
// delay_us(10);
// read_adc(ADC_START_ONLY);
set_pwm1_duty(55); // 1:0
};
 
if (GRAVITY) {if (g<255) g++;} else g=0;
if (g>3 && !diag) {FL; FR; while(TRUE);}; // kdyz nas preklopi, nedej se
}
119,27 → 120,42
};
#endif
 
if (GRAVITY) {
diag=TRUE;
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
while (true) // Diagnostika cidel
//!!!!!!!!!!!!!!!
/*
while(true)
{
set_adc_channel(R); // prepnuti kanalu ADC, je treba min 10us na ustaleni
delay_us(10);
read_adc(ADC_START_ONLY);
delay_ms(1);
delay_ms(read_adc(ADC_READ_ONLY));
beep(1000,200);
}
*/
if (GRAVITY)
{
if (g>100) beep(800,100);
Delay_ms(50);
if (arena_l) beep(1000,200);
Delay_ms(50);
if (arena_r) beep(2000,300);
Delay_ms(50);
if (sr>10) beep(3000,400);
Delay_ms(50);
if (f>10) beep(4000,500);
Delay_ms(50);
if (sl>10) beep(5000,500);
Delay_ms(50);
if (b>10) beep(6000,600);
Delay_ms(50);
}};
diag=TRUE;
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
while (true) // Diagnostika cidel
{
if (g>100) beep(800,100);
Delay_ms(50);
if (arena_l) {beep(1000,200); delay_ms(10);beep(1000,200);};
Delay_ms(50);
if (arena_r) {beep(2000,300); delay_ms(10);beep(2000,300);};
Delay_ms(50);
 
if (sr>10) beep(3000,400);
Delay_ms(50);
if (f>10) beep(4000,500);
Delay_ms(50);
if (sl>10) beep(5000,500);
Delay_ms(50);
if (b>10) beep(6000,600);
Delay_ms(50);
}
};
}
 
void main()
149,10 → 165,13
STOPL; STOPR; // zastavi motory
 
setup_oscillator(OSC_8MHZ|OSC_INTRC); // CPU clock 8MHz
setup_adc_ports(sAN2|sAN3|VSS_VDD); // prevodniky na cidla na okraj areny
setup_adc(ADC_CLOCK_INTERNAL);
// setup_adc_ports(sAN2|sAN3|VSS_VDD); // prevodniky na cidla na okraj areny
// setup_adc(ADC_CLOCK_INTERNAL);
//!!!!!!!!!!!!!!!!!!
setup_adc_ports(NO_ANALOGS); // prevodniky na cidla na okraj areny
setup_adc(ADC_OFF);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); // Casovac pro SW PWM a cteni cidel
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); // Casovac pro SW PWM a cteni cidel
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DIV_BY_1,54,1); // Casovac pro PWM pro IR sensory cca 36kHz
setup_ccp1(CCP_PWM); // HW PWM ON
170,12 → 189,11
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
/*---------------------------------------------------------------------------*/
for (n=1;n<=3;n++) // 5s do zacatku souboje
for (n=1;n<=5;n++) // 5s do zacatku souboje
{
Delay_ms(990);
Delay_ms(720);
Beep(1000,200);
}
Delay_ms(300);
 
while(true) // hlavni smycka
{