Hallo Hab nun meinen Atmega (2560) mit dem BTM222 Modul verbunden (UART1) und ein kleines Programm erstellt. Die Aufgabe wäre lediglich die gesendeten Eingaben wieder zurückzusenden. Doch irgendwie funktioniert das so nicht... Könnt ihr mir sagen wo der Fehler liegt? Freq = 16MHz BTM222 Baud = 115200 #include <avr/io.h> #include <inttypes.h> void USARTInit(void) { unsigned int a= 16; UBRR1H = a<<8; UBRR1L = a; UCSR1A = 0x00; UCSR1B = (1<<RXEN1) | (1<<TXEN1); UCSR1C = (1<<UCSZ11) | (1<<UMSEL01); } char USARTReadChar() { while(!(UCSR1A & (1<<RXC1))) { } return UDR1; } void USARTWriteChar(char data) { while(!(UCSR1A & (1<<UDRE1))) { } UDR1=data; } int main(void) { char data; USARTInit(); while(1) { data=USARTReadChar(); USARTWriteChar(data); } }
Hast du den BTM bereits initialisiert? Wie baust du die verbindung auf? Wo willst du das gesendete byte empfangen? ich weiss nicht genau was du da aufgebaut hast... So kann dir vermutlich keiner helfen. Wie greifst du auf das Modul zu?
Mittlerweile klappts Also die Konfiguration: LaptopA-RS232-MAX232-BTM222 ---> Bluetoothmodul an LaptopB hat von Anfang an (Telnet) geklappt. Konfiguration AVR-Pegelwandler-BTM222 ---> Bluetoothmodul an LaptopB klappte nur eingeschränkt, das heißt, der AVR spuckte sporadisch irgendwelche Zeichen aus (im Telnet auf LaptopB). Der Fehler lag in der falschen Konfiguration von UBRRH und UBRRL. Hab nun alles in Binärform eingegeben um möglichst Fehler zu vermeiden und siehe da der AVR spricht mit mir :) Gruß Alexis
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.