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 | }
|