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(); }
void sense() { if( ~P7IN & BIT5 ) { ledSetup(2); respondLeft(); ledSetup(0); } else if( ~P7IN & BIT6 ) { ledSetup(2); respondRight(); ledSetup(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; }
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(); }
void mainSetup() { ledSetup(); buttonSetup(); }