Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > 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