1.1 --- a/robotarm.c Mon Apr 05 12:36:23 2010 +1000
1.2 +++ b/robotarm.c Mon Apr 05 12:49:10 2010 +1000
1.3 @@ -248,20 +248,76 @@
1.4 voltage = ADCH;
1.5 switch(current_state)
1.6 {
1.7 + case WRIST_UP:
1.8 + if(voltage > 190)
1.9 + {
1.10 + startState(STATE_STOPPED);
1.11 + startState(WRIST_DOWN);
1.12 + }
1.13 + break;
1.14 + case WRIST_DOWN:
1.15 + if(voltage < 14)
1.16 + {
1.17 + startState(STATE_STOPPED);
1.18 + startState(WRIST_UP);
1.19 + }
1.20 + break;
1.21 case SHOULDER_UP:
1.22 - if(voltage > 200)
1.23 + if(voltage > 190)
1.24 {
1.25 startState(STATE_STOPPED);
1.26 startState(SHOULDER_DOWN);
1.27 }
1.28 break;
1.29 case SHOULDER_DOWN:
1.30 - if(voltage < 12)
1.31 + if(voltage < 14)
1.32 {
1.33 startState(STATE_STOPPED);
1.34 startState(SHOULDER_UP);
1.35 }
1.36 break;
1.37 + case SHOULDER_LEFT:
1.38 + if(voltage > 190)
1.39 + {
1.40 + startState(STATE_STOPPED);
1.41 + startState(SHOULDER_RIGHT);
1.42 + }
1.43 + break;
1.44 + case SHOULDER_RIGHT:
1.45 + if(voltage < 14)
1.46 + {
1.47 + startState(STATE_STOPPED);
1.48 + startState(SHOULDER_LEFT);
1.49 + }
1.50 + break;
1.51 + case ELBOW_UP:
1.52 + if(voltage > 190)
1.53 + {
1.54 + startState(STATE_STOPPED);
1.55 + startState(ELBOW_DOWN);
1.56 + }
1.57 + break;
1.58 + case ELBOW_DOWN:
1.59 + if(voltage < 14)
1.60 + {
1.61 + startState(STATE_STOPPED);
1.62 + startState(ELBOW_UP);
1.63 + }
1.64 + break;
1.65 + case GRIP_OPEN:
1.66 + if(voltage > 190)
1.67 + {
1.68 + startState(STATE_STOPPED);
1.69 + startState(GRIP_CLOSE);
1.70 + }
1.71 + break;
1.72 + case GRIP_CLOSE:
1.73 + if(voltage < 14)
1.74 + {
1.75 + startState(STATE_STOPPED);
1.76 + startState(GRIP_OPEN);
1.77 + }
1.78 + break;
1.79 }
1.80 ADCSRA |= _BV(ADSC);
1.81 }
1.82 @@ -310,7 +366,7 @@
1.83
1.84 startState(STATE_STOPPED);
1.85
1.86 - startState(SHOULDER_UP);
1.87 + startState(ELBOW_UP);
1.88
1.89 while(1);
1.90 return(0);