コード例 #1
0
ファイル: main.c プロジェクト: piyushpandey013/hairy-ironman
int main()
{

  uint8_t dir = CW;
  
  initPorts();
  initADC();

// accel section
  halfStep(dir);
  _delay_us(10000);
  halfStep(dir);
  _delay_us(6000);
  halfStep(dir);
  _delay_us(4667);
  halfStep(dir);
  _delay_us(3949);

  while (1)
  {
    stepperVal = MOTORPORT;
    switch (stepperVal)
    {
      case 1:
	ADMUX = (ADMUX & 0b1110000) | 0x1;
	adctested = 1;
	break;
      case 2:
	ADMUX = (ADMUX & 0b1110000) | 0x2;
	adctested = 1;
	break;
      case 4:
	ADMUX = (ADMUX & 0b1110000) | 0x3;
	adctested = 1;
	break;
      case 8:
	ADMUX = (ADMUX & 0b1110000) | 0x0;
	adctested = 1;
	break;
      default:
	ADMUX = (ADMUX & 0b1110000) | 0x31; // GND
	adctested = 0;
    }


    if (adctested)
    {
      // trigger ADC sample
      ADCSRA |= _BV(ADSC);
      // poll delay until sample done
      loop_until_bit_is_clear( ADCSRA, ADSC );
      DEBUGPORT = ADCH;
    }
    halfStep(dir);
    _delay_us(3500);

  } // main loop
  
}
コード例 #2
0
ファイル: Stepper.cpp プロジェクト: tbpfiste/ParQ_Arduino
/***********************************************************
* Digital I/O f?r Motorensteuerung werden als Output
* definiert.
* @param Pointer auf Motor
* @return void
***********************************************************/
void initStepper(stepper_t *aStepper)
{
  pinMode(aStepper->statusPin, OUTPUT);
  pinMode(aStepper->modePin, OUTPUT);
  pinMode(aStepper->directionPin, OUTPUT);
  pinMode(aStepper->clockPin, OUTPUT);
  digitalWrite(aStepper->clockPin, HIGH);

  switch (aStepper->stepperStatus){
   case DISABLED:
	   disableStepper(aStepper);
	   break;
   case ENABLED:
	   enableStepper(aStepper);
	   break;
   case RUN:
	   enableStepper(aStepper);
	   break;
  }

  switch (aStepper->stepperMode){
  case FULL:
	  fullStep(aStepper);
	  break;
  case HALF:
	  halfStep(aStepper);
	  break;
  }

  switch (aStepper->direction){
  case FORWARD:
	  forward(aStepper);
	  break;
  case BACKWARD:
	  backward(aStepper);
	  break;
  }

}