Forum: Mikrocontroller und Digitale Elektronik Uart GSM-Modul Problem Peter Fleury


von Tommy (Gast)


Lesenswert?

Hallo zusammen,
hab folgendes Problem:
Schicke einfach den at\r Befehl zum GSM Modul und sollte eigentlich 
<CR><L>OK<CR><L> zurüchbekommen. Aber irgendwie wird das letzte <L> 
immer verschluckt hab es aber eigentlich mit ausprogrammiert! Kann mir 
jemand helfen?
1
#include<avr/io.h>
2
#include<avr/interrupt.h>
3
#include"uart.h"
4
#include"timer.h"
5
6
#define F_CPU 4000000UL
7
8
// 9600 baud
9
#define UART_BAUD_RATE 9600
10
//#define UART_BAUD_RATE 4800
11
12
volatile  uint8_t time=0;
13
14
ISR(TIMER2_OVF_vect)
15
{  
16
  time++;
17
}
18
int main()
19
{
20
  unsigned char c=0;
21
22
  timer2_init();
23
24
  uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
25
  uart1_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
26
27
28
  sei();
29
30
  while(1)
31
  {
32
    if(time==2)
33
    {
34
      uart_puts("at\r");
35
      do
36
      {
37
        uart1_putc(c);at
38
      }
39
      while((c=uart_getc())!='\r');
40
        uart1_putc(c);
41
      do
42
      {
43
        uart1_putc(c);
44
      }
45
      while((c=uart_getc())!='\r');
46
      do
47
      {
48
        uart1_putc(c);
49
      }
50
      while((c=uart_getc())!='\n');
51
      do
52
      {
53
        uart1_putc(c);
54
      }
55
      while((c=uart_getc())!='\r');
56
      do
57
      {  
58
        uart1_putc(c);
59
      }
60
      while((c=uart_getc())!='\n');
61
  
62
      time=0;
63
    }
64
65
  }
66
67
  return(0);
68
}

von Tommy (Gast)


Lesenswert?

Denkt euch das at nach dem ersten uart1_putc(c); weg! Fehler beim posten

von Stefan E. (sternst)


Lesenswert?

Was genau bezweckst du mit diesen Schleifen?
1
      do
2
      {
3
        uart1_putc(c);
4
      }
5
      while((c=uart_getc())!='\r');
Damit verschickst du haufenweise Nullen.

Und wenn du <CR><LF>OK<CR><LF> zurück bekommst, bleibt dein ganzen 
Konstrukt beim Warten auf das dritte <CR> hängen, denn das gibt es ja 
nicht.

von gast (Gast)


Lesenswert?

die meisten modems reagieren nur auf "AT\r\n"
dann kommst meist ein \r\n und danach das OK\r\n zurück

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.