Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/05/2010, 22:46
Avatar de RIVERMILLOS
RIVERMILLOS
 
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 10 meses
Puntos: 15
Pregunta sobre servos y c++

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