Aqui he puesto el codigo que quiero usar para comparar una cadena de caracteres, el problema es que no funciona correctamente la comparacion, ya que al ingresar 11111 como caracteres de entrada siempre la comparacion es incorrecta. Use 2 puertos serie solo para mostrar lo que ingresaba.
Dejo el codigo para escuchar diferentes aclaraciones de la comparacion y que estoy haciendo mal!! GRACIAS A TODOS!
///////////////////////////////////////////////////
//
// Comparacion de carateres.
//
///////////////////////////////////////////////////
#include <16F648a.h>
#use delay(clock=4000000)
#fuses HS,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP,NOWDT
#use rs232(baud=9600, xmit=PIN_B2,rcv=PIN_B1,stream=GPS)
#use rs232(baud=9600, xmit=PIN_A1,rcv=PIN_A0,stream=PC)
// Constantes y definiciones ///////////////////////////////////////////////////
int const lenbuff=5; // Tamaño del buffer de recepción
// Variables Globales //////////////////////////////////////////////////////////
char smsbuff[lenbuff]; // Buffer GPS
char latitud[lenbuff];
char longitud[lenbuff];
char SMS1[6]={'1','1','1','1','1'};
// Declaracion de Funciones ////////////////////////////////////////////////////
void inicbuff(void); // Borra el buffer de recepción
void inicia_sms(void); // Inicia SMS
void comando(void); // Comando para comparar
void inicbuff(void){ // Inicia a \0 cbuff
int i;
for(i=0;i<lenbuff;i++) // Bucle que pone ...
{
smsbuff=0; // a 0 smsbuff
}
}
void comando(void){
int i;
printf("INGRESE:%s ",SMS1,PC);
while(kbhit(GPS)); // tomo las teclas presionadas
{
for(i=0;i<lenbuff;i++) //incremento contador para almacenar
{
smsbuff=fgetc(GPS); // almaceno
}
}
printf("\r\n INGRESADO %s ",smsbuff,GPS); //muestro lo ingresado como SMS
if(SMS1==smsbuff){ // quiero comparar lo ingresado con lo fijo
printf("\r\nClave\nCorrecta!\r\n",PC); //si son iguales... Correcto
}
else
{
printf("\r\nClave\nNO!!!!!!\r\n",PC); //sino incorrecto...
}
}
void main()
{
printf("Esperando SMS...\r\n",GPS); // Señal de que funciona
delay_ms(100);
inicbuff(); // Funcion que inicia el SMS en 0
comando(); // llamando al comando que compara
}