11,9 → 11,9 |
#define RR_PRERUSENI 50 // Rozumna rychlost pro priblizeni se k preruseni |
#define BRZDNA_DRAHA 0x15 // Jak daleko pred problemem se zacne brzdit |
#define TUHOS 100 // Jak dlouho se bude couvat po narazu na naraznik |
#define ODODO_CIHLA 0xD0 |
#define ODODO_TUNEL 0xFFF |
#define ODODO_PRERUSENI 0xFFF//0xB4 |
#define ODODO_PROBLEM1 0xFFF |
#define ODODO_PROBLEM2 0xFFF |
#define ODODO_PROBLEM3 0xFFF |
|
// Adresy IIC periferii |
#define COMPAS_ADR 0xC0 |
82,6 → 82,7 |
int8 rr; // Promenna na ulozeni Rozumne rychlost |
int8 rrold; |
int16 odo_preruseni, odo_cihla, odo_tunel; // Problemy na trati |
int16 odo_problem1, odo_problem2, odo_problem3; // Problemy na trati |
|
// Zobrazeni jednoho byte na modulu LEDbar |
inline void disp(int8 x) |
463,11 → 464,11 |
log=0; // Zacatek logu v cerne skrince |
last_log_odo=0; // Posledni zaznam odometrie do logu |
|
// ReadBlackBox(); // Vycteni zaznamu z Black Boxu |
ReadBlackBox(); // Vycteni zaznamu z Black Boxu |
|
odo_cihla=ODODO_CIHLA-BRZDNA_DRAHA; |
odo_tunel=ODODO_TUNEL-BRZDNA_DRAHA; |
odo_preruseni=ODODO_PRERUSENI-BRZDNA_DRAHA; |
odo_problem1=ODODO_PROBLEM1-BRZDNA_DRAHA; |
odo_problem2=ODODO_PROBLEM2-BRZDNA_DRAHA; |
odo_problem3=ODODO_PROBLEM3-BRZDNA_DRAHA; |
|
// ........................... Hlavni smycka ................................ |
while(true) |
573,6 → 574,9 |
if((ododo>odo_preruseni)&&(ododo<(odo_preruseni+8))) rr=RR_PRERUSENI; |
if((ododo>odo_cihla)&&(ododo<(odo_cihla+8))) rr=RR_PRERUSENI; |
if((ododo>odo_tunel)&&(ododo<(odo_tunel+8))) rr=RR_PRERUSENI; |
if((ododo>odo_problem1)&&(ododo<(odo_problem1+8))) rr=RR_PRERUSENI; |
if((ododo>odo_problem2)&&(ododo<(odo_problem2+8))) rr=RR_PRERUSENI; |
if((ododo>odo_problem3)&&(ododo<(odo_problem3+8))) rr=RR_PRERUSENI; |
|
// Elektronicky diferencial 2. cast |
if (r1>(CASAVR-CASMIN-rr)) r1=(r1<<1)+rr-(CASAVR-CASMIN); // Neco jako nasobeni |