mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeichensuche/übergabe


Autor: Patric (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: Lars (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Patric (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: ggo Feigenwinter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.