ATMega128 posielanie dat cez usart (HELP)

Programovacie jazyky, rady, poradňa...
DeFeAt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1128
Registrovaný: 09 aug 2006, 9:10
Bydlisko: Presov
Kontaktovať používateľa:

ATMega128 posielanie dat cez usart (HELP)

Príspevok od používateľa DeFeAt »

ahojte, potreboval by som pomoc s programom, rad by som vysielal data cez usart0 cez bluetooth do mobilu (notebooku) aby som si vedel zobrazovat hodnoty z procesora, nakolko pri odladovani mi to velmi pomoze (bez sa to snad ani neda spravit)
pouzivam v programe usart1 a usart0, cez usart1 prijimam data a riadim procesor, usart0 som inicializoval velmi podobnym sposobom ako usart1, vid kod nizsie, v nekonecnej slucke programu som nechal posielat testovacie cislo, v tomto pripade 9 a rad by som si ho zobrazil, robim to tak, ze sa pripojim s mobilom na ten bluetooth a zapnem terminal, no bohuzial mi nic nezobrazuje
viete mi niekto poradit plz?

tu su kody, inicializacia:

Kód: Vybrať všetko

    void usart_transmit(signed char data)
{
    while ( !( UCSR1A & (1<<UDRE)) );
    UDR1 = data;
}

//inicializacia USARTU1
void usart_inicialization(){
    UBRR1H = 0x00;
    UBRR1L = F_CPU/16/BAUD-1;
    UCSR1B = ((1<<RXEN)|(1<<TXEN));
}

//inicializacia USARTU0
void usart_inicialization0(){
    UBRR0H = 0x00;
    UBRR0L = F_CPU/16/BAUD-1;
    UCSR0B = ((1<<RXEN)|(1<<TXEN));

}

void usart_transmit0(signed char data)
{
    while ( !( UCSR0A & (1<<UDRE)) );
    UDR0 = data;
}
a tu je cast hlavnej slucky:

Kód: Vybrať všetko

This is main, where i call inicializations and transmitting:

//main funkcia, vykonavanie programu
int main(void)
{       
    Inicializacia();                //inicializacia nastaveni
    usart_inicialization();         //inicializacia usartu
    InicializaciaADC();             //inicializacia ADC

    usart_inicialization0();

    M4=0;                           //vynulujem pwmku vsetkych motorov
    M3=0;
    M2=0;
    M1=0;

    while(1)                        //nekonecna slucka
    {
        x = usart_receive();        //prijem x-ovej suradnice

        y = usart_receive();        //prijem y-ovej suradnice

        usart_transmit0(i);
(pripadne ak je tu niekto z PO alebo BA, kto ovlada tuto problematiku, bol by som velmi vdacny ak by mi vedel pomoct #termindiplomovkysablizi, samozrejme za nejaku odmenu)
jorg22
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1087
Registrovaný: 12 aug 2006, 20:39
Kontaktovať používateľa:

Re: ATMega128 posielanie dat cez usart (HELP)

Príspevok od používateľa jorg22 »

Vytvaral si si vlastne zapojenie alebo mas kupenu nejaku hotovu dosku kde je uz zapojeny bluetooth modul?
Ak mas kupeny nejaky hotovy plosak hodil by sa odkaz na konkretny model.

Inac pozeral si si parametre bluetooth modulu? Mas ho urcite zapojeny na USART0?
Pozri si alebo sem hod jeho parametre aj s informaciami o tom ako ma byt nastaveny USART prenos.
Myslim si ze by si mal hlavne skontrlovat a nastavit aj register UCSR0C
- synchronnu/asynchronnu komunikaciu
- stop bit
- velkost znaku v bitoch

V registri UBRR0L nastavujes baud rate, skontroluj si s akym baud rate dokaze pracovat bluetooth modul.
DeFeAt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1128
Registrovaný: 09 aug 2006, 9:10
Bydlisko: Presov
Kontaktovať používateľa:

Re: ATMega128 posielanie dat cez usart (HELP)

Príspevok od používateľa DeFeAt »

mam vlastnu dosku, na nej by problem nemal byt
je to klasika hc-06, samotny modul je dobry a ano, mam ho urcite zapojeny do USART0
co sa nastaveni tyka, tak som vychadzal z nastaveni pre USART1, nakolko ten je funkcny, no cez neho iba prijimam data, pre odosielanie mam naschval dalsi modul
baud rate mam nastaveny spravne, v programe aj samotny modul mam nastaveny na 38400 Bd, cize ten register UCSR0B by mal byt tiez nastaveny spravne

idem pozriet ten UCSR0C register

// s tym registrom nerobim nic, nikde ho nenastavujem, myslis ze tam bude problem?
jorg22
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1087
Registrovaný: 12 aug 2006, 20:39
Kontaktovať používateľa:

Re: ATMega128 posielanie dat cez usart (HELP)

Príspevok od používateľa jorg22 »

To je iba moj typ. Ten bluetooth modul musi mat presne definovany sposob komunikacie a ak ho nedodrzis tak by to nemalo fungovat bud vobec alebo to bude fungovat nespravne.

Osobne som s atmega128 nerobil ale HC-06 som si spojazdnoval davnejsie pre PIC16F84A.

Vzchadzal som z tychto informacii:
https://exploreembedded.com/wiki/UART_P ... _Atmega128

tak si ich skus pozriet ci ti to nepomoze. Mas tam celkom prehladne popisane potrebne registre.
Napísať odpoveď