Beispiel #1
0
void respondLeft() {
  accelreverse();
  int rearCase = 0;
  for( unsigned int time = 35000; time > 0; time-- ) {
    rearCase = determineRearCase();
    switch(rearCase) {
    case 0:
      break;
    case 1://left sensed activated
      ledSetup(3);
      rotateRight();
      longDelay(3);
      accelforward();
      return;
    case 2://right sensed
      ledSetup(3);
      pivotForwardAroundRight();
      longDelay(3);
      accelforward();
      return;
    }
  }
  
  rotateRight();
  longDelay(7);
  
  accelforward();
}
Beispiel #2
0
void sense() {
  if( ~P7IN & BIT5 ) {
    ledSetup(2);
    respondLeft();
    ledSetup(0);
  } else if( ~P7IN & BIT6 ) {
    ledSetup(2);
    respondRight();
    ledSetup(0);
  }
}
Beispiel #3
0
int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  
  //Initialize the movement parameters
  P10OUT &= ~(BIT4+BIT5+BIT6+BIT7); // P10.0-3 low
  P10SEL = 0x00; // All of port 10 set up for digital I/O
  P10DIR |= BIT4+BIT5+BIT6+BIT7; // configure P10.0 as output
  
  //set up LEDs
  P1SEL &= ~(BIT1 + BIT0); // configure P1.0 & P1.1 for digital IO
  P1DIR |= BIT0 + BIT1;
  
  ledSetup(1);
  
  P6OUT |= BIT7;
  P6DIR &= ~BIT7;
  P6REN |= BIT7;
  
  P7OUT |= BIT4+BIT5+BIT6;
  P7DIR &= ~BIT4+BIT5+BIT6;
  P7REN |= BIT4+BIT5+BIT6;
  
  //setup the button
  P2OUT = BIT6;
  P2DIR = ~BIT6;
  P2REN = BIT6;

  while( P2IN & BIT6 );
  
  ledSetup(0);
  
  accelforward();
  
  while( P2IN & BIT6 ) {
    sense();
  }
  
  stop();
  
  return 0;
}
Beispiel #4
0
void setup(){
//   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); // 0 bits for preemption, 4 bits for subpriority
  /* Set up interrupt controller: 2 bits for priority (0-3),
   * 2 bits for sub-priority (0-3). Priorities control which
   * interrupts are allowed to preempt one another.
   */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  /* Increase SysTick priority to be higher than USB interrupt
   * priority. USB code stalls inside interrupt and we can't let
   * this throw off the SysTick timer.
   */
  NVIC_SetPriority(SysTick_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, SYSTICK_PRIORITY, SYSTICK_SUBPRIORITY));
  NVIC_SetPriority(DMA1_Stream3_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, 0, 0));
  NVIC_SetPriority(DMA1_Stream4_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, 0, 0));
  NVIC_SetPriority(SPI2_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, 1, 0));
  NVIC_SetPriority(ADC_IRQn, NVIC_EncodePriority(NVIC_PriorityGroup_2, 2, 0));

  ledSetup();
  setLed(RED);

  /* check if we need to DFU boot */
  configureDigitalInput(SWITCH_B_PORT, SWITCH_B_PIN, GPIO_PuPd_UP);
  if(isPushButtonPressed())
    jump_to_bootloader();

  adcSetup();
  clockSetup();
  setupSwitchA(footSwitchCallback);
  setupSwitchB(pushButtonCallback);

  settings.init();
  midi.init(MIDI_CHANNEL);
  patches.init();

#ifdef EXPRESSION_PEDAL
#ifndef OWLMODULAR
  setupExpressionPedal();
#endif
#endif

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE); // DEBUG
  configureDigitalOutput(GPIOB, GPIO_Pin_1); // PB1, DEBUG LED
  debugClear();

#ifdef DEBUG_AUDIO
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE); // DEBUG
  configureDigitalOutput(GPIOA, GPIO_Pin_7); // PA7 DEBUG
  configureDigitalOutput(GPIOC, GPIO_Pin_5); // PC5 DEBUG
  clearPin(GPIOC, GPIO_Pin_5); // DEBUG
  clearPin(GPIOA, GPIO_Pin_7); // DEBUG
#endif /* DEBUG_AUDIO */
	
  usb_init();

#if SERIAL_PORT == 1
  setupSerialPort1(115200);
#elif SERIAL_PORT == 2
  setupSerialPort2(115200); // expression pedal
#warning expression pedal jack configured as serial port
#ifdef EXPRESSION_PEDAL
#error invalid configuration
#endif
#endif

#ifdef OWLMODULAR
  configureDigitalInput(GPIOB, GPIO_Pin_6, GPIO_PuPd_NOPULL);  // PB6 OWL Modular digital input
  configureDigitalOutput(GPIOB, GPIO_Pin_7);  // PB7 OWL Modular digital output
  setPin(GPIOB, GPIO_Pin_7); // PB7 OWL Modular digital output
#endif

  codec.setup();
  codec.init(settings);

  printString("startup\n");
  updateBypassMode();

  codec.start();
}
Beispiel #5
0
void mainSetup() {
	ledSetup();
	buttonSetup();
}