hallo!
ich würde gerne mit meinem atmega32 sms versenden. leider treten noch
einige fehler im programm auf.
hier die fehler:
Warning: C:\...\main\main.c(89): local variable 'c' was set, but not
used
Warning: C:\...\main\main.c(105): function parameter #1 name: 's'
doesn't match it's previous declaration: 'szBuf' from line: 38
Warning: C:\...\main\main.c(94): unused function 'uart_putc' was removed
by the linker
Warning: C:\...\main\main.c(105): unused function 'uart_puts' was
removed by the linker
Warning: C:\...\main\main.c(70): unused function 'sende_SMS' was removed
by the linker
ich schreibe die software mit codevisionavr.
hier ist der code:
1 | #include <mega32.h> //Bibliothek ATMEGA32 einbinden
|
2 | #include <stdio.h> //Bibliothek Standard I/O einbinden
|
3 | #include <delay.h> //Bibliothek Delay einbinden
|
4 |
|
5 | int uart_putc(unsigned char c);
|
6 | void uart_puts (char *szBuf);
|
7 |
|
8 |
|
9 |
|
10 | #define UDRE 5 // UART Data Register Empty
|
11 |
|
12 |
|
13 | /*Unterprogramm SMS senden*/
|
14 | /*******************/
|
15 |
|
16 | void sende_SMS()
|
17 | {
|
18 | int c=0;
|
19 |
|
20 |
|
21 | if(c==0)
|
22 | {
|
23 | uart_puts("at+cpin=0000\r\n"); //AT-Befehl zur Pineingabe
|
24 | delay_ms(2000); //2 sec warten //2 Sekunden Warteschleife
|
25 | uart_puts("at+cmgf=1\r\n"); //SMS-Ein und Ausgabe erfolgt
|
26 | // im 7Bit Klartext
|
27 | delay_ms(2000);
|
28 | uart_puts("at+cmgs=+xxxxxxxxxxxxxxx\r\n"); //Zieladressnummer //nach Österreich A1
|
29 | delay_ms(2000);
|
30 | uart_puts("Hello World"); //SMS-Text
|
31 | delay_ms(2000);
|
32 | uart_putc(0x1A); //Hex Code fuer Strg+Z wird gesendet
|
33 | delay_ms(5000);
|
34 | c=1; // Überprüfung das SMS nur 1 mal gesendet wurde
|
35 | }
|
36 | return;
|
37 |
|
38 | }
|
39 | int uart_putc(unsigned char c)
|
40 | {
|
41 | while (!(UCSRA & (1<<UDRE))) /* warten bis Senden moeglich */
|
42 | {
|
43 | }
|
44 |
|
45 | UDR = c; /* sende Zeichen c */
|
46 | return 0;
|
47 | }
|
48 |
|
49 |
|
50 | void uart_puts (char *s)
|
51 | {
|
52 | while (*s)
|
53 | { /* so lange *s != '\0' also ungleich dem "String-Endezeichen" */
|
54 | uart_putc(*s);
|
55 | s++;
|
56 | }
|
57 | }
|
ich hoffe es kann mir jemand weiterhelfen.