Forum: Mikrocontroller und Digitale Elektronik Zeichensuche/übergabe


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.