mình đang thực hiện làm việc với atmega128. viết uart trên nó (UART0) thì dữ liệu báo hiển thị sai. sửa nhiều mà vẫn không được. anh em giúp mình với
Code:
#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #include <string.h> void USART_Init (void); void USART_Trans(char phat); unsigned char a[]= "MTA"; char kytu; int main (void) { int i; USART_Init(); while (1) { for (i=0;i<=strlen(a);i++) { kytu = a[i]; USART_Trans(a[i]); } return 0; } } void USART_Trans(char phat) { while(bit_is_clear(UCSR0A,UDRE0)) {}; UDR0 = phat; _delay_ms(100); } void USART_Init(void) { DDRE = 0x00; PORTE = 0xff; UBRR0H = 0; UBRR0L = 51; UCSR0B = (1<<TXEN0)|(1<<TXCIE0); UCSR0C = (1<<UCSZ00)|(UCSZ01); }
Comment