Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.57 KB | None | 0 0
  1. if 1
  2.  
  3. void motor_forward_fixed(uint8 speed, uint32 delay)
  4. {
  5.     MotorDirLeft_Write(0);
  6.     MotorDirRight_Write(0);
  7.     float ratio = 1.05; //
  8.    
  9.     uint8 l_speed = speed;
  10.     uint8 r_speed = (float)speed / ratio;
  11.    
  12.     motor_turn(l_speed, r_speed, delay);
  13. }
  14.    
  15.  
  16. // pitää toteuttaa:
  17. void turn_left();
  18. void turn_right();
  19. void mild_turn_left();
  20. void mild_turn_right();
  21. void hard_turn_left();
  22. void hard_turn_right();
  23.  
  24.  
  25. void zmain(void)
  26. {
  27.     // motor
  28.     motor_start();
  29.     motor_forward(0, 0);
  30.    
  31.     // reflectance
  32.     //struct sensors_ ref;
  33.     struct sensors_ dig;
  34.    
  35.     reflectance_start();
  36.     reflectance_set_threshold(9000, 9000, 11000, 11000, 9000, 9000); // set center sensor threshold to 11000 and others to 9000
  37.    
  38.     // odotetaan napin painamista
  39.     while (SW1_Read() == 1)
  40.     {
  41.         vTaskDelay(200);
  42.     }
  43.    
  44.     motor_forward_fixed(100, 0);
  45.    
  46.     for(;;)
  47.     {
  48.         reflectance_digital(&dig); // dig.l3, dig.l2, dig.l1, dig.r1, dig.r2, dig.r3        
  49.        
  50.         // VIIVAN SEURANTA
  51.        
  52.         if (dig.l3 == 0 && dig.l2 == 0 && dig.l1 == 1 && dig.r1 == 1 && dig.r2 == 0 && dig.r3 == 0)
  53.         {
  54.             // mene suoraan
  55.             // motor_forward_fixed(100, 0);
  56.         } else if (dig.l3 == 0 && dig.l2 == 1 && dig.l1 == 1 && dig.r1 == 0 && dig.r2 == 0 && dig.r3 == 0) {
  57.             // käänny oikea
  58.             // turn_right();
  59.         } else if (dig.l3 == 0 && dig.l2 == 0 && dig.l1 == 0 && dig.r1 == 1 && dig.r2 == 1 && dig.r3 == 0) {
  60.             // käänny vasen
  61.             // turn_left();
  62.         } else if (dig.l3 == 1 && dig.l2 == 1 && dig.l1 == 0 && dig.r1 == 0 && dig.r2 == 0 && dig.r3 == 0) {
  63.             // käänny vahva oikea
  64.             // hard_turn_right();
  65.         } else if (dig.l3 == 0 && dig.l2 == 0 && dig.l1 == 0 && dig.r1 == 0 && dig.r2 == 1 && dig.r3 == 1) {
  66.             // käänny vahva vasen
  67.             // hard_turn_right();
  68.         } else if (dig.l3 == 0 && dig.l2 == 0 && dig.l1 == 0 && dig.r1 == 1 && dig.r2 == 0 && dig.r3 == 0) {
  69.             // käänny loiva vasen
  70.             // mild_turn_left();
  71.         } else if (dig.l3 == 0 && dig.l2 == 0 && dig.l1 == 1 && dig.r1 == 0 && dig.r2 == 0 && dig.r3 == 0) {
  72.             // käänny loiva oikea
  73.             // mild_turn_right();
  74.         } else if (dig.l3 == 1 && dig.l2 == 1 && dig.l1 == 1 && dig.r1 == 1 && dig.r2 == 1 && dig.r3 == 1) {
  75.             // kaikki on ykkösiä
  76.             // odota IR tai linjalaskuri++;
  77.         } // lisää iffejä...
  78.        
  79.        
  80.         vTaskDelay(200);
  81.     }
  82. }    
  83. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement