i am working on a project for the automatic power reading using gsm but getting some errors: please check the program and guide me
Build target 'Target 1' compiling codec.c... codec.c(2): warning C318: can't open file 'lcd.h' codec.c(3): warning C318: can't open file 'rtc.h' codec.c(5): warning C318: can't open file 'bcd2ascii.h' codec.c(6): warning C318: can't open file 'serial.h' CODEC.C(35): warning C206: 'lcdInit': missing function-prototype CODEC.C(36): warning C206: 'LCDstr': missing function-prototype CODEC.C(36): error C267: 'LCDstr': requires ANSI-style prototype Target not created
#include<reg52.h> #include <lcd.h> #include <rtc.h> #include<string.h> #include<bcd2ascii.h> #include<serial.h>
sbit sw1=P3^7; sbit sw2=P3^6; sbit sw3=P3^5; sbit buzzer=P2^3; sbit relay=P2^2; sbit rled =P3^4; sbit gled =P3^3; bit flag_sw,flagr=0;
static unsigned char k=0,s=0x84,*result,h,unit=0; unsigned char inc=23,check_flag=0,month_flag=0,month; unsigned char *time,*res; unsigned char idata byte1[100]; unsigned char *date,*u,i,j,a=0,b,c,d;
void main() { TMOD=0x20; // serial communication intialization TH1=0XFD;SCON=0X50;TR1=1;i=0; IE=0X91;IT0=0;
lcdInit(); // LCD intialization LCDstr("AUTOMATIC POWER",0x80); LCDstr("METER READING",0xc0); delay(2000);
gsm_check();gsm_rec(); //gsm modem intialization gled=0;rled=1;buzzer=1;relay=1;
while(1) //super loop {
//time display LCDstr("DATE ",0x80); LCDstr("TIME",0xc0); date=getDate(); LCDstr(date,0x86); time=getTime(); LCDstr(time,0xc6); flag_sw=0;delay(1000);
//units display putComL(0x01); LCDstr("UNITS=",0x80); putComL(0x86); unit=getCharE(0x15); u=bcdtoascii(unit); LCDstr(u,0x87);
delay(2000);
/**************checking********************/
a=getCharE(0x04); // gsm modem sending sms if(a>=28 ) { gsm_check(); delay(200); ES=0; unit=0; putCharE(unit,0x15); rled=0;gled=1; gsm_send(byte,"number"); }
//else case
if(a>=16 & d==c){month_flag=1;} else month_flag=0;month_flag=getCharE(0x20);
if(check_flag==0 & month_flag==1 &flagr==0){flagr=1;relay=0;rled=0;gled=1;buzzer=0;delay(100);buzzer=1;} else if(check_flag==1 ){ gled=0;rled=1;buzzer=1;relay=1;} delay(1000);
//receving sms for(j=0;j<100;j++) {if(byte1[j]=='*' &byte1[j+1]=='P' & byte1[j+2]=='A'& byte1[j+3]=='I'& byte1[j+4]=='D') {ES=0;LCDstr("received",0xc0); a=1;check_flag=1;putCharE(check_flag,0x10); gsm_rec(); }} //time setting
if(sw3==0){enter_time();} delay(1000);k=0;
}}
Please Guide Me...
i want to understand each point of the programming.
Hmm... doesn't look like that's true. So far you've only shown an interest in stealing stuff you don't understand out of programs that aren't yours, and complaining that it doesn't work.
If you want to learn how do do something, copying it will not do you (nor anyone else) any good.
Sir This is my first time. so i dont know where to strat from . thats why i am searching each word and try to find out the function of each line. just Please guide me, from where i can find out the basic for this programming. Thank you
So if you know no programming - start writing blinky applications or hello world applications. Don't start trying to make a LCD project...
Do you start learning about car mechanics by stripping the engine of a new car into pieces?
Thank you sir..
I have carefully read the Hello Program sir. And with The help of those steps , I understand the process to Create the target and how to run the program. Thank You very much
can you Please tell me some more programs to study.
All other Keil samples!
Also, see here:
http://c-faq.com/
stealing stuff you don't understand out of programs that aren't yours,
When was last time you have stolen things that ARE yours?
stolen things that ARE yours? aka code reuse
Erik
I've already given you a link to a whole load of resources - did you follow it?
Sir. On building the target a message appears like this:
Build target 'Target 1' assembling STARTUP.A51... compiling code.c... C51 FATAL-ERROR - ACTION: PARSING SOURCE-FILE ERROR: PREPROCESSOR: MACROS TOO NESTED C51 TERMINATED. Target not created
What does this means?
C51 FATAL-ERROR - ACTION: PARSING SOURCE-FILE ERROR: PREPROCESSOR: MACROS TOO NESTED
surprise! it means MACROS TOO NESTED
if you do not know what a nseted macro is then
macro a .... endm
macro b a // this is macro a nested .... endm
somewhere in the docs it staes how many levels th tools can handle, but if you go more than, say, 2 deep, your code is unreadable anyhow