Advertisement
Guest User

Untitled

a guest
Jul 28th, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.34 KB | None | 0 0
  1. /*
  2.  * File:   Spin_main.c
  3.  * Author: Vivian and Harini
  4.  *
  5.  * Created on July 26, 2016, 10:54 AM
  6.  * Objective: Have the roach spin, stop, and do it 3 times before stopping forever
  7.  *
  8.  */
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include "BOARD.h"
  12. #include "roach.h"
  13. #include "serial.h"
  14. #include "timers.h"
  15. //other includes here
  16. #include "Navigation.h"
  17. #include "Bumper.h"
  18.  
  19. #define T_360 2400 //time taken for one full revolution (about 2.25 seconds)
  20. #define MAX_SPEED 10
  21.  
  22. void main(void) {
  23.  
  24.     //Initiate functions
  25.     SERIAL_Init();
  26.     BOARD_Init();
  27.     Roach_Init();
  28.     TIMERS_Init();
  29.  
  30.     int spins_remaining = 3;
  31.     int steps = 5; //make the roach spin 3 times
  32.     InitTimer(0, 1);
  33.  
  34.     while (1) {
  35.         if (IsTimerExpired(0)) {
  36.             switch (steps) {
  37.  
  38.                 case 0:
  39.                     Stop();
  40.                     break;
  41.  
  42.                 case 1:
  43.                     if (steps == 1) {
  44.                         InitTimer(0, T_360);
  45.                         RotateLeft(MAX_SPEED);
  46.                         if (IsTimerExpired(0)) {
  47.                             break;
  48.                         }
  49.                     }
  50.  
  51.                 case 2:
  52.                     if (steps == 2) {
  53.                         InitTimer(0, 1500);
  54.                         Stop();
  55.                         if (IsTimerExpired(0)) {
  56.                             break;
  57.                         }
  58.                     }
  59.  
  60.                 case 3:
  61.                     if (steps == 3) {
  62.                         InitTimer(0, T_360);
  63.                         RotateLeft(MAX_SPEED);
  64.                         if (IsTimerExpired(0)) {
  65.                             break;
  66.                         }
  67.                     }
  68.  
  69.                 case 4:
  70.                     if (steps == 4) {
  71.                         InitTimer(0, 1500);
  72.                         Stop();
  73.                         if (IsTimerExpired(0)) {
  74.                             break;
  75.                         }
  76.                     }
  77.  
  78.                 case 5:
  79.                     if (steps == 5) {
  80.                         InitTimer(0, T_360);
  81.                         RotateLeft(MAX_SPEED);
  82.                         if (IsTimerExpired(0)) {
  83.                             break;
  84.                         }
  85.                     }
  86.  
  87.             }
  88.             steps--;
  89.         }
  90.     }
  91.  
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement