fatboyslim / Mbed 2 deprecated bouncesinglecam

Dependencies:   FRDM-TFC mbed

Committer:
bbbobbbieo
Date:
Tue Apr 21 19:09:05 2015 +0000
Revision:
40:14d93245afc4
Parent:
33:faa8e83f1d45
double camera bitches

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mperella 33:faa8e83f1d45 1 //#include "mbed.h"
mperella 33:faa8e83f1d45 2 #include "TFC.h"
mperella 33:faa8e83f1d45 3 #include <iostream>
mperella 33:faa8e83f1d45 4 #include <stdio.h>
mperella 33:faa8e83f1d45 5 //#include "serialib.h"
mperella 33:faa8e83f1d45 6
mperella 33:faa8e83f1d45 7 const float AGGRESSIVE = .43;
mperella 33:faa8e83f1d45 8 const float MODERATE =.41;
mperella 33:faa8e83f1d45 9 const float CONSERVATIVE =.39;
mperella 33:faa8e83f1d45 10 const float STOP =0;
mperella 33:faa8e83f1d45 11 const float PROTECTION_THRESHOLD_UPPER =.7;
mperella 33:faa8e83f1d45 12 const float PROTECTION_THRESHOLD_LOWER =-.7;
mperella 33:faa8e83f1d45 13 const float TURN_FORWARD_ACCEL =0.045;
mperella 33:faa8e83f1d45 14 const float TURN_BACKWARD_ACCEL =0.025;
mperella 33:faa8e83f1d45 15 const float SERVO_CAN_MOVE_IN_ONE_FRAME =0.1;
mperella 33:faa8e83f1d45 16 const float SERVO_MAX =.5;
mperella 33:faa8e83f1d45 17
mperella 33:faa8e83f1d45 18 const int BLACK_THRESHOLD =63;
mperella 33:faa8e83f1d45 19 const int LINE_SCAN_LENGTH =128;
mperella 33:faa8e83f1d45 20
mperella 33:faa8e83f1d45 21
mperella 33:faa8e83f1d45 22 DigitalOut myled(LED1);
mperella 33:faa8e83f1d45 23
mperella 33:faa8e83f1d45 24 int main()
mperella 33:faa8e83f1d45 25 {
mperella 33:faa8e83f1d45 26 //run this before anything
mperella 33:faa8e83f1d45 27 TFC_Init();
mperella 33:faa8e83f1d45 28
mperella 33:faa8e83f1d45 29 //variables
mperella 33:faa8e83f1d45 30 float current_servo_position = 0;
mperella 33:faa8e83f1d45 31 float current_left_motor_speed = 0;
mperella 33:faa8e83f1d45 32 float current_right_motor_speed = 0;
mperella 33:faa8e83f1d45 33
mperella 33:faa8e83f1d45 34 // gains on prop, int, der
mperella 33:faa8e83f1d45 35 // subject to change, need to fine tune
mperella 33:faa8e83f1d45 36
mperella 33:faa8e83f1d45 37 bool rear_motor_enable_flag = true;
mperella 33:faa8e83f1d45 38 bool linescan_ping_pong = false;
mperella 33:faa8e83f1d45 39 bool linescan_enable = true;
mperella 33:faa8e83f1d45 40
mperella 33:faa8e83f1d45 41 bool whiteflag = false;
mperella 33:faa8e83f1d45 42 bool blackflag = false;
mperella 33:faa8e83f1d45 43 bool stopflag = false;
mperella 33:faa8e83f1d45 44
mperella 33:faa8e83f1d45 45 int black_list_one = 0;
mperella 33:faa8e83f1d45 46 int white_list = 0;
mperella 33:faa8e83f1d45 47 int black_list_two = 0;
mperella 33:faa8e83f1d45 48
mperella 33:faa8e83f1d45 49 int black_values_list[LINE_SCAN_LENGTH];
mperella 33:faa8e83f1d45 50 int black_value_count = 0;
mperella 33:faa8e83f1d45 51 int black_center_value = 0;
mperella 33:faa8e83f1d45 52 int sum_black = 0;
mperella 33:faa8e83f1d45 53 int violence_level = 0;
mperella 33:faa8e83f1d45 54
mperella 33:faa8e83f1d45 55 int center_now = 63;
mperella 33:faa8e83f1d45 56 int center_past_1 = 63;
mperella 33:faa8e83f1d45 57 int center_past_2 = 63;
mperella 33:faa8e83f1d45 58 int center_past_3 = 63;
mperella 33:faa8e83f1d45 59 int center_past_4 = 63;
mperella 33:faa8e83f1d45 60
mperella 33:faa8e83f1d45 61 float left_counter =0;
mperella 33:faa8e83f1d45 62 float right_counter =0;
mperella 33:faa8e83f1d45 63 bool turn_left=false;
mperella 33:faa8e83f1d45 64 bool turn_right=false;
mperella 33:faa8e83f1d45 65
mperella 33:faa8e83f1d45 66 float bullshit_offset = .08;
mperella 33:faa8e83f1d45 67
mperella 33:faa8e83f1d45 68 int num_of_straight =0;
mperella 33:faa8e83f1d45 69 int num_of_left =0;
mperella 33:faa8e83f1d45 70 int num_of_right=0;
mperella 33:faa8e83f1d45 71
mperella 33:faa8e83f1d45 72 int values_list_add =0;
mperella 33:faa8e83f1d45 73 int value_count =0;
mperella 33:faa8e83f1d45 74 int avg_value=0;
mperella 33:faa8e83f1d45 75 //int black_threshhold=0;
mperella 33:faa8e83f1d45 76 int black_threshhold =450;
mperella 33:faa8e83f1d45 77
mperella 33:faa8e83f1d45 78 // major loop
mperella 33:faa8e83f1d45 79 while(1) {
mperella 33:faa8e83f1d45 80
mperella 33:faa8e83f1d45 81 // initial motor stuff
mperella 33:faa8e83f1d45 82 if(rear_motor_enable_flag) {
mperella 33:faa8e83f1d45 83 TFC_HBRIDGE_ENABLE;
mperella 33:faa8e83f1d45 84
mperella 33:faa8e83f1d45 85 // checking behavior level
mperella 33:faa8e83f1d45 86 violence_level = int(TFC_GetDIP_Switch());
mperella 33:faa8e83f1d45 87
mperella 33:faa8e83f1d45 88 if (violence_level==3) {
mperella 33:faa8e83f1d45 89 current_left_motor_speed = -(AGGRESSIVE);
mperella 33:faa8e83f1d45 90 current_right_motor_speed = AGGRESSIVE;
mperella 33:faa8e83f1d45 91 }
mperella 33:faa8e83f1d45 92 else if (violence_level==2) {
mperella 33:faa8e83f1d45 93 current_left_motor_speed = -(MODERATE);
mperella 33:faa8e83f1d45 94 current_right_motor_speed = (MODERATE);
mperella 33:faa8e83f1d45 95 }
mperella 33:faa8e83f1d45 96 else if (violence_level==1) {
mperella 33:faa8e83f1d45 97 current_left_motor_speed = -(CONSERVATIVE);
mperella 33:faa8e83f1d45 98 current_right_motor_speed = CONSERVATIVE;
mperella 33:faa8e83f1d45 99 }
mperella 33:faa8e83f1d45 100 else if (violence_level==0) {
mperella 33:faa8e83f1d45 101 current_left_motor_speed = STOP;
mperella 33:faa8e83f1d45 102 current_right_motor_speed = STOP;
mperella 33:faa8e83f1d45 103 }
mperella 33:faa8e83f1d45 104 else {
mperella 33:faa8e83f1d45 105 current_left_motor_speed = STOP;
mperella 33:faa8e83f1d45 106 current_right_motor_speed = STOP;
mperella 33:faa8e83f1d45 107 }
mperella 33:faa8e83f1d45 108
mperella 33:faa8e83f1d45 109 // protection block
mperella 33:faa8e83f1d45 110 if(current_left_motor_speed >= PROTECTION_THRESHOLD_UPPER)
mperella 33:faa8e83f1d45 111 current_left_motor_speed= PROTECTION_THRESHOLD_UPPER;
mperella 33:faa8e83f1d45 112 if(current_right_motor_speed >= PROTECTION_THRESHOLD_UPPER)
mperella 33:faa8e83f1d45 113 current_right_motor_speed = PROTECTION_THRESHOLD_UPPER;
mperella 33:faa8e83f1d45 114 if(current_left_motor_speed <= PROTECTION_THRESHOLD_LOWER)
mperella 33:faa8e83f1d45 115 current_left_motor_speed = PROTECTION_THRESHOLD_LOWER;
mperella 33:faa8e83f1d45 116 if(current_right_motor_speed <= PROTECTION_THRESHOLD_LOWER)
mperella 33:faa8e83f1d45 117 current_right_motor_speed = PROTECTION_THRESHOLD_LOWER;
mperella 33:faa8e83f1d45 118
mperella 33:faa8e83f1d45 119 TFC_SetMotorPWM(current_left_motor_speed, current_right_motor_speed);
mperella 33:faa8e83f1d45 120 }// end motor enabled
mperella 33:faa8e83f1d45 121 else {
mperella 33:faa8e83f1d45 122 TFC_HBRIDGE_DISABLE;
mperella 33:faa8e83f1d45 123 }// end motor disabled
mperella 33:faa8e83f1d45 124
mperella 33:faa8e83f1d45 125 // camera stuff
mperella 33:faa8e83f1d45 126 if (linescan_enable) {
mperella 33:faa8e83f1d45 127 if (TFC_LineScanImageReady !=0) {
mperella 33:faa8e83f1d45 128
mperella 33:faa8e83f1d45 129 if (linescan_ping_pong) {
mperella 33:faa8e83f1d45 130 //checking channel 0
mperella 33:faa8e83f1d45 131
mperella 33:faa8e83f1d45 132
mperella 33:faa8e83f1d45 133 // checking for center line (single line)
mperella 33:faa8e83f1d45 134 for (uint16_t i=10; i<118; i++) {
mperella 33:faa8e83f1d45 135
mperella 33:faa8e83f1d45 136 int black_threshhold =700*(TFC_ReadPot(0));
mperella 33:faa8e83f1d45 137 if ((*(TFC_LineScanImage0+i) < black_threshhold)) {
mperella 33:faa8e83f1d45 138 black_values_list[black_value_count] = i;
mperella 33:faa8e83f1d45 139 black_value_count++;
mperella 33:faa8e83f1d45 140 //black_list_one++;
mperella 33:faa8e83f1d45 141 }
mperella 33:faa8e83f1d45 142 /*
mperella 33:faa8e83f1d45 143 else
mperella 33:faa8e83f1d45 144 {
mperella 33:faa8e83f1d45 145 black_list_one = 0;
mperella 33:faa8e83f1d45 146 }
mperella 33:faa8e83f1d45 147
mperella 33:faa8e83f1d45 148 if(black_list_one > 5)
mperella 33:faa8e83f1d45 149 {
mperella 33:faa8e83f1d45 150 for(uint16_t j = i+black_list_one; j<118; j++)
mperella 33:faa8e83f1d45 151 {
mperella 33:faa8e83f1d45 152 if((*(TFC_LineScanImage0+j) > black_threshhold))
mperella 33:faa8e83f1d45 153 {
mperella 33:faa8e83f1d45 154 white_list++;
mperella 33:faa8e83f1d45 155 whiteflag = true;
mperella 33:faa8e83f1d45 156 }
mperella 33:faa8e83f1d45 157 else
mperella 33:faa8e83f1d45 158 {
mperella 33:faa8e83f1d45 159 whiteflag = false;
mperella 33:faa8e83f1d45 160 }
mperella 33:faa8e83f1d45 161 if(!whiteflag)
mperella 33:faa8e83f1d45 162 {
mperella 33:faa8e83f1d45 163 j = 200;
mperella 33:faa8e83f1d45 164 }
mperella 33:faa8e83f1d45 165 else if(whiteflag and white_list > 4)
mperella 33:faa8e83f1d45 166 {
mperella 33:faa8e83f1d45 167 for(uint16_t k = j+white_list; k < 118; k++)
mperella 33:faa8e83f1d45 168 {
mperella 33:faa8e83f1d45 169 if((*(TFC_LineScanImage0+k) < black_threshhold))
mperella 33:faa8e83f1d45 170 {
mperella 33:faa8e83f1d45 171 black_list_two++;
mperella 33:faa8e83f1d45 172 blackflag = true;
mperella 33:faa8e83f1d45 173 }
mperella 33:faa8e83f1d45 174 else
mperella 33:faa8e83f1d45 175 {
mperella 33:faa8e83f1d45 176 blackflag = false;
mperella 33:faa8e83f1d45 177 }
mperella 33:faa8e83f1d45 178 if(!blackflag)
mperella 33:faa8e83f1d45 179 {
mperella 33:faa8e83f1d45 180 k = 200;
mperella 33:faa8e83f1d45 181 }
mperella 33:faa8e83f1d45 182 else if(blackflag and black_list_two > 3)
mperella 33:faa8e83f1d45 183 {
mperella 33:faa8e83f1d45 184 stopflag = true;
mperella 33:faa8e83f1d45 185 }
mperella 33:faa8e83f1d45 186 }
mperella 33:faa8e83f1d45 187 }
mperella 33:faa8e83f1d45 188 }
mperella 33:faa8e83f1d45 189 }
mperella 33:faa8e83f1d45 190 */
mperella 33:faa8e83f1d45 191
mperella 33:faa8e83f1d45 192 }
mperella 33:faa8e83f1d45 193
mperella 33:faa8e83f1d45 194 for(int i=0; i<black_value_count; i++) {
mperella 33:faa8e83f1d45 195 sum_black += black_values_list[i];
mperella 33:faa8e83f1d45 196 }
mperella 33:faa8e83f1d45 197
mperella 33:faa8e83f1d45 198 //update history
mperella 33:faa8e83f1d45 199 /*
mperella 33:faa8e83f1d45 200 center_past_4= center_past_3;
mperella 33:faa8e83f1d45 201 center_past_3= center_past_2;
mperella 33:faa8e83f1d45 202 center_past_2= center_past_1;
mperella 33:faa8e83f1d45 203 center_past_1= center_now;
mperella 33:faa8e83f1d45 204 */
mperella 33:faa8e83f1d45 205
mperella 33:faa8e83f1d45 206 //if (black_value_count>2)
mperella 33:faa8e83f1d45 207 center_now = sum_black / black_value_count;
mperella 33:faa8e83f1d45 208
mperella 33:faa8e83f1d45 209 uint8_t num = 0;
mperella 33:faa8e83f1d45 210
mperella 33:faa8e83f1d45 211 if(center_now > 10 && center_now < 27)
mperella 33:faa8e83f1d45 212 num = 1;
mperella 33:faa8e83f1d45 213 else if(center_now >= 27 && center_now < 44)
mperella 33:faa8e83f1d45 214 num = 3;
mperella 33:faa8e83f1d45 215 else if(center_now >= 44 && center_now < 60)
mperella 33:faa8e83f1d45 216 num = 2;
mperella 33:faa8e83f1d45 217 else if(center_now >= 60 && center_now < 70)
mperella 33:faa8e83f1d45 218 num = 15;
mperella 33:faa8e83f1d45 219 else if(center_now >= 70 && center_now < 84)
mperella 33:faa8e83f1d45 220 num = 4;
mperella 33:faa8e83f1d45 221 else if(center_now >=84 && center_now < 101)
mperella 33:faa8e83f1d45 222 num = 12;
mperella 33:faa8e83f1d45 223 else if(center_now >= 101 && center_now < 118)
mperella 33:faa8e83f1d45 224 num = 8;
mperella 33:faa8e83f1d45 225
mperella 33:faa8e83f1d45 226 else
mperella 33:faa8e83f1d45 227 num = 0;
mperella 33:faa8e83f1d45 228
mperella 33:faa8e83f1d45 229 if (black_value_count<2)
mperella 33:faa8e83f1d45 230 num = 0;
mperella 33:faa8e83f1d45 231
mperella 33:faa8e83f1d45 232 //if (black_value_count>26 and ((*(TFC_LineScanImage0+64) > 450) or (*(TFC_LineScanImage0+63) > 450)or(*(TFC_LineScanImage0+62) > 450)))
mperella 33:faa8e83f1d45 233 if (black_value_count>25)
mperella 33:faa8e83f1d45 234 //if (stopflag)
mperella 33:faa8e83f1d45 235 {
mperella 33:faa8e83f1d45 236 while(1)
mperella 33:faa8e83f1d45 237 TFC_SetMotorPWM(0, 0);
mperella 33:faa8e83f1d45 238 }
mperella 33:faa8e83f1d45 239
mperella 33:faa8e83f1d45 240 TFC_SetBatteryLED(num);
mperella 33:faa8e83f1d45 241
mperella 33:faa8e83f1d45 242 // best guess of center based on weighted average of history
mperella 33:faa8e83f1d45 243 black_center_value = center_now;
mperella 33:faa8e83f1d45 244
mperella 33:faa8e83f1d45 245
mperella 33:faa8e83f1d45 246 // turn left
mperella 33:faa8e83f1d45 247 if (num==8 and right_counter <.35)
mperella 33:faa8e83f1d45 248 {
mperella 33:faa8e83f1d45 249 /*
mperella 33:faa8e83f1d45 250 if (center_now <113)
mperella 33:faa8e83f1d45 251 left_counter=-0.4;
mperella 33:faa8e83f1d45 252 else
mperella 33:faa8e83f1d45 253 {
mperella 33:faa8e83f1d45 254 if (left_counter > -.15)
mperella 33:faa8e83f1d45 255 left_counter=-0.15; // less drastic for outside parts
mperella 33:faa8e83f1d45 256 }
mperella 33:faa8e83f1d45 257 turn_left=true;
mperella 33:faa8e83f1d45 258 turn_right=false;
mperella 33:faa8e83f1d45 259 */
mperella 33:faa8e83f1d45 260
mperella 33:faa8e83f1d45 261
mperella 33:faa8e83f1d45 262
mperella 33:faa8e83f1d45 263 if (left_counter > -.15)
mperella 33:faa8e83f1d45 264 left_counter=-0.15; // less drastic for outside parts
mperella 33:faa8e83f1d45 265
mperella 33:faa8e83f1d45 266 turn_left=true;
mperella 33:faa8e83f1d45 267 turn_right=false;
mperella 33:faa8e83f1d45 268
mperella 33:faa8e83f1d45 269 }
mperella 33:faa8e83f1d45 270 else if(num == 12 and right_counter <.35)
mperella 33:faa8e83f1d45 271 {
mperella 33:faa8e83f1d45 272 if(left_counter > -.3)
mperella 33:faa8e83f1d45 273 left_counter=-0.3;
mperella 33:faa8e83f1d45 274 turn_left = true;
mperella 33:faa8e83f1d45 275 turn_right = false;
mperella 33:faa8e83f1d45 276 }
mperella 33:faa8e83f1d45 277
mperella 33:faa8e83f1d45 278 else if (num==4 and right_counter <.35)
mperella 33:faa8e83f1d45 279 {
mperella 33:faa8e83f1d45 280 left_counter=-0.6;
mperella 33:faa8e83f1d45 281 //left_counter=-0.55;
mperella 33:faa8e83f1d45 282 turn_left=true;
mperella 33:faa8e83f1d45 283 turn_right=false;
mperella 33:faa8e83f1d45 284 }
mperella 33:faa8e83f1d45 285
mperella 33:faa8e83f1d45 286 // need to turn right
mperella 33:faa8e83f1d45 287 else if (num==1 and left_counter >-.35)
mperella 33:faa8e83f1d45 288 {
mperella 33:faa8e83f1d45 289 if (center_now >15)
mperella 33:faa8e83f1d45 290 right_counter =.4;
mperella 33:faa8e83f1d45 291 else
mperella 33:faa8e83f1d45 292 {
mperella 33:faa8e83f1d45 293 if (right_counter <.15)
mperella 33:faa8e83f1d45 294 right_counter =.15; // less drastic for outside parts
mperella 33:faa8e83f1d45 295 }
mperella 33:faa8e83f1d45 296
mperella 33:faa8e83f1d45 297 turn_left=false;
mperella 33:faa8e83f1d45 298 turn_right=true;
mperella 33:faa8e83f1d45 299
mperella 33:faa8e83f1d45 300 }
mperella 33:faa8e83f1d45 301
mperella 33:faa8e83f1d45 302 else if(num == 3 and left_counter >-.35)
mperella 33:faa8e83f1d45 303 {
mperella 33:faa8e83f1d45 304 if(right_counter < 0.3)
mperella 33:faa8e83f1d45 305 right_counter = 0.3;
mperella 33:faa8e83f1d45 306
mperella 33:faa8e83f1d45 307 turn_left = false;
mperella 33:faa8e83f1d45 308 turn_right = true;
mperella 33:faa8e83f1d45 309 }
mperella 33:faa8e83f1d45 310
mperella 33:faa8e83f1d45 311 else if (num==2 and left_counter >-.35)
mperella 33:faa8e83f1d45 312 {
mperella 33:faa8e83f1d45 313 right_counter =.6;
mperella 33:faa8e83f1d45 314 //right_counter =.55;
mperella 33:faa8e83f1d45 315 turn_left=false;
mperella 33:faa8e83f1d45 316 turn_right=true;
mperella 33:faa8e83f1d45 317 }
mperella 33:faa8e83f1d45 318
mperella 33:faa8e83f1d45 319 //straight
mperella 33:faa8e83f1d45 320 else if (turn_right == false and turn_left == false)
mperella 33:faa8e83f1d45 321 {
mperella 33:faa8e83f1d45 322 //TFC_SetServo(0,(0.0+ bullshit_offset));
mperella 33:faa8e83f1d45 323 TFC_SetServo(0,bullshit_offset);
mperella 33:faa8e83f1d45 324 TFC_SetMotorPWM(current_left_motor_speed-(.0008*num_of_straight), current_right_motor_speed+(.0008*num_of_straight)); // --left is faster, ++right is faster
mperella 33:faa8e83f1d45 325 if (violence_level !=0)
mperella 33:faa8e83f1d45 326 num_of_straight++;
mperella 33:faa8e83f1d45 327 }
mperella 33:faa8e83f1d45 328
mperella 33:faa8e83f1d45 329 else
mperella 33:faa8e83f1d45 330 {
mperella 33:faa8e83f1d45 331 }
mperella 33:faa8e83f1d45 332
mperella 33:faa8e83f1d45 333 //dealwiththeshit
mperella 33:faa8e83f1d45 334 if(turn_left)
mperella 33:faa8e83f1d45 335 {
mperella 33:faa8e83f1d45 336 turn_right = false;
mperella 33:faa8e83f1d45 337 num_of_straight = 0; // no longer on a straight
mperella 33:faa8e83f1d45 338
mperella 33:faa8e83f1d45 339 TFC_SetServo(0,left_counter+ bullshit_offset );
mperella 33:faa8e83f1d45 340 //TFC_SetServo(0,left_counter);
mperella 33:faa8e83f1d45 341 left_counter += .01;
mperella 33:faa8e83f1d45 342 if (left_counter > (0+ bullshit_offset))
mperella 33:faa8e83f1d45 343 turn_left = false;
mperella 33:faa8e83f1d45 344
mperella 33:faa8e83f1d45 345 TFC_SetMotorPWM(current_left_motor_speed+(.2*left_counter), current_right_motor_speed+(.2*left_counter));
mperella 33:faa8e83f1d45 346 }
mperella 33:faa8e83f1d45 347
mperella 33:faa8e83f1d45 348 if(turn_right)
mperella 33:faa8e83f1d45 349 {
mperella 33:faa8e83f1d45 350 turn_left =false;
mperella 33:faa8e83f1d45 351 num_of_straight = 0; // no longer on a straight
mperella 33:faa8e83f1d45 352
mperella 33:faa8e83f1d45 353 //TFC_SetServo(0,right_counter- bullshit_offset );
mperella 33:faa8e83f1d45 354 //TFC_SetServo(0,right_counter);
mperella 33:faa8e83f1d45 355 TFC_SetServo(0,(right_counter+ bullshit_offset));
mperella 33:faa8e83f1d45 356 right_counter -= .01;
mperella 33:faa8e83f1d45 357 if (right_counter < (0+ bullshit_offset))
mperella 33:faa8e83f1d45 358 turn_right = false;
mperella 33:faa8e83f1d45 359
mperella 33:faa8e83f1d45 360 TFC_SetMotorPWM(current_left_motor_speed-(.2*right_counter), current_right_motor_speed-(.2*right_counter));
mperella 33:faa8e83f1d45 361 }
mperella 33:faa8e83f1d45 362
mperella 33:faa8e83f1d45 363 // clearing values for next image processing round
mperella 33:faa8e83f1d45 364 black_value_count = 0;
mperella 33:faa8e83f1d45 365 sum_black = 0;
mperella 33:faa8e83f1d45 366 values_list_add =0;
mperella 33:faa8e83f1d45 367 value_count =0;
mperella 33:faa8e83f1d45 368 avg_value=0;
mperella 33:faa8e83f1d45 369 black_threshhold=0;
mperella 33:faa8e83f1d45 370
mperella 33:faa8e83f1d45 371 black_list_one = 0;
mperella 33:faa8e83f1d45 372 white_list = 0;
mperella 33:faa8e83f1d45 373 black_list_two = 0;
mperella 33:faa8e83f1d45 374 whiteflag = false;
mperella 33:faa8e83f1d45 375 blackflag = false;
mperella 33:faa8e83f1d45 376 stopflag = false;
mperella 33:faa8e83f1d45 377
mperella 33:faa8e83f1d45 378 // end image processing
mperella 33:faa8e83f1d45 379
mperella 33:faa8e83f1d45 380 linescan_ping_pong = false;
mperella 33:faa8e83f1d45 381 } // end checking channel 0
mperella 33:faa8e83f1d45 382
mperella 33:faa8e83f1d45 383 else { //checking channel 1
mperella 33:faa8e83f1d45 384 linescan_ping_pong = true;
mperella 33:faa8e83f1d45 385 }
mperella 33:faa8e83f1d45 386
mperella 33:faa8e83f1d45 387 TFC_LineScanImageReady = 0; // since we used it, we reset the flag
mperella 33:faa8e83f1d45 388 }// end imageready
mperella 33:faa8e83f1d45 389 }// end linescan stuff
mperella 33:faa8e83f1d45 390 }
mperella 33:faa8e83f1d45 391 }
mperella 33:faa8e83f1d45 392
mperella 33:faa8e83f1d45 393 // shit code down here
mperella 33:faa8e83f1d45 394