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


von Ruediger (Gast)


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:
1
/* UART-Init beim AT90S2313 */
2
#include <avr/io.h> 
3
4
#ifndef F_CPU
5
/* In neueren Version der WinAVR/Mfile Makefile-Vorlage kann
6
   F_CPU im Makefile definiert werden, eine nochmalige Definition
7
   hier wuerde zu einer Compilerwarnung fuehren. Daher "Schutz" durch
8
   #ifndef/#endif 
9
 
10
   Dieser "Schutz" kann zu Debugsessions führen, wenn AVRStudio 
11
   verwendet wird und dort eine andere, nicht zur Hardware passende 
12
   Taktrate eingestellt ist: Dann wird die folgende Definition 
13
   nicht verwendet, sondern stattdessen der Defaultwert (8 MHz?) 
14
   von AVRStudio - daher Ausgabe einer Warnung falls F_CPU
15
   noch nicht definiert: */
16
#warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 8000000"
17
#define F_CPU 8000000UL  // Systemtakt in Hz - Definition als unsigned long beachten 
18
                         // Ohne ergeben sich unten Fehler in der Berechnung
19
#endif
20
 
21
#define BAUD 9600UL      // Baudrate
22
23
#include <util/delay.h>
24
  
25
 
26
// Berechnungen
27
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)   // clever runden
28
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))     // Reale Baudrate
29
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler.
30
 
31
#if ((BAUD_ERROR<990) || (BAUD_ERROR>1010))
32
  #error Systematischer Fehler der Baudrate grösser 1% und damit zu hoch! 
33
#endif
34
 
35
36
/* USART-Init beim ATmega8 */
37
 
38
int main(void)
39
{
40
    UCSRB |= (1<<TXEN);                // UART TX einschalten
41
    UCSRC |= (1<<URSEL)|(3<<UCSZ0);    // Asynchron 8N1 
42
 
43
    UBRRH = UBRR_VAL >> 8;
44
    UBRRL = UBRR_VAL & 0xFF;
45
46
47
48
 while (!(UCSRA & (1<<UDRE)))  /* warten bis Senden moeglich                   */
49
    {
50
    }
51
 
52
    void long_delay(uint16_t ms) {
53
    for(; ms>0; ms--) _delay_ms(1);}
54
55
  
56
  UDR = 'A';
57
  long_delay(10);
58
  UDR = 'T';
59
  long_delay(10);
60
  UDR = 'D';   
61
  long_delay(10);
62
  
63
  UDR = '0';
64
  long_delay(10);
65
  UDR = '2';
66
  long_delay(10);
67
  UDR = '4';   
68
  long_delay(10);
69
70
  UDR = '1';
71
  long_delay(10);
72
  UDR = '4';
73
  long_delay(10);
74
  UDR = '0';   
75
  long_delay(10);
76
77
  UDR = '0';
78
  long_delay(10);
79
  UDR = 'x';
80
  long_delay(10);
81
  UDR = 'x';   
82
  long_delay(10);
83
  
84
85
  UDR = 'x';
86
  long_delay(10);
87
  UDR = 'x';
88
  long_delay(10);
89
  UDR = 13;   
90
  long_delay(10);
91
92
93
}
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

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.