void KEY_Init(void)
{
	/*Key's Gpio configure*/
	KeyGpioConfig();

	/* Configure EXTI Line2/3/4 (connected to PE2/3/4	pin) in interrupt mode */
	EXTILine_Config(GPIO_Pin_2,EXTI_Line2,EXTI2_IRQn);
	EXTILine_Config(GPIO_Pin_3,EXTI_Line3,EXTI3_IRQn);
	EXTILine_Config(GPIO_Pin_4,EXTI_Line4,EXTI4_IRQn);
	
	/* Enable SYSCFG clock */
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
	
	/* Connect EXTI Line to PE2/PE3/PE4 pin */
	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource2);	
	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource3);
	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE, EXTI_PinSource4);
}
Beispiel #2
0
/**
* @brief  Initializes the wave player
* @param  AudioFreq: Audio sampling frequency
* @retval None
*/
int WavePlayerInit(uint32_t AudioFreq)
{
	EXTILine_Config();
	
  /* Initialize I2S interface */  
  EVAL_AUDIO_SetAudioInterface(AUDIO_INTERFACE_I2S);
  
  /* Initialize the Audio codec and all related peripherals (I2S, I2C, IOExpander, IOs...) */  
  EVAL_AUDIO_Init(OUTPUT_DEVICE_AUTO, volume, AudioFreq );  
  
  return 0;
}
/**
 * @brief  Initializes the wave player
 * @param  AudioFreq: Audio sampling frequency
 * @retval None
 */
int WavePlayerInit(uint32_t AudioFreq)
{ 

  /* MEMS Accelerometre configure to manage PAUSE, RESUME and Controle Volume operation */
  Mems_Config();

  /* EXTI configue to detect interrupts on Z axis click and on Y axis high event */
  EXTILine_Config();

  /* Initialize I2S interface */
  EVAL_AUDIO_SetAudioInterface(AUDIO_INTERFACE_I2S);

  /* Initialize the Audio codec and all related peripherals (I2S, I2C, IOExpander, IOs...) */
  EVAL_AUDIO_Init(OUTPUT_DEVICE_AUTO, volume, AudioFreq );

  return 0;
}
Beispiel #4
0
/**
  * @brief  Main program.
  * @param  None
  * @retval : None
  */
int main(void)
{
  /* Setup STM32 system (clock, PLL and Flash configuration) */

	u8 axis=0;


	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA  | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOE | RCC_APB2Periph_AFIO, ENABLE);


	for(axis=0; axis<4; axis++)
	{
		GPIO_InitStructure.GPIO_Pin = AxisPulsePin[axis];
		GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
		GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
		GPIO_Init(AxisPulsePort[axis], &GPIO_InitStructure);
		
		GPIO_InitStructure.GPIO_Pin = AxisDirPin[axis];
		GPIO_Init(AxisDirPort[axis], &GPIO_InitStructure);
		
		GPIO_InitStructure.GPIO_Pin=LmtPosPin[axis];
		GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;

		GPIO_Init(AxisLmtPosPort[axis], &GPIO_InitStructure);
		
		GPIO_InitStructure.GPIO_Pin=LmtNegPin[axis];
		GPIO_Init(AxisLmtNegPort[axis], &GPIO_InitStructure);
		
		GPIO_InitStructure.GPIO_Pin=HomePin[axis];
		GPIO_Init(HomePort[axis], &GPIO_InitStructure);
		
		GPIO_InitStructure.GPIO_Pin=AddrPin[axis];
		GPIO_Init(AddrPort[axis], &GPIO_InitStructure);
	}
	

	
	Timer_Init();

	EXTILine_Config();
  NVIC_Configuration();
	
//    AxisMoveRel(1, 550000, 25000, 25000, 50000);
//    AxisMoveRel(2, 550000, 32000, 32000, 40000);
//    AxisMoveRel(3, 550000, 20000, 20000, 60000);
//  	AxisMoveRel(4, 550000, 30000, 30000, 45000);
	

	


	
  while (1)																
  {
		LimitDetect(1);
		LimitDetect(2);
		LimitDetect(3);
		LimitDetect(4);
		AxisHome(1);
		AxisHome(2);
		AxisHome(3);
		AxisHome(4);
  }
}