fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Problema con el TMR...
 
Avisos
Vaciar todo

Problema con el TMR0 y servos

3 Respuestas
2 Usuarios
0 Reactions
2,240 Visitas
xavier
Respuestas: 16
Topic starter
(@xavier)
Active Member
Registrado: hace 19 años

Hola!

Me explico, estoy intentando controlar un servo con el TMR0 del pic 16F877, estoy guiandome con el ejemplo de esta web " http://68hc11.garcia-cuervo.net/picmania.garcia-cuervo.net/PICC2.htm " , para iniciarme ya que normalmente controlo los servos (2 servos) con el modulo PWM, y lo que pretendo es para un futuro intentar controlar 4 o mas servos, y nada me he puesto manos a la obra pero el servo no hace ni puñetero caso, solo cuando reseteo el pic este pretnede ir hacia la posicion que le he indicado (el centro) pero luego nada, este es el codigo (es el mismo que el del ejemplo de la web, pero en mi C xD)

#include <pic1687x>

#define servo0 RB0

unsigned char x,a;
unsigned char servo,control_t,control,serie,flag,flagservo;

void main (void)
{
TRISB=0x00; //Salida

INTCON=0xF0; //GIE=TOIE=PEIE=1
OPTION=0x83; //Prescaler a 16

TMR0=0;
PORTB=0x00;

flag=0;
flagservo=0;
control=0;
control_t=0;

do
{
if (flag==1)
{
flag=0;
servo0=1;
flagservo=1;
}
if (flagservo==1)
{
control=TMR0;

if (control>93)
{
flagservo=0;
servo0=0;
}
}
}
while(1);
}

void interrupt recepcion_serie (void)
{
if (T0IF==1)
{
T0IF=0;

control_t++;

if (control_t==4)
{
TMR0=30;
}
if (control_t==5)
{
flag=1;
control_t=0;
}
}
}

Es el mismo, con el mismo nombre de variables, etc, pero no veo que esta mal, o que puede fallar.

¿Alguien me puede echar un cable? Gracias de antemano!

Salud!

Responder
2 respuestas
xavier
Respuestas: 16
Topic starter
(@xavier)
Active Member
Registrado: hace 19 años

Ya esta!

Una pequeña metedura de pata en al configuración del INTCON "INTCON=0xF0;" <- MAL "INTCON=0xE0;" <- BIEN xD, habia habilitado la interrupción externa por RB0 jejeje 😳 Ale ahora a ver que mas me sale por ahi xDD

Responder
onir
Respuestas: 7
 Onir
(@onir)
Active Member
Registrado: hace 17 años

Ya esta!

Una pequeña metedura de pata en al configuración del INTCON "INTCON=0xF0;" <- MAL "INTCON=0xE0;" <- BIEN xD, habia habilitado la interrupción externa por RB0 jejeje 😳 Ale ahora a ver que mas me sale por ahi xDD ¿Por qué en muchas ocasiones nos sucede que encontramos justo la respuesta tras haber preguntado algo porque no conseguimos hacerlo funcionar tras intentarlo varias veces? 😀

Responder
Compartir: