TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: RODDY155 en 29 de Octubre de 2008, 18:38:25
-
Hola amigos del foro, primero que nada felicitarlos por este espacio que ayuda a varias personas. Bueno ire directo al punto
estoy creando un proyecto en CCS el cual consiste en leer de una pistola de codigos de barra y esta trasmitira al pic su lectura
para comparar segun yo estime conveniente, el hecho es que la pistola transmite de forma serial una cadena de numeros. Bueno
el problema esta que al simularlo en Proteus me aparecen los mensajes en el LCD (eso esta bien...ahhh para simular la pistola
uso un terminal virtual en proteus en el cual puedo escribir y al apretarle enter se me ve en pantalla), ahora lo que le estoy mandando se me ve pero no lo compara con un arreglo previamente definido, miren este es el programa:
#include <16F84A.h>
#fuses XT, NOWDT, NOPROTECT
#use delay(clock=4000000)
#include <string.h>
#include <stdlib.h>
#define Tx PIN_A1 // PIN de Transmisión
#define Rx PIN_A0 // PIN de Recepción
//#define PIN_A3 43
#use rs232(baud=9600,parity=N,xmit=Tx,rcv=Rx,bits=8)
//#use fast_io (a)
#use fast_io (b)
#include "lcd.c"
#define use_portb_lcd TRUE
disable_interrupts(global);
void main()
{
char cod1[4]="100";
char cod2[4]="200";
char lectura[4];
RESTART_WDT();
lcd_init();
printf(lcd_putc," PROY LECTURA\n");
printf(lcd_putc,"PIC LISTO");
/*delay_us( 3000 );
output_high(PIN_A2);
delay_us( 3000 );*/
while(1)
{
gets(lectura);
printf("rProducto: %s\f",lectura);
printf(lcd_putc,"\fProducto:\n%s",lectura);
if(lectura==cod1)
{
delay_us( 3000 );
output_high(PIN_A2);
delay_us( 3000 );
}
if(lectura==cod1)
{
delay_us( 3000 );
output_high(PIN_A3);
delay_us( 3000 );
}
//output_low(PIN_A2);
//output_high(PIN_A3);
}
}
-
se me olvido mencionar que solo estoy simulando en proteus aun no uso la pistola...por eso tengo
los arreglos de longitud 4.
-
Hola.
Para comparar string's debes hacerlo byte a byte.
Saludos
-
Hola.
Para comparar string's debes hacerlo byte a byte.
Saludos
Eso, o usar la funcion strcmp de la librería string.h
funcionamiento strcmp (http://www.conclase.net/c/librerias/funcion.php?fun=strcmp)
-
Hola
La funcion strcmp compara byte a byte :mrgreen:
Saludos