Skocz do zawartości
Mateusz

Bluetooth

Pomocna odpowiedź

Witam.

Proszę zerknijcie co zrobiłem nie tak 🙂 Bo mi nie najlepiej działa ten bluetooth.

Zielona dioda cały czas się świeci, Czerwona miga jak coś wysyłam. Ale nie mogę się z urządzeniem połączyć z kompa.

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <stdlib.h>	// for itoa() call
#include <stdio.h>	// for printf() call


#define SetBit(x,y)	x |= (1<<y)
#define ClrBit(x,y) x &= ~(1<<y)
#define NegBit(x,y) x ^= (1<<y)


volatile unsigned char bufor_RXD=0;
volatile int a=1;               

void send_string(char *string)
{
  char znak;
  while (0!=(znak=*(string++)))
  {
  while ( !( UCSRA & (1<<UDRE)) );
  UDR=znak;
  }

  while ( !( UCSRA & (1<<UDRE)) );
  UDR = 0b00001010;
} 


ISR (USART_RXC_vect)
{
	bufor_RXD = UDR;
a=1;
}


int main(void)
{

//ustawienia portów I/O
	DDRD  = 0b00000000;   	
	DDRA  = 0b11111111;   	


//1 - oznacza wyjście  0 - wejście
	PORTA = 0b00000000;
PORTA = 0b10011001;   // diowy. 0 - zapalona

//**************************************
//ustawienie USART
//**************************************

UCSRB = 0b00011000;
UCSRC = 0b00000110;
unsigned int baud=51;
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;	   		//prędkość transmisji 19200
SetBit(UCSRB,7);      	//włączenie przerwania od USART RX

sei();

char buf[10];
int num=3000;

 while(1)
 {    	

	if(a==1)
	{
		sprintf(buf,"%d %d\n ", num, num);
		a=1;
		send_string(buf);
	}

	_delay_ms(1000);
 }
}

Udostępnij ten post


Link to post
Share on other sites

Nie znam się na 'blutucie' ale układ z MOSFET'em N odwraca sygnał w fazie.

Udostępnij ten post


Link to post
Share on other sites

Odpuściłbym sobie takie patenty na połączeniach komunikacyjnych. Jeżeli koniecznie chcesz diody sygnalizujące transmisję to podłącz je sobie bezpośrednio do atmegi i zapalaj/gasiś je przy zapisie do rejestru UART i na przerwaniach UART.

Udostępnij ten post


Link to post
Share on other sites

Jeżeli nie jesteś w stanie uzyskać połączenia PC<->BT-x22 - to prawdopodobnie źle coś polutowałeś bo sam układ po podaniu napięcia zasilającego powinien być w stanie sparować się z komputerem(przeprowadzić transmisję też).

Jeżeli problem jest już z transmisją to zastanowiłbym się nad tymi diodami.

Wybacz ale kodu nie sprawdzę bo nigdy nie chciało mi się baudów liczyć, zawsze korzystałem z makr w setbaud.h.

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...