/* * L11 - control directie vehicol cu servo conectat la P1.0 -XMC4700 * Servo necesita semnal de comanda cu perioada de 20 milisecunde * Factorul de umplere reprezinta jumatate din durata in 1 a semnalului generat, * in microsecunde. * PWM_SetDutyCycle(&PWM_0,500 ); // 100 --- 200 microsecunde // 50 --- 100 microsecunde // 25 --- 50 microsecunde // 1 --- 2 microsecunde // 500 --- 1000 microsecunde * */ #include uint32_t i,j; // pt.delay void delay() { for(i = 0;i <0xfffff;i++); } int main(void) { DAVE_Init(); PWM_Init (&PWM_0); // initializare modul PWM 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 // PWM_SetDutyCycle(&PWM_0,940);//940 pozitionare initiala stanga 1,88 ms // delay(); DIGITAL_IO_SetOutputLow (&led1); DIGITAL_IO_SetOutputLow (&led2); while(1) { PWM_SetDutyCycle(&PWM_0,810); // limita stanga DIGITAL_IO_SetOutputHigh(&led1); delay(); delay(); delay();delay();delay(); DIGITAL_IO_SetOutputLow (&led1); PWM_SetDutyCycle(&PWM_0,480); // limita drepata DIGITAL_IO_SetOutputHigh(&led2); delay();delay();delay();delay();delay(); DIGITAL_IO_SetOutputLow(&led2); } return 0; }