mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik uC und GSM Modem Kommunikations Probleme


Autor: Ruediger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Leute,ich weiß zu diesem Thema gibts schon viel zu viele Beiträge 
aber ich häng absolut fest und hoffe jemand hat den entscheidenden Tip 
für mich. Ich möchte mit nem uC eine SMS über ein Handy verschicken. Um 
klein anzufangen,versuche ich zuerst mit dem uC einen Datenanruf übers 
Handy einzuleiten...
Ich habe zwei verschiedene Handys zum basteln hier. Ein Nokia7110 und 
ein Samsung SGH-M300. Für beide Handys hab ich je ein Serielles 
Datenkabel. Wenn ich nun ein Handy an den Rechner anschließe und den 
Com-Port öffne. Muss ich dort nur ATD und meine Nummer hinschicken und 
das ganze mit h0D abschließen und der Datenanruf wird aufgebaut... 
(Soweit so gut)

Habe jetzt nen uC (Atmega8) der auf nem STK500 sitzt so programmiert das 
er die gleichen Daten rausschickt... Wenn ich den an den PC anschließe 
klappt das auch wunderbar und es kommen am PC die Modembefehle vom uC 
an...

Nur passiert halt leider nix wenn ich das STK500 an eins der Handys 
anschließe. Habe das ganze schon mit nem gekauften Nullmodemkabel 
getestet und mit nem 3 Poligen selbstgebastelten. Nix klappt!
Hier mal der Code vom uC:
/* UART-Init beim AT90S2313 */
#include <avr/io.h> 

#ifndef F_CPU
/* In neueren Version der WinAVR/Mfile Makefile-Vorlage kann
   F_CPU im Makefile definiert werden, eine nochmalige Definition
   hier wuerde zu einer Compilerwarnung fuehren. Daher "Schutz" durch
   #ifndef/#endif 
 
   Dieser "Schutz" kann zu Debugsessions führen, wenn AVRStudio 
   verwendet wird und dort eine andere, nicht zur Hardware passende 
   Taktrate eingestellt ist: Dann wird die folgende Definition 
   nicht verwendet, sondern stattdessen der Defaultwert (8 MHz?) 
   von AVRStudio - daher Ausgabe einer Warnung falls F_CPU
   noch nicht definiert: */
#warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 8000000"
#define F_CPU 8000000UL  // Systemtakt in Hz - Definition als unsigned long beachten 
                         // Ohne ergeben sich unten Fehler in der Berechnung
#endif
 
#define BAUD 9600UL      // Baudrate

#include <util/delay.h>
  
 
// Berechnungen
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)   // clever runden
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))     // Reale Baudrate
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler.
 
#if ((BAUD_ERROR<990) || (BAUD_ERROR>1010))
  #error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch! 
#endif
 

/* USART-Init beim ATmega8 */
 
int main(void)
{
    UCSRB |= (1<<TXEN);                // UART TX einschalten
    UCSRC |= (1<<URSEL)|(3<<UCSZ0);    // Asynchron 8N1 
 
    UBRRH = UBRR_VAL >> 8;
    UBRRL = UBRR_VAL & 0xFF;



 while (!(UCSRA & (1<<UDRE)))  /* warten bis Senden moeglich                   */
    {
    }
 
    void long_delay(uint16_t ms) {
    for(; ms>0; ms--) _delay_ms(1);}

  
  UDR = 'A';
  long_delay(10);
  UDR = 'T';
  long_delay(10);
  UDR = 'D';   
  long_delay(10);
  
  UDR = '0';
  long_delay(10);
  UDR = '2';
  long_delay(10);
  UDR = '4';   
  long_delay(10);

  UDR = '1';
  long_delay(10);
  UDR = '4';
  long_delay(10);
  UDR = '0';   
  long_delay(10);

  UDR = '0';
  long_delay(10);
  UDR = 'x';
  long_delay(10);
  UDR = 'x';   
  long_delay(10);
  

  UDR = 'x';
  long_delay(10);
  UDR = 'x';
  long_delay(10);
  UDR = 13;   
  long_delay(10);


}
Ps: die letzten ziffern hab ich nur hier durch x ersetzt! Hoffe es weiß 
jemand Rat... Vielen Dank schonmal für die Mühe, Rüdiger

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.