hola necesito controlar el giro de un motor con 18f4550
el programa que tengo que haces es que con una interrupcion de rb0 active la cantidad de vueltas que quiero que de el el motor,
con una interrupcion rb1 active la velocidad ala que quiero que valla el motor , y con una interrupcion rb2 sea el stars o cuando el motor empieza su marcha. gracias... ...
MI CODIGO QUE TENGO HASTA HORA ES EL SIGUIENTE:
el programa que tengo que haces es que con una interrupcion de rb0 active la cantidad de vueltas que quiero que de el el motor,
con una interrupcion rb1 active la velocidad ala que quiero que valla el motor , y con una interrupcion rb2 sea el stars o cuando el motor empieza su marcha. gracias... ...
MI CODIGO QUE TENGO HASTA HORA ES EL SIGUIENTE:
Código:
#INCLUDE <18F4550.h> // LIBRERIA PARA EL 4550
//********************************************************************************
//OSCILADOR INTERNO
//#FUSES INTRC_IO,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOPBADEN
//#USE DELAY (INTERNAL=4M)
//OSCILADOR EXTERNO
#FUSES XT,CPUDIV1,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,NOPBADEN //OSCILADOR EXTERNO
#USE DELAY (CLOCK=4M)
#BYTE PORTA=0xf80
#BYTE PORTB=0xf81
#BYTE PORTC=0xf82
#BYTE PORTD=0xf83
#BYTE PORTE=0xf84
#USE FAST_IO(A)
#USE FAST_IO(B)
#USE FAST_IO(C)
#USE FAST_IO(D)
#USE FAST_IO(E)
INT t=100,N=0,i=0,N1=0;
#INT_EXT
VOID CONTROL_RB0() //FUNCIÓN CANTIDAD DE GIROS
{
N++;
FOR(i=0;i<=N;i++)
{
PORTA=i;
PORTC=PORTA;
delay_ms(t);
}
}
#INT_EXT1
VOID CONTROL_RB1() //FUNCIÓN VELOCIDAD
{
N1++;
IF(N1==1)
{
}
delay_ms(t);
}
#INT_EXT2
VOID CONTROL_RB2() //FUNCION EJECUTAR
{
delay_ms(t);
}
////////////////////////FUNCION PRINCIPAL (MAIN)/////////////////////////////////////////
VOID MAIN (VOID)
{
SETUP_ADC_PORTS(NO_ANALOGS);
SETUP_ADC(ADC_OFF);
SET_TRIS_A(0);
SET_TRIS_B(0B11110111);
SET_TRIS_C(0);
SET_TRIS_D(0);
SET_TRIS_E(0);
PORT_B_PULLUPS(TRUE);
ENABLE_INTERRUPTS(INT_EXT);
ENABLE_INTERRUPTS(INT_EXT1);
ENABLE_INTERRUPTS(INT_EXT2);
EXT_INT_EDGE(H_TO_L);
EXT_INT_EDGE(1,H_TO_L);
EXT_INT_EDGE(2,H_TO_L);
ENABLE_INTERRUPTS(GLOBAL);
DELAY_MS(500);
WHILE(1)
{
}
} ...
Última edición por un moderador: