- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 5 von 5

Thema: BTM222 <-UART-> ATmega32 Problem

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von robo_tom_24
    Registriert seit
    04.02.2012
    Ort
    Burgenland, Österreich
    Beiträge
    485

    BTM222 <-UART-> ATmega32 Problem

    Hallo
    Ich hab jetzt mein BCA8-BTM mit BTM222 Modul endlich bekommen, nur schaff ich es nicht eine Verbindung zwischen dem BT Modul und dem AVR aufzubauen. Zwischen BTM222 und USB-BT Adapter am PC schaff ich es, erkenntlich am helleren Leuchten einer LED.

    Der Code:
    Code:
    #define BAUD 19200      // Baudrate
    #define F_CPU 8000000 
    
    // Berechnungen
    #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)   // clever runden
    #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))     // Reale Baudrate
    #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD)		// Fehler in Promille, 1000 = kein Fehler.
     
    #if ((BAUD_ERROR<990) || (BAUD_ERROR>1010))
      #error Systematischer Fehler der Baudrate groesser 1% und damit zu hoch! 
    #endif 
    
    
    
    //-------------- INCLUDES
    #include <avr/io.h>  
    #include <avr/interrupt.h>
    #include <util/delay.h>
    
    
    
    void USART_Init( void )
    {
    	/* Set baud rate */
    	UBRR0H = UBRR_VAL >> 8;
    	UBRR0L = UBRR_VAL & 0xFF;
      
    	/* Enable receiver and transmitter */
    	UCSR0B = (1<<RXEN0)|(1<<TXEN0);
      
    	/* Set frame format: 8data, 1stop bit */
    	//UCSRC = (1<<URSEL)|(3<<UCSZ0);
    	UCSR0C |= (1<<UCSZ00) | (1<<UCSZ01);		// 1 Stopp Bit
    	UCSR0C &= ~(1<<UMSEL00)&(1<<UMSEL01);		
    }
    
    void USART_Transmit( unsigned char data )
    {
    	/* Wait for empty transmit buffer */
    	while ( !( UCSR0A & (1<<UDRE0)) );
    	
    
    	/* Put data into buffer, sends the data */
    	UDR0 = data;
    }
    
    unsigned char USART_Receive( void )
    {
    	/* Wait for data to be received */
    	while ( !(UCSR0A & (1<<RXC0)) );
    	
    	/* Get and return received data from buffer */
    	return UDR0;
    }
    
    
    int main(void)
    {	
    	DDRD |= 1<<PIND0;
    	PORTD |= 1<<PIND0;
    
    	USART_Init();			// USART einstellen
    	
    	_delay_ms(250);			
    	PORTD &= ~(1<<PIND0);	//LED aus
    	
    	USART_Transmit('O');
    	USART_Transmit('N');
    
    	_delay_ms(1000);
    	PORTD |= 1<<PIND0;		//LED ein
    	
    	while(1)
    	{
    		
    		USART_Transmit('x');
    		
    	}
    
    }//end main
    Hardware:
    -) ATmega328P
    -) BTM222
    -) Belkin USB-BT-Adapter

    Kann es sein dass ich "zu schnell" Zeichen versende? Oder gibt es für das Modul eine Art Initialisierung (AT Befehl senden o.ä.)?
    Geändert von robo_tom_24 (18.05.2012 um 23:03 Uhr) Grund: Hardware vergessen

Ähnliche Themen

  1. RP6 - Uart Adapter für btm222
    Von AsuroPhilip im Forum Robby RP6
    Antworten: 52
    Letzter Beitrag: 14.07.2011, 18:37
  2. ATMEGA32+Minesweeper+BTM222
    Von marcel_M im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 07.03.2011, 18:26
  3. ATMega32 UART problem --> Problem gelöst
    Von ChristophB im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 12.03.2010, 19:45
  4. ATmega32 Problem UART Reihenfolge Register
    Von vajk im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 20.09.2009, 18:54
  5. Problem mit BTM222 und RS232 und ATMEGA128
    Von bpoettker im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 11.11.2008, 23:39

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen