Пример #1
0
void AppMain()
{
    uint32_t i=0;
    uint32_t speed1=250;
    uint32_t speed2=500;
    uint32_t speed3=750;
    uint32_t speed4=1000;

    ESC_Init(1,50,5000,6000);
    ESC_SetChannel(1);
    ESC_SetChannel(2);
    ESC_SetChannel(3);
    ESC_SetChannel(4);

    while(1)
    {
        ESC_SetSpeed(1,speed1);
        ESC_SetSpeed(2,speed2);
        ESC_SetSpeed(3,speed3);
        ESC_SetSpeed(4,speed4);
        speed1=(speed1+1)%1001;
        speed2=(speed2+1)%1001;
        speed3=(speed3+1)%1001;
        speed4=(speed4+1)%1001;
        for(i=0; i<1000000; i++);
    }

}
Пример #2
0
void Idle_Task(void * pvParameters){
	int i;

	for (i=1;i<=4;i++)
	{
		ESC_SetChannel(i);
		ESC_SetSpeed(i,0);
	}

	for (;;){
		qLedsFlash(2,50);
		vTaskDelay(500/portTICK_RATE_MS);
	}
}
Пример #3
0
void ESC_Init(ESC_t *esc, uint16_t pin)
{
	uint16_t Prescaler = GetPrescaler();
	esc->pin_number = pin;
	esc->speed = 0;
	// devided by 1000000 because ESC data is in the base of us instead of s
	esc->run_min = (((SystemCoreClock/1000000)/ (2 * Prescaler)) * (ESC_INIT_HIGH));
	Delay(500000);
	ESC_SetSpeed(esc);
	Delay(2500000);

	esc->run_min = (((SystemCoreClock/1000000)/ (2 * Prescaler)) * (ESC_RUN_MIN));
	esc->run_max = (((SystemCoreClock/1000000)/ (2 * Prescaler)) * (ESC_RUN_MAX));
	esc->lift_quad_min = 0;
}