Gast
#168698
Hallo miteinander :) Ich versuche meinen Atmega dazu zu überreden mit meinem Handy über den UART kommunizieren zu lassen. Ich kann mittels Hyperterm + einem MAX232 perfekt auf das Handy zugreifen, ich schicke also z.B.: atd+4399999, das handy piepst und meldet über UART zurück: NO CARRIER Nun würde ich das ganze mit einem Atmega8 versuchen. Dazu habe ich Pin2 (RXD) des Atmega8 mit TXD des Handies verbunden (über 1kOhm). Ebenso Pin3 (TXD) mit RXD des Handies. Bezüglich Code habe ich mir die UCR Register folgendermassen überlegt: * UCSRA = 0x02; * UCSRB = 0x08; * UCSRC = 0x06; * UBRRL = 25; im Detail: UCSRA - nur das Bit U2X ist gesetzt (Verdoppelung des Taktes) UCSRB - TXEN ist gesetzt (ich will vorerst nur mal was senden) UCSRC - 8N1 (selbe Einstellung wie in Windows Hyperterm) mit UBRRL = 25 und einem Takt von 4MHz (interner Osz.) sollte ich also auf die 19,2kHz kommen. Nur es wird wahrscheinlich genau nichts übertragen. Auch der PC ist noch angesteckt, ich sollte also sehen, ob da was kommt, aber das Handy piepst nicht einmal. Zum schreiben verwende ich die folgenden Funktionen aus dem Tutorial: int uart_putchar(char c) { if (c == '\n') uart_putchar('\r'); loop_until_bit_is_set(UCSRA, UDRE); UDR = c; return 0; } void uart_puts(const char *s) { char c; while ((c = *s++) != '\0') uart_putchar(c); } Weiss vielleicht jemand was ich denn hier falsch mache? Ich verzweifle nämlich bald einmal :( Danke für jegliche Hilfestellung :)