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