Witam, mam problem z wyświetlaniem znaków wysłanych z terminala do ATmegi8 i następnym wyświetleniu ich na wyświetlaczu LCD.
Postępowałem wg BlueBooka, następnie dodałem flagę RxFlag w przerwaniu USART_RXC_vect, gdzie flaga przyjmuje wartość 1 jeśli zostanie zgłoszone przerwanie.
Następnie flaga jest zerowana poprzez wywołanie funkcji UartReceive(), która jednocześnie zwraca wartość rejestru UDR.
Kod wygląda następująco:
Kod:
int main(void)
{
LcdInit();
UartInit();
CLR();
while(1)
{
if(RxFlag) Lcd1Z(UartReceive());
}
}
A i Lcd1Z() to funkcja wysyłająca 1 znak do LCD, nie czeka ona na znak NULL.
Jeśli wysyłam jakieś znaki z terminala, to zamiast nich na LCD uzyskuję jakieś krzaczki:
[img]file:///C:/Users/home/Desktop/httpforum.atnel.pltopic16438.html.jpg[/img]
Pomóżcie, bo nie wiem w czym problem.