Pic16f877A uart string comapare reg

Thread Starter

selvamurugan_t

Joined Aug 8, 2016
18
Hi ,
I have define array1[](predefined) and another array2[] received from hyperterminal to pic.

Just I want to compare those arrays and if its succeeded I am sending string to lcd ok else error.
But I am getting result as error.

C:
#include <pic.h>
#include<string.h>
#include "lcd_driver.c"
#define _XTAL_FREQ 8000000

char UART_Init(const long int baudrate)
{
unsigned int x;
x = (_XTAL_FREQ - baudrate*64)/(baudrate*64);
if(x>255)
{
x = (_XTAL_FREQ - baudrate*16)/(baudrate*16);
BRGH = 1;
}
if(x<256)
{
SPBRG = x;
SYNC = 0;
SPEN = 1;
TRISC7 = 1;
TRISC6 = 1;
CREN = 1;
TXEN = 1;
return 1;
}
return 0;
}
char UART_TX_Empty()
{
return TRMT;
}
char UART_Data_Ready()
{
return RCIF;
}
char UART_Read()
{

while(!RCIF);
return RCREG;
}
void UART_Read_Text(char *Output, unsigned int length)
{
int i;
for(int i=0;i<length;i++)
Output[I] = UART_Read();
}
void UART_Write(char data)
{
while(!TRMT);
TXREG = data;
}
void UART_Write_Text(char *text)
{
int i;
for(i=0;text[I]!='\0';i++)
UART_Write(text[I]);
}
//----------------------------------------main function------------------------------------------
void main()
{
char i,array1[13] = {'1','2','3','4','5','6','7','8','9','1','2','1'},array2[13];
//char i,array1[6] = "hello",array2[6];
TRISB = 0x00;

setuplcd_port();
lcd_init();
lcd_send_string("welcome"); // Write text in first row
UART_Init(9600);
array1[12] = '\0';
array2[12] = '\0';
while(1)
{
if(UART_Data_Ready())
{
for(i=0;i<12;)
{
if(UART_Data_Ready())
{
array2[I] = UART_Read();
i++;
// lcd_command(0x01);
// lcd_command(0x80);
// lcd_send_string(array2);
}
}

for(i=0;i<12;i++)
{
if((array1[I]!=array2[I])&&(array1[I]!='\0'||array2[I]!='\0')&&(array1[I]!='\n'||array2[I]!='\n'))
{
lcd_command(0x01);
lcd_command(0x80);
lcd_send_string("error");
}
else
{
lcd_command(0x01);
lcd_command(0x80);
lcd_send_string("ok");
}
}
}
}
}
Used code tags
 
Last edited by a moderator:
Top