Esempio n. 1
0
//=======================================================================================
int main(void)
{


Puissance=0;
UpDown=0;
PWM_Init(4, 4, 20.0, 8000.0 );
Port_IO_Init('B', 9, 'o', 2);

Port_IO_Init('B', 8, 'o', 0);
Port_IO_Init('B', 10, 'i', 2);
Port_IO_Init('B', 11, 'i', 2);
Port_IO_Init('B', 12, 'i', 2);
Port_IO_Init('B', 13, 'i', 2);
Port_IO_Init('B', 14, 'i', 2);
Port_IO_Init('B', 15, 'i', 2);



// Gestion du Systick
Systick_Prio_IT(2);
Systick_Period(8.0,20000.0); // 20ms seconde
SysTick_CkSource_ProcessorClk;
SysTick_Enable_IT;
SysTick_On;

while(1)
{

}
	
}
Esempio n. 2
0
void initGirouette(void){
	TIM_SERVO=TIM4;
	voie=3;
	
	// initialisation des broches pour la lecture en mode floating input
	Port_IO_Init_InputPull(GPIOA, 5); // Index
	Port_IO_Init_Input(GPIOA, 6); // A
	Port_IO_Init_Input(GPIOA, 7); // B
	
	// configuration du timer pour la position (angle) de la girouette
	// on multiplie par quatre car il y a 4 cas différents où le timer s'incrémente
	Timer_Compare_Count(360*4, TIM3);
	
	// configuration de la mise à jour du servo-moteur de la voile
	// met à jour la position de la voile à chaque période
	
	// enable SysTick
	SysTick->CTRL |= SysTick_CTRL_ENABLE;
	// enable interruption
	SysTick->CTRL |= SysTick_CTRL_TICKINT;
	
	Systick_Prio_IT(6, UpdateGrandeVoile);
	// toutes les 10ms
	Systick_Period(10000);
	
	// init the PWM
	Port_IO_Init_Alt_Output( GPIOB, 8);
	Timer_1234_PWM_Init(TIM_SERVO, tempsPWM, 0.87f, 1, voie);
	Timer_Run(TIM_SERVO);
}