Witam
Mam prosty układzik max232 + attiny2313 i działa ładnie ale jest takie dziwne zachowanie przy rozłączaniu połączenia ze strony PC, otóż uC odbiera wartość 0. Dlaczego ? Nawet wykorzystanie np. bray terminal, klikam Connect i Disconnect. Po kliknięciu Disconnect uC odbiera właśnie 0.
Ustawienia USART:
W main() jest tylko wywołanie USART_Init(...) i w pętli nieskończonej odebranie danych funkcją USART_Receive() i wypisanie odebranego bajtu na wyświetlaczu podpiętego do uC.
Całość działa na zewnętrznym kwarcu 11.0592 i baud rate 9600.
Mam prosty układzik max232 + attiny2313 i działa ładnie ale jest takie dziwne zachowanie przy rozłączaniu połączenia ze strony PC, otóż uC odbiera wartość 0. Dlaczego ? Nawet wykorzystanie np. bray terminal, klikam Connect i Disconnect. Po kliknięciu Disconnect uC odbiera właśnie 0.
Ustawienia USART:
void USART_Init( unsigned int baud )
{
/* Set baud rate */
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;
/* Enable receiver */
UCSRB = (1<<RXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<USBS)|(3<<UCSZ0)|(0<<UMSEL);
set_sleep_mode(SLEEP_MODE_IDLE);
}
unsigned char USART_Receive(void)
{
while ( !(UCSRA & (1 << RXC)) )
;
return UDR;
}
W main() jest tylko wywołanie USART_Init(...) i w pętli nieskończonej odebranie danych funkcją USART_Receive() i wypisanie odebranego bajtu na wyświetlaczu podpiętego do uC.
Całość działa na zewnętrznym kwarcu 11.0592 i baud rate 9600.