hola quiero hacer una araña con servos y programando un pic. encontre este codigo para emprezar hacerlo
Código:
#include<htc.h>
void config(void);
int x=0xA2;
void main(void)
{
config();
while(1)
{
if(RD7==1)
{
x=0xB2;
}
else
{
x=0x93;
}
}
}
void config(void)
{
// configurar puerto rd0 como salida de control S1, y RD7 como entrada de control
TRISD=0b11111110;
RD0=0;
// configurar timers
// T1 genera frecuencia de 50Hz - entra cada 20ms
// Configuracion del timer 1
T1CON=0x00; //inicializar en ceros registro de control
TMR1H=0xB1; //valor de inicializacion de timer 1 para contar 20ms
TMR1L=0xE0;
// T2 genera ancho de pulso 1ms 2ms
// Configuracion del timer 2
T2CON=0x00; //inicializar registro de control t2
T2CKPS1=1; //configurar prescaler 1:16
TMR2=x; //valor de inicializacion de timer 2 para contar 1.5ms
// configurar interrupciones
INTCON=0x00; //inicializar registro de control de interrupciones
GIE=1; //habilitar int globales
PEIE=1; //habilitar int perifericas
TMR1IE=1; //habilitar int de los timers 1 y 2
TMR2IE=1;
TMR1IF=0; //borrar banderas (deben ser borradas por software)
TMR2IF=0;
T1OSCEN=1; //activa el oscilador
TMR1ON=1; //activa timer 1
}
void interrupt interrupciones(void)
{
GIE=0;
if(TMR1IF==1)
{
TMR1ON=0;
RD0=1;
TMR1H=0xB1; //valor de inicializacion de timer 1 para contar 20ms
TMR1L=0xE0;
TMR1ON=1;
TMR2ON=1;
TMR1IF=0;
}
if(TMR2IF==1)
{
RD0=0;
TMR2ON=0;
TMR2=x; // inicializacion 1.5ms
TMR2IF=0;
}
GIE=1;
}
pero entiededno moe bien que funcion hace el while() envia señales pero no para que, este code solo maneje un servo.
saludos
saludos