   switch (digitalRead(pinH) ? HIGH : (digitalRead(pinL) ? LOW : NEUTRAL))
   {
     case HIGH:
-      if ((adj += RAMP_ADJUST) >= RAMP_MAX)
+      if ((adj += RAMP_ADJUST) > RAMP_MAX)
         adj = RAMP_MAX;
       break;
 
     case LOW:
-      if ((adj -= RAMP_ADJUST) <= RAMP_MIN)
+      if ((adj -= RAMP_ADJUST) < RAMP_MIN)
         adj = RAMP_MIN;
       break;
 

#define OPS (sizeof(opPin) / sizeof(uint8_t))

// helm
#define RAMP_ADJUST 7
#define RAMP_MAX 175
#define RAMP_MIN -175
#define DIR_MAX 1023
#define DIR_MIN -1023


{
  // reset current if no stick flag or if adj and current are opposite signs
  if (!(adj || stick) || (current > 0 && adj < 0) || (current < 0 && adj > 0))
  {
    current = 0;
  }
  else
  {
    current += adj;

    if (current > DIR_MAX)
      current = DIR_MAX;
    else 
      if (current < DIR_MIN)
        current = DIR_MIN;
  }

  return (current);
}
