/** L12 -control BLDC pentru elice drona * */ #include uint32_t i,j,k; void delay() // frecventa CPU=144Mhz-12 nanosecunde/instructiune { for(i = 0;i <0xfffff;i++); } int main(void) { DAVE_Init(); PWM_Init (&PWM_0); PWM_SetFreq(&PWM_0,50); // perioada 20 milisecunde PWM_SetDutyCycle(&PWM_0,0); // nu genereaza semnal PWM_Start(&PWM_0); // porneste pwm cu factor zero DIGITAL_IO_SetOutputLow(&led1); // LED vizualizare DIGITAL_IO_SetOutputLow(&led2); // Secventa initializare ESC (Electronic Speed Controller) PWM_SetDutyCycle(&PWM_0,1000); //setare 2000 microsec vit. maxima delay(); delay(); delay();delay();delay(); delay(); delay(); delay();delay();delay(); // pe aici se conecteaza alimentarea delay(); delay(); delay();delay();delay(); // trebuie identificat wait 5secunde. delay(); delay(); delay();delay();delay(); PWM_SetDutyCycle(&PWM_0,400); // setare viteza minima delay(); delay(); delay();delay();delay(); delay(); delay(); delay(); delay(); delay();delay();delay(); delay(); delay(); delay();delay();delay();// wait 5 secunde // La initializare corecta emite sunet la intervale de aprox. 1 secunda // Acum se pot emite comenzi while(1) { PWM_SetDutyCycle(&PWM_0,800); // Viteza 1 - 1,6 ms DIGITAL_IO_SetOutputHigh(&led1); delay();delay();delay();delay(); DIGITAL_IO_SetOutputLow(&led1); PWM_SetDutyCycle(&PWM_0,700); // Viteza 2 - 1,4 ms DIGITAL_IO_SetOutputHigh(&led2); delay();delay();delay(); delay();delay();delay(); DIGITAL_IO_SetOutputLow(&led2); } return 0; }