   SCmd.addCommand("VSWEEP.RAMP",   setSweepRampCommand);
   SCmd.addCommand("VSWEEP.SAMPLE", setSweepSampleRateCommand);
   SCmd.addCommand("VSWEEP.CYCLES", setSweepCyclesCommand);
+  
+  SCmd.addCommand("ABORT!", nullCommand);
 
   SCmd.setDefaultHandler(unrecognizedCommand);
+  //add commands that are only valid during an active sweep
+  SweepSCmd.addCommand("ABORT!", sweepAbortCommand);
+  
   Serial.print(F("#<INIT>\n"));
   //start up the SPI bus
   SPI.begin();


float _sweep_voltage_step;
volatile float _sweep_control_voltage;

//default parameters for the sweep
float _sweep_v_start =  0;

float _sweep_samp_rate = SAMPRATE_DEFAULT; //samples per second
float _sweep_cycles  =  1;


void sweepAbortCommand(){
    Serial.print(F("#<ABORT />\n"));
    _sweep_abort = true;
}

void sweepTickISR(){
  //Serial.print(F("Tick!\n"));
  _sweep_control_voltage += _sweep_voltage_step;
  //change output voltage
  control_DAC.setVoltageOutput(_sweep_control_voltage + V_VGND); //shift to center-rail
}

void sweepSampleCallback(){
