Skocz do zawartości

BTM222 i android.


Bieluus

Pomocna odpowiedź

to ja się jeszcze zapytam, ponieważ nie mam teraz "pod ręką" programatora, a znalazłem przy okazji czytania wątku błąd u siebie(który mógł powodować, że nie działa):

czy tą funkcję USART_Recive można zastąpić przerwaniem:

volatile uint8_t byte=0;
ISR(USART_RX_vect)
{
byte = UDR0;
}

jeśli porównujemy w pętli zmienną byte oczywiście?

(piszę na atMega168)

Autora prosiłbym o zamieszczenie kodu programu, który mu działa, to może moje zacznie działać 🙂

Link do komentarza
Share on other sites

też bym prosił o poprawiony kod. Ja prędkość mam odpowiednią, zmniejszyłem do 4800 dla pewności, błąd wynosi 0.2%, więc raczej nie tu tkwi błąd. Gdy wysyłam znak '1' z telefonu to wyświetla mi się na terminalu ta cyfra, więc problem tkwi raczej w programie na mikrokontroler 😖

Link do komentarza
Share on other sites

Wybaczcie że odświerzam ale i nie wrzuciłem kodu i mam pewien problem onieważ z powodów studiów i pracy zostawiłem moduł razem z procesorem na polce i teraz do niego sięgnąłem - no i nie działa 🙂 Oto mój kod:

#include <avr/io.h>
#include <util/delay.h>               
#define F_CPU 12000000L
#define BAUD 57600
#define MYUBRR F_CPU/16/BAUD-1

void USART_Init( unsigned int ubrr )
{
/* Set baud rate */
UBRRH = (unsigned char)(ubrr>>8);

UBRRL = (unsigned char)ubrr;

/* Enable receiver and transmitter */

UCSRB = (1<<RXEN)|(1<<TXEN);

/* Set frame format: 8data, 1stop bit */

UCSRC = (1<<URSEL)|(0<<USBS)|(3<<UCSZ0);
}


unsigned char USART_Receive( void )
{
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) )
;
/* Get and return received data from buffer */
return UDR;
}



int main(){

unsigned char recive;
DDRB=0x01;
DDRD=0x02;
USART_Init(MYUBRR);



while(1){
   recive = USART_Receive();

   if(recive == '1'){
       PORTB&=~0x00;
       _delay_ms(500);
   }else{
   PORTB|=0x01;
   }

}

return 0;
}

Jedyne co było zmienione to poprawione błędy które były wczesniej, zmieniona pętla głowna i tyle. Ostatnio mi to działało cudownie, nawet sterowałem autkiem rc z telefonu. Teraz niestety nic nie działa. Czy widać jakieś kary godne błędy ?? Bardzo proszę o pomoc.

Link do komentarza
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!

Anonim
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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.