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