logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Attiny2313][C] rs232 problem z komunikacja

dan50 27 Lut 2011 17:15 1705 6
REKLAMA
  • #1 9212171
    dan50
    Poziom 12  
    Mam problem z komunikacją Attiny 2313 -> Rs232 -> PC. Gdy wysyłam znak poprzez uC to odbieram całkowicie co innego (FV a wysyłałem Adas), a dodatkowo jak zmieniłem uC to otrzymałem LH. Kod jest z noty katalogowej tego uC:

    
    #include <avr/io.h>
    #include <avr/interrupt.h>  
    
    #define RS_BAUD 9600
    #define RS_UBRR F_CPU / 16 / RS_BAUD - 1
    
    void USART_init(unsigned int bd)
    {
    UBRRH = (unsigned char) (bd>>8); 
    UBRRL = (unsigned char) bd;
    UCSRB = (1<<RXEN)|(1<<TXEN); 
    UCSRC = (1<<USBS)|(3<<UCSZ0); 
    }
    
    void USART_tran (unsigned char data) //wysyłanie
    {
    while (!(UCSRA & (1<<UDRE)));
    UDR = data;
    }
    
    unsigned char USART_rec (void) // odebranie znaku
    {
    while (!(UCSRA & (1<<RXC)));
    return UDR;
    }
     
    void USART_date(const char *s )
    {
    	while (*s) USART_tran(*s++);
    }
    
    int main(void)
    {
    	UART_init(RS_UBRR);
    	uart_date("Adas");
    	while(1)
    	{	}
    }
    


    Próbowałem także kodu z http://mikrokontroler.info/usart-w-mikrokontrolerach-avr/
    oczywiście po lekkich modyfikacjach.
    Nie mam pojęcia co jest nie tak. Połączenie przez maxa jest poprawne, sprawdzałem to tak że jak sygnał wyjściowy z maxa szedł do uC to podałem go na wejście do maxa i na komputerze dobrze wszystko wyświetlało.
  • REKLAMA
  • REKLAMA
  • #3 9213008
    dan50
    Poziom 12  
    kwarc 4mega prędkość taka sama jak w programie, bitu parzystości nie ma, 8 bitów danych i 1 bit stopu. Ustawienia fusbitów:
    [Attiny2313][C] rs232 problem z komunikacja
  • REKLAMA
  • #5 9213058
    dan50
    Poziom 12  
    Zmieniłem i nic, dalej to samo.

    W innym programie:
    [Attiny2313][C] rs232 problem z komunikacja
  • REKLAMA
  • #6 9220333
    Fredy
    Poziom 27  
    Nie wiem czy dobrze widzę ale chyba programujesz bit podziału przez 8. Zatem masz tak naprawde 500KHz.
    Odznacz go.
  • #7 9221271
    dan50
    Poziom 12  
    Jednak to co napisał Karol966:

    Karol966 napisał:
    No to z tego co tu widzę (polecam burn-o-mat do fusebitów) masz kwarc 8MHz a rzeczywisty 4MHz.


    jest rozwiązaniem na mój problem. Wcześniej jak zmieniłem ustawienia nie zapisałem tego i dlatego później napisałem że nic to nie dało. Sorki za błąd.

    Uważam problem za rozwiązany.
REKLAMA