thx ioannis for idea, and i put a hex inverter (invert signal from phone twice) in tx phone to rx pic line and the program is now working. so it search letter A in first readed message in SM location and if it find it turn on led on portb.6
Code:'**************************************************************** '* Name : UNTITLED.BAS * '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 20/02/2009 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** ansel=$00'konfigurisi AN pinove kao digital I/O anselh=$00 ' Definisanje define OSC 4 DEFINE HSER_SPBRG 25 DEFINE HSER_TXSTA 24h DEFINE HSER_RCSTA 90h DEFINE HSER_BAUD 9600 DEFINE HSER_CLROERR 1 DEFINE LCD_BITS 4 DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 0 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 4 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 5 DEFINE LCD_LINES 2 PORUKA VAR BYTE[16] I VAR BYTE HIGH PORTB.7 PAUSE 2000 LOW PORTB.7 ' provjeri nove poruke pocetak: HSerout ["AT",13,10]' pocni komunikaciju HSERIN 2000,pocetak,[WAIT("OK")] LCDOUT $FE,1,"start" pause 1000 textmod: HSerout ["AT+CMGF=1",13,10]'postavi text mod HSERIN 2000,textmod,[WAIT("OK")] LCDOUT $FE,1,"text mod" pause 1000 mem: HSEROUT["AT+CPMS=",34,"SM",34,13,10]' ciljana memory lokacija HSERIN 2000,mem,[WAIT("OK")] LCDOUT $FE,1,"mem loc" pause 1000 IP: 'HSEROUT["AT+CMGL=",34,"REC READ",34,13,10]' filter za query HSEROUT["AT+CMGR=1",13,10]' filter za query LCDOUT $FE,1,"query" HSERIN 5000,IP,[WAIT("REC READ"),skip 41, STR PORUKA\16\13] LCDOUT $FE,1,"analizing" I=0 WHILE I <> 13' count till 13 if poruka[i]=$41 THEN ' searc leterr A.... GOTO UKLJUCI: ELSE GOSUB NAZAD: I=I+1 ENDIF WEND goto ip: UKLJUCI: High PortB.6 ' turn on led end NAZAD: RETURN End




Bookmarks