7,7 → 7,7 |
#USE FAST_IO (C) // Brana C je ve FAST_IO modu, aby slo rychle cist z kamery |
|
// Rychlostni konstanty |
#define RR_CIHLA 60 // Rozumna rychlost pro objizdeni cihly |
#define RR_CIHLA 50 // Rozumna rychlost pro objizdeni cihly |
#define RR_PRERUSENI 50 // Rozumna rychlost pro priblizeni se k preruseni |
#define BRZDNA_DRAHA 0x20 // Jak daleko pred problemem se zacne brzdit |
#define TUHOS 100 // Jak dlouho se bude couvat po narazu na naraznik |
125,7 → 125,7 |
} |
|
// Zaznam LOGu do EEPROM |
void SaveLog(int8 log) |
void SaveLog(int8 xlog) |
{ |
int8 n,i; |
|
137,11 → 137,11 |
write_eeprom(n+2,bb_l[i]); |
i++; |
}; |
write_eeprom(EEMAX,log); // Zapis poctu zaznamu na konec EEPROM |
write_eeprom(EEMAX,xlog); // Zapis poctu zaznamu na konec EEPROM |
} |
|
// Zaznam do Logu do RAM |
void LogLog(int8 flag, int16 gap) |
void LogLog(int8 reason, int16 log_delay) |
{ |
int16 timer_pom; |
|
148,9 → 148,9 |
timer_pom=get_timer1(); // Timer se musi vycist atomicky |
bb_l[log]=make8(timer_pom,0); // Zaznam |
bb_h[log]=make8(timer_pom,1); |
bb_f[log]=flag; // Typ zaznamu |
if(log<MAXLOG) log++; // Ukazatel na dalsi zaznam |
last_log_odo=timer_pom+gap; // Dalsi mereni nejdrive po ujeti def. vzdalenosti |
bb_f[log]=reason; // Typ zaznamu |
if(log<(MAXLOG-1)) log++; // Ukazatel na dalsi zaznam |
last_log_odo=timer_pom+log_delay; // Dalsi mereni nejdrive po ujeti def. vzdalenosti |
rr=rrold; // Problem skoncil, znovu jed Rozumnou Rychlosti |
} |
|
535,11 → 535,11 |
gap=0; |
}; |
|
if(input(PROXIMITY) && ((stav==jizda)||(stav==cihla))) // Tunel |
if(!input(PROXIMITY) && ((stav==jizda)||(stav==cihla))) // Tunel |
{ |
if(last_log_odo<get_timer1()) // Aby nebyly zaznamy v logu prilis huste, musi se napred neco ujet od minuleho zaznamu |
{ |
LogLog(0,16); // Priznak tunelu; dalsi mereni nejdrive po ujeti 48 cm |
LogLog(0xDD,16); // Priznak tunelu; dalsi mereni nejdrive po ujeti 48 cm |
rr=rrold; // Vjeli jsme do tunelu, znovu jed rychle |
} |
}; |