Witam,
Chciałem skomunikować ATmege128 z komputerem PC. Korzystając z manuala do tego kontrolera uzyskałem funkcję inicjalizującą:
void USART_Init( unsigned int baud )
{
/* Set baud rate */
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<USBS)|(3<<UCSZ0);
}
wysyłąjącą dane:
void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;
}
i odbierającą:
unsigned char USART_Receive( void )
{
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) )
;
/* Get and return received data from buffer */
return UDR;
}
Przystąpiłem do kompilacji i się wykrzaczył kompilator (korzystam z avr studio 4).
Zgłąsza mi błąd nieznanej funkcji (undeclared, first use in this function) w stosunku do rejestrów UCSRA, UCSRB, UCSRC oraz do UDR.
No i teraz moje pytanie: co jest nie tak? Trzeba mu jakiś plik nagłówkowy dołączyć czy coś takiego??
Chciałem skomunikować ATmege128 z komputerem PC. Korzystając z manuala do tego kontrolera uzyskałem funkcję inicjalizującą:
void USART_Init( unsigned int baud )
{
/* Set baud rate */
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<USBS)|(3<<UCSZ0);
}
wysyłąjącą dane:
void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;
}
i odbierającą:
unsigned char USART_Receive( void )
{
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) )
;
/* Get and return received data from buffer */
return UDR;
}
Przystąpiłem do kompilacji i się wykrzaczył kompilator (korzystam z avr studio 4).
Zgłąsza mi błąd nieznanej funkcji (undeclared, first use in this function) w stosunku do rejestrów UCSRA, UCSRB, UCSRC oraz do UDR.
No i teraz moje pytanie: co jest nie tak? Trzeba mu jakiś plik nagłówkowy dołączyć czy coś takiego??
