He tratado realizar la comunicación de dos micros 16f887 mediante los módulos de RF y resulta que si conecto los dos micros con cable funciona todo muy bien, pero al poner los módulos RF no funciona.
Tengo un testigo para mirar que recibe y resulta que el led está parpadeando (otras señales o ruido).
No logro aún eliminar ese ruido. La idea es que al pulsar un botón el otro encienda un led y que al pusar otro botón se apague
PROGRAMA RECEPTOR
PROGRAMA TRANSMISOR
De ante mano muchas gracias por su ayuda. Trabajo en mikroC.
Tengo un testigo para mirar que recibe y resulta que el led está parpadeando (otras señales o ruido).
No logro aún eliminar ese ruido. La idea es que al pulsar un botón el otro encienda un led y que al pusar otro botón se apague
PROGRAMA RECEPTOR
Código:
void main( void ){
//Declaración de variables.
char ARMADO;
//Configuración de puertos.
OSCCON = 0b01110110; //Oscilador interno a 4MHz
ANSEL = 0; //Configura portA como digital
ANSELH = 0; //configura los demas puertos como digitales
TRISA = 0xFF; // PORTA is input
TRISB = 0; // PORTB is output
TRISC = 0xFF; // PORTC is input
TRISD = 0xFF; // PORTD is input
PORTA = 0;
PORTB = 0;
PORTC = 0;
PORTD = 0;
//Configuración del puerto serial.
UART1_Init(9600);
do{ //Bucle infinito.
if(UART1_Data_Ready()==1){ //La sentencia if evalúa si un dato está listo para leer.
ARMADO = UART1_Read(); //Se lee el DATO del bufer.
if (ARMADO==30){
PORTB = 0B00001111;
Delay_ms(100); //tiempo de retardo
}
if (ARMADO==20){
PORTB = 0B00000000;
Delay_ms(100); //tiempo de retardo
}
}
if((PORTA.F7==0)&&(ARMADO==20)){ //Evalúa el estádo del pulsador por RA1, q se activado en bajo.
Delay_ms(2000); //tiempo de retardo
PORTB = 0B00001111;
}
} while(1);
}
PROGRAMA TRANSMISOR
Código:
void main( void ){
//Declaración de variables.
char ARMADO;
//Configuración de puertos.
OSCCON = 0b01110110; //Oscilador interno a 4MHz
ANSEL = 0; //Configura portA como digital
ANSELH = 0; //configura los demas puertos como digitales
TRISA = 0xFF; // PORTA is input
TRISB = 0; // PORTB is output
TRISC = 0xFF; // PORTC is input
TRISD = 0xFF; // PORTD is input
PORTA = 0;
PORTB = 0;
PORTC = 0;
PORTD = 0;
//Configuración del puerto serial.
UART1_Init(9600);
do{ //Bucle infinito.
if(UART1_Data_Ready()==1){ //La sentencia if evalúa si un dato está listo para leer.
ARMADO = UART1_Read(); //Se lee el DATO del bufer.
if (ARMADO==30){
PORTB = 0B00001111;
Delay_ms(100); //tiempo de retardo
}
if (ARMADO==20){
PORTB = 0B00000000;
Delay_ms(100); //tiempo de retardo
}
}
if((PORTA.F7==0)&&(ARMADO==20)){ //Evalúa el estádo del pulsador por RA1, q se activado en bajo.
Delay_ms(2000); //tiempo de retardo
PORTB = 0B00001111;
}
} while(1);
}
De ante mano muchas gracias por su ayuda. Trabajo en mikroC.
Última edición por un moderador: