hallo, ich habe ein Quellcode zusammengebastelt und wollte mal fragen, ob da eventuell ein Fehler drin steckt, da die serielle Verbindung zwischen Handy und uC nicht funktioniert. Die Verbindung zwischen PC und uC oder PC und Handy funktioniert. Hab ein Atmega8 und benutze ein Spannungsteiler als Pegelwandler... //included Header & defines //---------------------------------------------------------------------- #include <avr\io.h> #include <util/delay.h> #include <stdint.h> #include <inttypes.h> #include <stdio.h> #include <ctype.h> #include <stdlib.h> #define F_CPU 3686400L #define BAUD 9600L #define UBRR_BAUD ((F_CPU/(16L*BAUD))-1) #define CR "\r\n" //---------------------------------------------------------------------- //Prototyping void uart_init(void); void uart_puts (const char *s); static inline int uart_putc (const uint8_t c); static inline uint8_t uart_getc_wait(); static inline int uart_getc_nowait(); //---------------------------------------------------------------------- //MAIN int main(void) { uint8_t buffer; uart_init(); while (1) { if ((uart_getc_wait())=='1') { uart_puts ("ATD017621163186" CR); } else; } return 0; } //---------------------------------------------------------------------- Functions void uart_init(void) { // Baudrate einstellen UBRRH = (uint8_t) (UBRR_BAUD>>8); UBRRL = (uint8_t) (UBRR_BAUD & 0x0ff); // Aktivieren von receiver und transmitter UCSRB = (1<<RXEN)|(1<<TXEN); // Datenformats: 8 Datenbits, 1 Stoppbit UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //flushen do { UDR; } while (UCSRA & (1 << RXC)); } void uart_puts (const char *s) // String übertragen. { do { uart_putc (*s); } while (*s++); } static inline int uart_putc (const uint8_t c) { while (!(UCSRA & (1 << UDRE))); UDR = c; return 1; } static inline uint8_t uart_getc_wait() { while (!(UCSRA & (1 << RXC))); return UDR; } static inline int uart_getc_nowait() { return (UCSRA & (1 << RXC)) ? (int) UDR : -1; }
hallo allerseits, hat denn keiner ne Ahnung wo mein Fehler liegt und warum das Handy nicht mit dem Atmega kommunizieren will???
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.