sms based Lcd Display
yes the code is correct
i use it with gsm modem and its works
u need t capture a event of new message notification
same thing is for cell phone as well as modem
which cell phone or modem ur using
the Code above the last post i made has a code from Ajay that Kiran told me to use which i think is meant for this but i dont know how to integrate it.
Am using a Huawei Modem E160...its A USB modem
implement it in main program. u ll get.
1. Is it possible to increment the 1 using aloop in the the command in the line ..SMSString( "AT+CMGR= 1 \r");...so that it can be able to read
( "AT+CMGR= 2 \r");, ( "AT+CMGR= 3 \r"); ( "AT+CMGR= 4 \r");...so that it can check from address 1-5 using a variable e.g n
2.If The above is okay....in case my simcard receives messages greater that the variable stated, i want it to delete the oldest message..which in this case would be the message at n=1 and replace it with the newest and the loop continues.
Do like this
Second method also can be done.As soon as you receive a msg read/store it and delete it.So that when next msg arrives it sits in 1st location only.
i have tried to declare the (var) as an integer globally but wen the program runs the "AT+CMGR = " doesnt pick up the digit..so in the terminal it displays as shown in the snapshot below
secondly, KiRAN said
Second method also can be done.As soon as you receive a msg read/store it and delete it.So that when next msg arrives it sits in 1st location ony
How can i do this.. thought it would be easier to read from message location 1,2,3,4,5 then back to 1...through the loop i was suggesting above...
so when a new message arrives after location 5 has been filled..instead of storing it in 6, i will delete message in location 1 and place it there and the loop continues..... I hope am clear enough..
Thanx A jay but problem is i dnt knw how 2 convert variable 2 ascii. Pliz enlighten me on how to do this. Thanx
For numbers up to 10 the best method is just to add 0x30 to the value.
0 becomes 0x30 which is ascii '0'
1 becomes 0x31 which is ascii '1' etc.
For 10 or above use "printf", "sprintf" or "itoa"
"printf" will often add a lot of code so is best avoided.
Now am left with one disturbing issue though it should be easy.
am failing to create a loop that can display the message onto the lcd from at+cmgr=1 to at+cmgr=5
below is the part of the code where i want to set up the loop pliz help.
SMSString("AT\r"); // AT commands to initialize gsm modem delay_sms(1000); SMSString( "ATe0\r"); // turn off echo delay_sms(1000); SMSString( "AT&W\r"); // save settings delay_sms(1000); SMSString( "AT+CMGF=1\r"); // select text mode for sms delay_sms(1000); SMSString( "AT+CNMI=2,1,0,0,0\r"); // notification of new sms delay_sms(1000); SMSString( "AT+CMGR="); // AT command to read sms tx0(var++); SMSString( "\r"); IE=0X90; // Enable serial interrupt delay_sms(2000); /* i get a response like this // +CMGR: "REC READ" ,"+2347060580383","10/10/23,14:29:33+04" // device1 off // Ok. */ // read sms and store in buffer msg1 read_text(msg1); delay_sms(2000); IE=0X00; // Disable all interrupt while(1);