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

Atmega162+UART+C# Uart wysyła krzaki

Master Dragon 12 Sty 2011 20:47 2167 3
REKLAMA
  • #1 8997089
    Master Dragon
    Poziom 12  
    Panowie mam problem napisałem program pod atmege162 w C# dodam że 16MHz kwarc vcc 3,3v. Oto kod

    
    #include "avr/io.h"
    #define F_CPU 16000000UL
    #define BAUD 115200
    #define MYUBRR (((F_CPU/(BAUD*16UL)))-1)
    
    void uart_init(unsigned int ubrr) {
    	UBRR0L = (unsigned char) ubrr;
    	UBRR0H = (unsigned char) (ubrr>>8);
    
    	UCSR0B = (1<<RXEN0)|(1<<TXEN0);
    
    	UCSR0C = (1<<URSEL0)|(1<<USBS0)|(1<<UCSZ00);
    }
    
    void uart_send(unsigned char data) {
    	while(!(UCSR0A & (1<<UDRE0)));
    	UDR0 = data;
    	while(!(UCSR0A & (1<<TXC0)));
    }
    
    unsigned char uart_read(void) {
    	while(!(UCSR0A & (1<<RXC0)));
    	return UDR0;
    }
    
    int main(void) {
    uart_init(MYUBRR);
    	for(;;) {
    		uart_send(0x33);
    	}
    
    }
    


    I ten oto kod zamiast wysyłać mi 0x33 na kompie odbieram 0xB7. I nie wiem co jest nie tak

    Fusy
    
    efuse = FB;
    hfuse = D9;
    lfuse = DF;
    
  • REKLAMA
  • REKLAMA
  • #3 9001732
    Master Dragon
    Poziom 12  
    Dzięki a czytał ktoś datasheet tam w przykładach do uart tak jest opisane to dla 8bitów
  • #4 9005284
    Krauser
    Poziom 26  
    W datashecie 2513K–AVR–07/09 Atmegi 162 jest taki kod:
    #define FOSC 1843200// Clock Speed
    #define BAUD 9600
    #define MYUBRR FOSC/16/BAUD-1
    void main( void )
    {
    ...
    USART_Init ( MYUBRR );
    ...
    }
    void USART_Init( unsigned int ubrr )
    {
    /* Set baud rate */
    UBRRH = (unsigned c?ar)(ubrr>>8);
    UBRRL = (unsigned c?ar)ubrr;
    /* Enable receiver ?nd transmitter */
    UCSRB = (1<<RXEN)|(1<<TX?N);
    /* Set frame format? 8data, 2stop bit */
    UCSRC = (1<<URSEL)|(1<<U?BS)|(3<<UCSZ0);
    }

    zwracam uwagę na (3<<UCSZ0);
REKLAMA