ผมต้องการให้ pic ตรวจสอบ ว่า GSM MODULE มีการโทรเข้า โดยการตรวจสอบจาก ring แต่มีปัญหาคือไม่สามารถตรวจสอบได้มันไม่แสดง คำว่า OK เมื่อมี ring
[open_code]#include <16f877a.h>
#include <stdlib.h>
#include <string.h>
#fuses XT,NOLVP,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use rs232(baud = 9600, xmit = PIN_C6, rcv = PIN_C7,errors,stream=GSM,errors)
int num_plus;
char buffer[5];
#INT_RDA
void IntRDA_isr(void)
{
char i;
char k;
char sentent[5]="RING";
while(true) // infinite loop
{
k=fgetc(GSM);
if(k!=0)
{
if(k=="RING")
{
buffer
=k;
i++;
if(i>=3)
{
if(strncmp(buffer,sentent,4)==0)
{
printf("OK");
}
}
}
}
}
}
void main()
{ printf("Siwatid");
ENABLE_INTERRUPTS(GLOBAL); // Enable Interrupts
ENABLE_INTERRUPTS(INT_RDA); // Enable Serial Interrupts
while(1)
{
IntRDA_isr();
}
}
[/close_code]
สอบถาม Code รับสัญญาณมาจาก rs232 ใน pic
[open_code]#include <16f877a.h>
#include <stdlib.h>
#include <string.h>
#fuses XT,NOLVP,NOWDT,NOPROTECT
#use delay(clock=4000000)
#use rs232(baud = 9600, xmit = PIN_C6, rcv = PIN_C7,errors,stream=GSM,errors)
int num_plus;
char buffer[5];
#INT_RDA
void IntRDA_isr(void)
{
char i;
char k;
char sentent[5]="RING";
while(true) // infinite loop
{
k=fgetc(GSM);
if(k!=0)
{
if(k=="RING")
{
buffer=k;
i++;
if(i>=3)
{
if(strncmp(buffer,sentent,4)==0)
{
printf("OK");
}
}
}
}
}
}
void main()
{ printf("Siwatid");
ENABLE_INTERRUPTS(GLOBAL); // Enable Interrupts
ENABLE_INTERRUPTS(INT_RDA); // Enable Serial Interrupts
while(1)
{
IntRDA_isr();
}
}
[/close_code]