i have this code for gps/gsm based tracking system. when i start building target it gives this error. help me to fix this error, thank you, my code is this:
//GPS Vehicle tracker #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=\"+923439335663\""); 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++); }
error: project.c(118): error C202: 'PINC': undefined identifier Target not created. Build Time Elapsed: 00:00:00
What does PINC do in the system you originally lifted the code from?
Is it some AVR register, Keil doesn't make an AVR compiler. Review the functionality and port to your current ARM or 8051 system.
Please also READ the instructions and tip with regard to posting source code, it might at least be legible then.
I am working with the same code on avr studio, but after building the code i am getting these two errors 1]'UCZS0' undeclared (first use in this function) 2]'UCZS1' undeclared (first use in this function) which are in the - void usart_init() please help me with this asap!