BTM-222 kleines Programm

Gast #1355493
Lesenswert?

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);
   }
}
Gast #1355710
Lesenswert?

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?
Gast #1355746
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren