How far does it get before it locks up exactly?
Is it receiving the AT+CSQ ?
How far does it get before it locks up exactly?
Is it receiving the AT+CSQ ?
Dave
Always wear safety glasses while programming.
It locks up just right after it performs the first AT command..the same result when I rearrange the code.
it perform GOSUB GSM_SIGCHECK then after it it never performs the gosub GSM_MODEL correctly and calls GSM_CHECK_ERR:Code:main: PORTB = 0 ' PORTB lines low to read buttons TRISB = %11111000 ;gosub CLR_SCRN GOSUB GSM_SIGCHECK ;gosub CLR_SCRN gosub GSM_MODEL pause 260 ' pause to avoid sending repetition ;goto main End 'End program
I also tried to interchange the sequence but the same results. It performs the GOSUB GSM_MODEL but failed to execute GOSUB GSM_SIGCHECK correctly.
/tacbanon
Last edited by tacbanon; - 14th July 2012 at 12:21.
I do not see anyplace in the code in post#3 to call GSM_CHECK_ERR
And your last post has GOTO main commented out falling through to END.
Maybe with all of the trouble shooting there are other typos? Sorry that I can not spot the problem directly.
Dave
Always wear safety glasses while programming.
Try
HSERIN [WAIT("CSQ: "),DEC Signal]
SEROUT2 ....[DEC Signal]
You don't have 13 chars, after AT+CSQ:...
From manual
STR ArrayVar\n{\c} Receive string of n characters optionally ended in character c
So If you want to string end after receiving CRLF
Try this
Serialdata var byte[4]
HSERIN 4000, GSM_CHECK, [WAIT("AT+CSQ"),STR Serialdata\4\13]
@pedja089
Thanks for the time helping..I tried the to call the following code below.
DEC Signal displays 14 which is I know it is correct. But when I try to call this block of code(pressing the 3rd button) 2nd time it calls GSM_CHECK_ERR...instead of 14. Works again if I press the RESET button.Code:GSM_SIGCHECK: High PORTB.0 ' 1st LED on PAUSE 1000 low PORTB.0 PAUSE 1000 HSEROUT ["AT+CSQ",13] 'Send AT to modem followed by a CR HSERIN 4000, GSM_CHECK_ERR, [WAIT("CSQ: "),DEC Signal] SEROUT2 PORTD.5, 84,[$D,DEC Signal]
What do you think it is causing this issue?
regards,
tacbanon
Last edited by tacbanon; - 14th July 2012 at 14:23.
Sorry about that mackrackit...yeah I'm kinda dizzy now (been working on this since last night) below is the code what I was using.
Thanks in advance,Code:asm __CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L __CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_ON_2L & _BORV_2_2L & _VREGEN_ON_2L __CONFIG _CONFIG2H, _WDT_OFF_2H __CONFIG _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_ON_3H __CONFIG _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _ICPRT_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L endasm DEFINE OSC 48 DEFINE HSER_RCSTA 90h ' enable serial port, DEFINE HSER_TXSTA 20h ' enable transmit, * we change 20h to 36 for 115200 DEFINE HSER_BAUD 9600 DEFINE HSER_CLOERR 1 ' automatic clear overrun error TRISC = %10000000 ' PORTC.7 is the RX input, PORTC.6 is the TX output ' Serial communication definition ' =============================== ' ADCON1 = %00001111 'Set up ADCON1 register no matter what you're doing!!!!!! ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: INCLUDE "MODEDEFS.BAS" ' Include Shiftin/out modes '***************************************************************************** Serialdata var byte[13] INTCON2.7 = 0 ' Enable PORTB pull-ups TRISB = %11111000 TRISC = %10000000 led1 var PortC.0 cntr var byte cntr = 0 TRISD = %00000000 Serout2 PORTD.5, 84, [$1B,$63,$30] gosub CLR_SCRN main: PORTB = 0 ' PORTB lines low to read buttons TRISB = %11111000 If PORTB.6 = 0 Then ' If 3rd button pressed... PORTB.2 = 1 ' 3rd LED on gosub CLR_SCRN Serout2 PORTD.5, 84, [$D, "Button 3 "] pause 500 gosub CLR_SCRN GOSUB GSM_SIGCHECK Endif If PORTB.5 = 0 Then ' If 2nd button pressed... PORTD.1 = 1 ' 2nd LED on gosub CLR_SCRN Serout2 PORTD.5, 84, [$D, "Button 2 "] pause 500 gosub CLR_SCRN gosub GSM_MODEL Endif pause 260 ' pause to avoid sending repetation goto main End 'End program GSM_SIGCHECK: High PORTB.0 ' 1st LED on PAUSE 1000 low PORTB.0 PAUSE 1000 HSEROUT ["AT+CSQ",13] 'Send AT to modem followed by a CR HSERIN 4000, GSM_CHECK_ERR, [WAIT("AT+CSQ"),STR Serialdata\13] Serout2 PORTD.5, 84, [$D, STR Serialdata\13] RETURN GSM_CHECK_ERR: Serout2 PORTD.5, 84, [$D, "GSM ERROR"] Return GSM_MODEL: High PORTB.0 ' 1st LED on PAUSE 1000 low PORTB.0 PAUSE 1000 HSEROUT ["AT+CGMI",13] 'Ask model name HSERIN 4000, GSM_CHECK_ERR, [WAIT("AT+CGMI"),STR Serialdata\13] 'Check model name "SIMCOM_Ltd" Serout2 PORTD.5, 84, [$D, STR Serialdata\13] return CLR_SCRN: cntr=cntr+1 Serout2 PORTD.5, 84, [$1B,$45,"GSM DEBUG PORT ",#cntr] return
tacbanon
Last edited by tacbanon; - 14th July 2012 at 15:01.
Oops I also forgot to mention that I'm using 9600 baud rate, I thought it will change anything...
Check does it send correctly with HT. Use your usb ttl uart converter board.
Try to send CRLF then pause 100, and then send command...
Bookmarks