Forum: Mikrocontroller und Digitale Elektronik Zeichensuche/übergabe


von Patric (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

hab widermal ein Problem, also mir ist das schleierhaft.
Nach den folgenden Befehlen gibt der Controller > at+cmgr=,9 <  raus, 
ich benötige aber > at+cmgr=9 <

text_send("at+cmgr=");
j=nr();
zeichen_send(empfang[j]);
zeichen_send(empfang[j+1]);

wenn ich jetzt aber j++ noch setze, oder nur die Zeile
zeichen_send(empfang[j+1]);
krieg ich nur noch > at+cmgr=  <

Was geht falsch?

Der Controller kriegt

+CMTI: "SM",9

rein (ist in empfang gespeichert)

weiss jemand weiter?

von Lars (Gast)


Lesenswert?

Also klar ist schonmal, dass: zeichen_send(empfang[j]);  dir das Komma 
schickt, da nr() die Position des Kommas zurückgibt. Die Zeile muss also 
raus.

---- cut ------
   text_send("at+cmgr=");  // befehl zum SMS abrufen senden
  j=nr();
  //j++;
  //zeichen_send(empfang[j]);  // EinerNummer des SMS das abgerufen 
werden soll
  zeichen_send(empfang[j+1]);  // ZehnerNummer des SMS das abgerufen 
werden soll

  for(j=0;j<30;j++)
   {
    zeichen_send(empfang[j]);  // sms inhalt senden
   }
---- cut -------

Was du damit abschickst ist:
at+cmgr=9+CMTI: "SM",9

Wobei du auch NULL, sonstige Steuerzeichen und anderen Kram mitschickst 
der in empfang[] drinsteht (ausser das ist fest immer genau 30 Zeichen 
lang).

von Patric (Gast)


Lesenswert?

Hy Lars,

danke das du dich meinen Problem annimmst!

Das habe ich auch schon versucht, ist aber nicht gegangen, wiso weiss 
ich auch nicht.

---- cut -------
 text_send("at+cmgr=");  // befehl zum SMS abrufen senden
  j=nr();
  //j++;
  //zeichen_send(empfang[j]);  // EinerNummer des SMS das abgerufen 
werden soll
  zeichen_send(empfang[j+1]);  // ZehnerNummer des SMS das abgerufen 
werden soll

  zeichen_send(j);

  for(j=0;j<30;j++)
   {
    zeichen_send(empfang[j]);  // empfang inhalt senden
   }
---- cut -------

mit diesen Zeilen kriege ich folgendes

at+cmgr= 

+CMTI: "SM",1

Das  ist im ASCII 15, also ist j=15.
wenn ich jetzt
zeichen_send(empfang[16]);
mache bekomme ich auch nur
at+cmgr=
und dann ein Lehrschlag. Das ist doch unlogisch oder?

von ggo Feigenwinter (Gast)


Lesenswert?

Hi Patric,
ich bin an meiner semestrarbeit, und sollte ein sms über ein gsm-modul
(falcon a2d) senden. (temperaturmessung mit einem atmel avr)
kannst du mir da weiterhelfen?
wie hast du dein zeichen_send und text_send aufgebaut? uart befehl für
at-befehls ausgabe?
merci!
schneegruss von
gregor

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.