Hola a todos, les cuento que soy primiparo en esto de los PICs pero estoy
en el proceso de apredizaje y quiero compartir con ustedes mis logros.
est? es una funcion para posicionar dos servo motores de 0 a 180 grados sin usar los modulos pwm del pic solo tienes que mandarles los grados y el motor. por ejemplo pwm(80,1);
espero que les sea de utilidad chaoo......
void pwm(unsigned char grados,char motor)
{
unsigned char contador=25;
float TMR3HL,valor_PW,valor_Periodo;
unsigned int16 TMR3HL_int;
TMR3ON=0; //Timer off
//valor_PW=5.0e-003; //Valor del ancho de pulso
valor_PW=(grados*1.0e-005)+0.3e-003;
while(contador!=0)
{
TMR3HL= valor_PW/200.0e-009;
TMR3HL_int=(unsigned int16)TMR3HL;
TMR3HL_int = 65536 - TMR3HL_int;
set_timer1(TMR3HL_int);
TMR3ON=1; //Timer on
while(!TMR3IF);
TMR3IF=0;
if (motor==1)
output_high(PIN_D0);
else
output_high(PIN_D1);
valor_Periodo=11.0e-003-valor_PW;
TMR3HL= valor_Periodo/200.0e-009;
TMR3HL_int=(unsigned int16)TMR3HL;
TMR3HL_int = 65536 - TMR3HL_int;
set_timer1(TMR3HL_int);
while(!TMR3IF);
TMR3IF=0;
if (motor==1)
output_low(PIN_D0);
else
output_low(PIN_D1);
contador--;
}
output_high(PIN_D0);
output_high(PIN_D1);
}