fatboyslim / Mbed 2 deprecated buttontest

Dependencies:   FRDM-TFC mbed

Committer:
bbbobbbieo
Date:
Thu Feb 19 19:31:37 2015 +0000
Revision:
8:946806df7347
Parent:
7:455e7dd338ee
Child:
9:2b028ee421ad
added shit code for thinking about line-scan data processing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bbbobbbieo 3:c7caa058fc50 1 //#include "mbed.h"
bbbobbbieo 1:21d40d90b2f0 2 #include "TFC.h"
bbbobbbieo 0:d57117b2188d 3
bbbobbbieo 0:d57117b2188d 4 DigitalOut myled(LED1);
bbbobbbieo 0:d57117b2188d 5
bbbobbbieo 1:21d40d90b2f0 6 int main()
bbbobbbieo 1:21d40d90b2f0 7 {
bbbobbbieo 7:455e7dd338ee 8 //run this before anything
bbbobbbieo 2:d8a51492b646 9 TFC_Init();
bbbobbbieo 2:d8a51492b646 10
bbbobbbieo 7:455e7dd338ee 11 //variables
bbbobbbieo 4:7584ff0426f1 12 float current_servo_position = 0;
bbbobbbieo 6:44d1079f076c 13 float current_left_motor_speed = 0;
bbbobbbieo 6:44d1079f076c 14 float current_right_motor_speed = 0;
bbbobbbieo 6:44d1079f076c 15 bool rear_motor_enable_flag = true;
bbbobbbieo 7:455e7dd338ee 16 bool linescan_ping_pong = false;
bbbobbbieo 7:455e7dd338ee 17 bool linescan_enable = false;
bbbobbbieo 4:7584ff0426f1 18
bbbobbbieo 7:455e7dd338ee 19 uint16_t MyImage0Buffer[2][128];
bbbobbbieo 7:455e7dd338ee 20 uint16_t MyImage1Buffer[2][128];
bbbobbbieo 7:455e7dd338ee 21
bbbobbbieo 7:455e7dd338ee 22
bbbobbbieo 7:455e7dd338ee 23 // major loop
bbbobbbieo 1:21d40d90b2f0 24 while(1)
bbbobbbieo 1:21d40d90b2f0 25 {
bbbobbbieo 2:d8a51492b646 26
bbbobbbieo 3:c7caa058fc50 27 if (TFC_ReadPushButton(0) != 0 )
bbbobbbieo 3:c7caa058fc50 28 {
bbbobbbieo 3:c7caa058fc50 29 TFC_BAT_LED0_ON;
bbbobbbieo 6:44d1079f076c 30 wait(0.004);
bbbobbbieo 3:c7caa058fc50 31 TFC_BAT_LED0_OFF;
bbbobbbieo 6:44d1079f076c 32 wait(0.004);
bbbobbbieo 4:7584ff0426f1 33
bbbobbbieo 6:44d1079f076c 34 current_servo_position = current_servo_position-.005;
bbbobbbieo 6:44d1079f076c 35 if(current_servo_position <= -0.4)
bbbobbbieo 6:44d1079f076c 36 current_servo_position = -0.4;
bbbobbbieo 5:e7e4f1967fb8 37 TFC_SetServo(0, current_servo_position);
bbbobbbieo 7:455e7dd338ee 38 }// end check button0
bbbobbbieo 4:7584ff0426f1 39
bbbobbbieo 3:c7caa058fc50 40 else
bbbobbbieo 3:c7caa058fc50 41 {
bbbobbbieo 3:c7caa058fc50 42 TFC_BAT_LED0_ON;
bbbobbbieo 3:c7caa058fc50 43 }
bbbobbbieo 4:7584ff0426f1 44
bbbobbbieo 4:7584ff0426f1 45 if (TFC_ReadPushButton(1) != 0 )
bbbobbbieo 4:7584ff0426f1 46 {
bbbobbbieo 4:7584ff0426f1 47 TFC_BAT_LED1_ON;
bbbobbbieo 6:44d1079f076c 48 wait(0.004);
bbbobbbieo 4:7584ff0426f1 49 TFC_BAT_LED1_OFF;
bbbobbbieo 6:44d1079f076c 50 wait(0.004);
bbbobbbieo 4:7584ff0426f1 51
bbbobbbieo 6:44d1079f076c 52 current_servo_position = current_servo_position+.005;
bbbobbbieo 6:44d1079f076c 53 if(current_servo_position >= 0.4)
bbbobbbieo 6:44d1079f076c 54 current_servo_position = 0.4;
bbbobbbieo 5:e7e4f1967fb8 55 TFC_SetServo(0, current_servo_position);
bbbobbbieo 7:455e7dd338ee 56 }// end check button1
bbbobbbieo 4:7584ff0426f1 57
bbbobbbieo 4:7584ff0426f1 58 else
bbbobbbieo 4:7584ff0426f1 59 {
bbbobbbieo 4:7584ff0426f1 60 TFC_BAT_LED1_ON;
bbbobbbieo 4:7584ff0426f1 61 }
bbbobbbieo 4:7584ff0426f1 62
bbbobbbieo 6:44d1079f076c 63 if(rear_motor_enable_flag)
bbbobbbieo 6:44d1079f076c 64 {
bbbobbbieo 7:455e7dd338ee 65 TFC_HBRIDGE_ENABLE;
bbbobbbieo 6:44d1079f076c 66 //current_left_motor_speed = current_left_motor_speed + .3*(TFC_ReadPot(0));
bbbobbbieo 6:44d1079f076c 67 //current_right_motor_speed = current_right_motor_speed + .3*(TFC_ReadPot(1));
bbbobbbieo 6:44d1079f076c 68
bbbobbbieo 7:455e7dd338ee 69 //current_left_motor_speed = .3*(TFC_ReadPot(0));
bbbobbbieo 7:455e7dd338ee 70 //current_right_motor_speed = .3*(TFC_ReadPot(1));
bbbobbbieo 7:455e7dd338ee 71
bbbobbbieo 7:455e7dd338ee 72 current_left_motor_speed = (TFC_ReadPot(0));
bbbobbbieo 7:455e7dd338ee 73 current_right_motor_speed = (TFC_ReadPot(1));
bbbobbbieo 6:44d1079f076c 74
bbbobbbieo 6:44d1079f076c 75 if(current_left_motor_speed >= 0.4)
bbbobbbieo 6:44d1079f076c 76 current_left_motor_speed= 0.4;
bbbobbbieo 6:44d1079f076c 77 if(current_right_motor_speed >= 0.4)
bbbobbbieo 6:44d1079f076c 78 current_right_motor_speed= 0.4;
bbbobbbieo 6:44d1079f076c 79 if(current_left_motor_speed <= -0.4)
bbbobbbieo 6:44d1079f076c 80 current_left_motor_speed= -0.4;
bbbobbbieo 6:44d1079f076c 81 if(current_right_motor_speed <= -0.4)
bbbobbbieo 6:44d1079f076c 82 current_right_motor_speed= -0.4;
bbbobbbieo 6:44d1079f076c 83
bbbobbbieo 6:44d1079f076c 84 TFC_SetMotorPWM(current_left_motor_speed, current_right_motor_speed);
bbbobbbieo 7:455e7dd338ee 85 }// end motor enabled
bbbobbbieo 7:455e7dd338ee 86 else
bbbobbbieo 7:455e7dd338ee 87 {
bbbobbbieo 7:455e7dd338ee 88 TFC_HBRIDGE_DISABLE;
bbbobbbieo 7:455e7dd338ee 89 }// end motor disabled
bbbobbbieo 7:455e7dd338ee 90
bbbobbbieo 7:455e7dd338ee 91 if (linescan_enable)
bbbobbbieo 7:455e7dd338ee 92 {
bbbobbbieo 7:455e7dd338ee 93 if (TFC_LineScanImageReady !=0)
bbbobbbieo 7:455e7dd338ee 94 {
bbbobbbieo 7:455e7dd338ee 95 if (linescan_ping_pong) //checking channel 0
bbbobbbieo 7:455e7dd338ee 96 {
bbbobbbieo 7:455e7dd338ee 97 //...
bbbobbbieo 7:455e7dd338ee 98 linescan_ping_pong = false;
bbbobbbieo 7:455e7dd338ee 99 }
bbbobbbieo 7:455e7dd338ee 100 else //checking channel 1
bbbobbbieo 7:455e7dd338ee 101 {
bbbobbbieo 7:455e7dd338ee 102 //...
bbbobbbieo 7:455e7dd338ee 103 linescan_ping_pong = true;
bbbobbbieo 7:455e7dd338ee 104 }
bbbobbbieo 7:455e7dd338ee 105
bbbobbbieo 7:455e7dd338ee 106 TFC_LineScanImageReady ==0; // since we used it, we reset the flag
bbbobbbieo 7:455e7dd338ee 107 }// end imageready
bbbobbbieo 7:455e7dd338ee 108 }// end linescan stuff
bbbobbbieo 0:d57117b2188d 109 }
bbbobbbieo 0:d57117b2188d 110 }
bbbobbbieo 8:946806df7347 111
bbbobbbieo 8:946806df7347 112
bbbobbbieo 8:946806df7347 113
bbbobbbieo 8:946806df7347 114 // shit code
bbbobbbieo 8:946806df7347 115
bbbobbbieo 8:946806df7347 116 //this block is the worst image processing algorithm ever
bbbobbbieo 8:946806df7347 117 /*
bbbobbbieo 8:946806df7347 118 black_values_list[];
bbbobbbieo 8:946806df7347 119 black_value_count = 0;
bbbobbbieo 8:946806df7347 120 black_center_value = 0;
bbbobbbieo 8:946806df7347 121 sum_black = 0;
bbbobbbieo 8:946806df7347 122
bbbobbbieo 8:946806df7347 123 for (int i=0; i<128; i++)
bbbobbbieo 8:946806df7347 124 {
bbbobbbieo 8:946806df7347 125 if (camera_data[i]< 100)
bbbobbbieo 8:946806df7347 126 {
bbbobbbieo 8:946806df7347 127 black_values_list[black_value_count] = i;
bbbobbbieo 8:946806df7347 128 black_value_count++;
bbbobbbieo 8:946806df7347 129 }
bbbobbbieo 8:946806df7347 130 }
bbbobbbieo 8:946806df7347 131
bbbobbbieo 8:946806df7347 132 for(int i=0; i<black_value_count; i++)
bbbobbbieo 8:946806df7347 133 {
bbbobbbieo 8:946806df7347 134 sum_black += black_values_list[i];
bbbobbbieo 8:946806df7347 135 }
bbbobbbieo 8:946806df7347 136
bbbobbbieo 8:946806df7347 137 black_center_value= sum_black / black_value_count;
bbbobbbieo 8:946806df7347 138
bbbobbbieo 8:946806df7347 139 if (black_center_value > 64)
bbbobbbieo 8:946806df7347 140 servo_left();
bbbobbbieo 8:946806df7347 141
bbbobbbieo 8:946806df7347 142 if (black_center_value < 64)
bbbobbbieo 8:946806df7347 143 servo_right();
bbbobbbieo 8:946806df7347 144 */
bbbobbbieo 8:946806df7347 145
bbbobbbieo 8:946806df7347 146