Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

rs232 buffer Kategorie: Programmierung C (von mave - 27.06.2013 8:58)


Hallo allerseits

Verständnisfrage:
Ich benutze am Applicationboard die RS 232 an einem GSm Handy
Der Mikrocontroller sendet bei fehlermeldungen eine SMS und fragt im 5 Minuten Intervall
über RS232 das HAndy ab ob im Buffer eine SMS empfangen wurde. Das funktioniert bestens.

Nun meine Frage: Die RS232 ist ja Interrupt gesteuert oder? Es mu� doch möglich sein
dass der Microcontroller über Interuppt erkennt ob seitens GSM etwas eingegangen ist oder? Und diese
dann automatisch sofort bearbeitet?

Anbei mein Programmteil zum RS232 :

Zuerst wird der Buffer ausgelesen und überprüft ob ein gewisser Text darin vorhanden ist.
Wenn ja wird ein Befehl im µC ausgeführt. Wenn nein wird die SMS im Handyspeicher gelöscht.
void remotehandy(void)
 {
  if (activity==0)
  {
  activity=1;
  int a;
  a=0;
  cam1=0;
  cam2=0;
  cam3=0;
  cam4=0;
  cam5=0;

  Text1="at+cmgr=26";//korregieren


  //Init RS232: 19200 bps, 8 Bit, 1 Stop, NP
  // 20 byte Empfangspuffer - 15 byte Sendepuffer
  Serial_Init_IRQ(1,buffer2,0,104,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD19200);
  Serial_WriteText(1,Text1);                  // Text über RS232 ausgeben
  Serial_Write(1,CR);
  AbsDelay(2000);                             // 2 Sek. Wartezeit bis zur GröÃ?e des
                                              // Empfangspuffers werden die seriellen
                                              // Eingaben aufgezeichnet

  while(true)
  {
  sz=Serial_ReadExt(1);                   // Puffer auslesen
  if (sz==0x100 & a==0)   //keine sms im Handy empfangen
  {
  break;
  }
  if(sz==0x100 &a>10)
  {
  cam1=qwe[86];
  cam2=qwe[87];
  cam3=qwe[88];
  cam4=qwe[89];
  cam5=qwe[90];
  if (cam1==0x43 & cam2==0x36 & cam3==0x45 & cam4==0x30 & cam5==0x33)
   {
   web=0;
   Webcam();
   Str_Fill(qwe,0,110);
   }

  Text1="at+cmgd=26";//korregieren

  Serial_Init_IRQ(1,buffer2,0,110,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD19200);
  Serial_WriteText(1,Text1);                  // Text über RS232 ausgeben
  Serial_Write(1,CR);
  AbsDelay(2000);                             // 2 Sek. Wartezeit bis zur GröÃ?e des
                                              // Empfangspuffers werden die seriellen
                                              // Eingaben aufgezeichnet

  break;                      // bei 0x100 ist der Puffer leer
  }
  qwe[a]=sz;
  a=a+1;


   }

   }


  }

thanks
lg
mave


    Antwort schreiben


Antworten:

Re: rs232 buffer (von Torsten - 29.06.2013 8:29)
Re: rs232 buffer (von PeterS - 27.06.2013 13:08)
    Re: rs232 buffer (von mave - 28.06.2013 9:18)