Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Test.c
- *
- * Created on: Apr 18, 2018
- * Author: cabarnes
- */
- /*
- * main.c
- */
- #include "SERVO.h"
- #include "timer.h"
- #include "uart.h"
- #include "lcd.h"
- #include "ir.h"
- #include "math.h"
- #include "Sonar.h"
- #include "button.h"
- #include <stdbool.h>
- #include "driverlib/interrupt.h"
- #include <inc/tm4c123gh6pm.h>
- #include "advancedmovement.h"
- #include "scan.h"
- /*#define TIMER4B_PRESCALER 50
- volatile unsigned rising_time; // start time of the return pulse
- volatile unsigned falling_time; // end time of the return pulse
- volatile int flag = 0;
- //interrupt for the sonar to capture the rising and falling edge, moved here for compatability issues
- void TIMER3B_Handler(void) {
- if(TIMER3_RIS_R &= 0x400){
- int event_time = TIMER3_TBR_R;
- if(flag == 0) {
- //rising
- rising_time = event_time;
- flag = 1;
- }
- else if(flag == 1) {
- //falling
- falling_time = event_time;
- flag = 2;
- }
- }
- TIMER3_ICR_R |=0x400;
- }*/
- //Rotates the servo by 2 degrees from 0 to 180 and takes a measurment with the ir and sonar sensors at each increment,
- //while doing this it keeps track of the number of objects it detects and their widths,
- //when 180 is reached it points to the smallest object
- void main(void) {
- //initilize the IR sensor, Sonar sensor, Servo, LCD and clock
- lcd_init();
- servo_timer_init();
- uart_init();
- adc_init();
- timer_init();
- sonar_init();
- //putty variables
- char data1 = 0;
- char uartStr[80];
- //servo variables
- int counter = 7500;
- //set the servo to 0 degrees by changing the matcher value
- TIMER1_TBMATCHR_R = 0x04E200 - counter;
- oi_t *sensor_data = oi_alloc();
- oi_init(sensor_data);
- //char password[] = "password";
- //WiFi_start(password);
- int raw = 0;
- int deg = 0;
- int move_dist = 0;
- int command = 0;
- char message[5] = {0,0,0,0,0};
- int i = 0;
- while(1){
- data1 = uart_receive();
- //check if enter was pressed, if it was print out the whole string of characters and start a new line in putty
- if(data1 == 'S' || data1 == 's'){
- lcd_printf("test2");
- timer_waitMillis(250);
- data1 = 0;
- data1 = uart_receive();
- lcd_printf("%c fuck", data1);
- timer_waitMillis(250);
- deg = data1;
- scan(raw, deg);
- }
- }
- }
- // data = uart_receive();
- // //check if enter was pressed, if it was print out the whole string of characters and start a new line in putty
- // lcd_printf("%c",data);
- // timer_waitMillis(250);
- // if(data == '\r'){
- // uart_sendChar('\r');
- // uart_sendChar('\n');
- //
- // //lcd_printf("%.*s", i, message);
- //
- // lcd_printf("%c %c %c %c %c",message[0],message[1],message[2],message[3],message[4]);
- // timer_waitMillis(250);
- // command = 1;
- // i = 0;
- // data = 0;
- // }
- // else if(data != 0){ //so it doesn't always set message[i] = 0
- // message[i] = data;
- // lcd_printf("%c", message[i]);
- // timer_waitMillis(250);
- // i++;
- // data = 0;
- // }
- //
- //
- //if(command == 1){
- // if(message[0] == 'F' || message[0] == 'f'){
- // lcd_printf("test2");
- // if(message[2] != 0){
- // move_dist = (message[1] * 10) + message[2];
- // }
- // else{
- // move_dist = message[1];
- // }
- // move_forward(sensor_data, move_dist * 10);
- // }
- // if(message[0] == 'B' || message[0] == 'b'){
- // if(message[2] != 0){
- // move_dist = ((message[1] * 10) + message[2]);
- // }
- // else{
- // move_dist = message[1];
- // }
- // move_backward(sensor_data, move_dist * 10);
- // }
- // if(message[0] == 'R' || message[0] == 'r'){
- // if(message[3] != 0){
- // deg = (message[1] * 100) + (message[2] * 10) + message[3];
- // }
- // else if(message[2] != 0){
- // deg = (message[1] * 10) + message[2];
- // }
- // else{
- // deg = message[1];
- // }
- // turn_clockwise(sensor_data, deg);
- // sprintf(uartStr, "%d turn to the right complete", deg);
- // uart_sendStr(uartStr);
- // }
- // if(message[0] == 'L' || message[0] == 'l'){
- // if(message[3] != 0){
- // deg = (message[1] * 100) + (message[2] * 10) + message[3];
- // }
- // else if(message[2] != 0){
- // deg = (message[1] * 10) + message[2];
- // }
- // else{
- // deg = message[1];
- // }
- // turn_counterClockwise(sensor_data, deg);
- // sprintf(uartStr, "%d turn to the left complete", deg);
- // uart_sendStr(uartStr);
- // }
- // if(message[0] == 'S' || message[0] == 's'){
- // if(message[1] == 'R' || message[1] == 'r'){
- // raw = 1;
- // if(message[4] != 0){
- // deg = (message[2] * 100) + (message[3] * 10) + message[4];
- // }
- // else{
- // deg = (message[2] * 10) + message[3];
- // }
- // scan(raw, deg); // return raw data
- // }
- // else{
- // if(message[3] != 0){
- // deg = (message[1] * 100) + (message[2] * 10) + message[3];
- // }
- // else{
- // deg = (message[1] * 10) + message[2];
- // }
- // scan(raw, deg);//return info about objects
- // raw = 0;
- // }
- // }
- // for(i = 0; i < 5; i++){
- // message[i] = 0;
- // }
- // command = 0;
- // }
- // }
- //}
- //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement