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

[ATmega644][C] Problem USART i VNC1L

ePeter1234 11 Gru 2009 21:25 702 0
REKLAMA
  • #1 7376208
    ePeter1234
    Poziom 18  
    Witam!!!

    Podpiąłem sobie moduł VDIP2 z VNC1L. Steruje nim za pomocą USART'a. Przy uruchamianiu urządzenia mam standardowo ustawiony USART na 9600 8N1.

    Kod usart inicjalizacja:
    
    oid usart_init(void)
    {
    	UBRR0H = 0x00;
    	UBRR0L = 0x68; //9600
    	UCSR0A = 0x02;
    	UCSR0B = 0x18; //włączenie RX i TX
    	UCSR0C = 0x06; //transmisja asynchroniczna, 1bit stopu, brak parzystości, dane 8bit 
    }
    


    Tak skonfigurowany USART działa. Mogę robić z pendrivem co tylko chce. Niestety potrzebuję podnieść troszkę prędkość transmisji, przynajmniej do 38400. W tym celu po inicjalizacji USART'a na 9600 wysyłam do VNC1L następujący kod:

    
    ...
    usart_send(0x14);
    usart_send(0x20);
    usart_send(0x4E);
    usart_send(0xC0);
    usart_send(0x00);
    usart_send(0x0D);
    ...
    


    Procka konfiguruje następująca:


    
    void usart_init_fast(void)
    {
    	UBRR0H = 0x00;
    	UBRR0L = 0x19; //38400
    	UCSR0A = 0x02;
    	UCSR0B = 0x18; //włączenie RX i TX
    	UCSR0C = 0x06; //transmisja asynchroniczna, 1bit stopu, brak parzystości, dane 8bit 
    }
    


    Po takiej konfiguracji tracę łączność pomiędzy modułami. Nie wiem czy coś robię źle. Proszę o pomoc. W necie nie ma za dużo informacji na temat VNC1L.

    P.S. Mam kwarc 8MHz
  • REKLAMA
REKLAMA