Kurczę ta linia powinna być zakomentowana w piku mkuart.h
Cytuj:
#ifndef MKUART_H_
#define MKUART_H_
#define UART_BAUD 9600 // tu definiujemy interesującą nas prędkość
#define __UBRR ((F_CPU+UART_BAUD*8UL) / (16UL*UART_BAUD)-1) // obliczamy UBRR dla U2X=0
// definicje na potrzeby RS485
// #define UART_DE_PORT PORTD <-------------------------- TA LINIA włącza RS485
#define UART_DE_DIR DDRD
#define UART_DE_BIT (1<<PD2)
A ty masz ją odkomentowaną ... i coś mi się wydaje, że w książce dokładnie nie przeczytałeś do czego jest ta linia ...
bo w inicjalizacji w pliku mkuart.c masz:
Cytuj:
void USART_Init( uint16_t baud ) {
/* Ustawienie prędkości */
UBRRH = (uint8_t)(baud>>8);
UBRRL = (uint8_t)baud;
/* Załączenie nadajnika I odbiornika */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Ustawienie format ramki: 8bitów danych, 1 bit stopu */
UCSRC = (1<<URSEL)|(3<<UCSZ0);
// jeśli korzystamy z interefejsu RS485
#ifdef UART_DE_PORT
// inicjalizujemy linię sterującą nadajnikiem
UART_DE_DIR |= UART_DE_BIT;
UART_DE_ODBIERANIE;
#endif
// jeśli korzystamy z interefejsu RS485
#ifdef UART_DE_PORT
// jeśli korzystamy z interefejsu RS485 załączamy dodatkowe przerwanie TXCIE
UCSRB |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<TXCIE);
#else
// jeśli nie korzystamy z interefejsu RS485
UCSRB |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
#endif
}
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]