Example #1
0
void EXTI15_10_IRQHandler(void) {
	/* Make sure that interrupt flag is set */
	if (EXTI_GetITStatus(EXTI_Line11) != RESET) {
		/* Do your stuff when PB12 is changed */

		finiteStateMachine(11);
		/* Clear interrupt flag */
		EXTI_ClearITPendingBit(EXTI_Line11);
	}
}
Example #2
0
/* Handle PB12 interrupt */
void EXTI9_5_IRQHandler(void) {
    /* Make sure that interrupt flag is set */
    if (EXTI_GetITStatus(EXTI_Line8) != RESET) {
        /* Do your stuff when PC9 is changed */
    	finiteStateMachine(8);
        /* Clear interrupt flag */
        EXTI_ClearITPendingBit(EXTI_Line8);
    }
    if (EXTI_GetITStatus(EXTI_Line9) != RESET) {
	   /* Do your stuff when PC9 is changed */

    	finiteStateMachine(9);
	   /* Clear interrupt flag */
	   EXTI_ClearITPendingBit(EXTI_Line9);
   }
   if (EXTI_GetITStatus(EXTI_Line5) != RESET) {
	   /* Do your stuff when PC9 is changed */

      finiteStateMachine(5);
   	  /* Clear interrupt flag */
   	  EXTI_ClearITPendingBit(EXTI_Line5);
   }
}
Example #3
0
/**
 * @brief main loop for AVR chip
 *
 */
int main(void) {
	// ==== do initializations!! ===
	initRBELib(); // allows printf + more to work
	debugUSARTInit(OUR_BAUD_RATE); // intialize USART communications
	printf("Starting...\n\r"); // so we know if we freeze in setup

	initSPI(); // initialize SPI communications
	initArm(); // initialize the arm'

	stopConveyor(); // initialize servo positions
	openGripper();

	// ==== end initializations ====

	printf("I am alive... Looking for blocks to pickup.\n\r");

	// ===== main loop ====
	while (1) {
		finiteStateMachine(); // run FSM to determine what arm needs to do
		serviceArm(); // allow arm to react to changes and service PID if needed
	}
	return 0;
}