Panowie mam problem napisałem program pod atmege162 w C# dodam że 16MHz kwarc vcc 3,3v. Oto kod
I ten oto kod zamiast wysyłać mi 0x33 na kompie odbieram 0xB7. I nie wiem co jest nie tak
Fusy
#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;