troubleshooting Question

Getting Unknown variable error while compiling c to hex

Avatar of ADITYA RAO
ADITYA RAOFlag for India asked on
CGIS/GPS Programming* GSM
3 Comments2 Solutions396 ViewsLast Modified:
The  following  code  is  for  gps  gsm  module.The  compiled  hex  code  is  pushed  to  microprocessor.
While  compiling the  below code  we  get  unknown  variable  error  for  following  variables UCZS0, UCZS1
Please  guide  us  for  same.

//GPS and GSM Based Vehicle tracking system
#define F_CPU 12000000			//12Mhz
#include <avr/io.h>			//Header file for AVR device specific I/O Definitions.
#include <avr/pgmspace.h>		//Header file for incorporating program space string utilities.
#include <util/delay.h>			//Header file for incorporating delay routines.
#include<inttypes.h>


#define USART_BAUDRATE 9600
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)

void WaitMs(unsigned int ms);		

void usart_init();
unsigned int usart_getch();
void usart_writech(unsigned char data);
void usart_message(unsigned char *var);

unsigned char value,i,lati_value[9],lati_dir, longi_value[10], longi_dir, final_message[30];
unsigned char deg = 0xB0;

int main()
{

DDRC=0x00;
PORTC=0xff;

    usart_init();

    while(1)
	{
	 a:
	 value=usart_getch();
	 if(value=='$')
	 {
		
	value=usart_getch();
		if(value=='G')
	{
	value=usart_getch();
	if(value=='P')
	{
	value=usart_getch();
	if(value=='G')
	{
				
	value=usart_getch();
	if(value=='A')
	{
	value=usart_getch();
	if(value==',')
	{
	value=usart_getch();
	while(value!=',')
	{
	value=usart_getch();
	}
	
	for(i=0; i<9; i++)
	{

	lati_value[i] = usart_getch();

	}
	value = usart_getch();
	
	lati_dir=usart_getch();
	value=usart_getch();
	for(i=0; i<10; i++)
	{

	longi_value[i] = usart_getch();
	}
    value = usart_getch();
	
		for(i=1;value!=',';i++)
	{
		longi_value[i]=usart_getch();

		value=longi_value[i];
		}
	longi_dir=usart_getch();
	}
	}
	}
	}
	}
	}
	if(*lati_value && *longi_value)
	{
     for(i=0; i<9; i++)
	 {
	 final_message[i] = lati_value[i];

	  }

  final_message[9] = lati_dir;
  final_message[10] = ' ';
	 for(i=0; i<10; i++)
	 {

	 final_message[i+11] = longi_value[i];
  }

	
	final_message[21] = longi_dir;
	 final_message[22] = '\0';
    }
	else
	 goto a;
	while(PINC==0xff);
     WaitMs(1000);
	 usart_message("ATH");
	 WaitMs(50);

       
	 usart_message("AT+CMGF=1");
	 usart_writech(0x0D);
	 WaitMs(20);
		 
	WaitMs(20);
	usart_message("AT+CMGS=\"+918907607614\"");
	 usart_writech(0x0D);
	 usart_message(final_message);//message
	 usart_writech(0x1A);
	 WaitMs(10000);
		 goto a;
	 
    }


	return 0;	
	
}


void WaitMs(unsigned int ms)		
{
	unsigned int i;

	for(i=0;i<=ms;i++)
	{
		_delay_ms(1);
	}
}


 
void usart_init()
{

UCSRB =  (1 << RXEN) | (1 << TXEN);                    

// Use 8-bit character sizes
UCSRC |= (1 << URSEL) | (1 << UCZS0) | (1 << UCZS1);   

// Load lower 8-bits of the baud rate value into the low byte of the UBRR register
UBRRL = BAUD_PRESCALE;  
                              
UBRRH = (BAUD_PRESCALE >> 8);                          
}
 
 
unsigned int usart_getch()
{

while (!(UCSRA & (1 << RXC)));                          

return(UDR);                                            
}

void usart_writech(unsigned char data)
{
 
 while(!(UCSRA & (1<<UDRE)));
 UDR = data;
}

void usart_message(unsigned char *var) 
{
int h;
while(*var)         
usart_writech(var++); // send message
for(h=0;h<=200;h++); 
}
ASKER CERTIFIED SOLUTION
Join our community to see this answer!
Unlock 2 Answers and 3 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 2 Answers and 3 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros