Uart GSM-Modul Problem Peter Fleury

Gast #1262409
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
}
#1262700
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren