Witam!
Jak powinna zachowywać się flaga RXC w tym uC? Według specyfikacji powinna wyzerować się, gdy nowe dane zostaną odczytane z rejestru UDR. W tym momencie głupieje
.
Program:
int main(void)
{ //sei();
UBRRL=0x33; // BaudRate
UCSRB =0x18; // RXEN TXEN
// UCSRB |=0x80;
while(1)
{
if (RXC)
{
znak = UDR;
znak++;
while(!UDRE);
UDR=znak;
}
}
}
Powyższy kod (tak sądzę) powinien działać w ten sposób, że układ ogólnie nic nie robi (poza sprawdzeniem flagi RXC), a w momencie nadejścia nowych danych odsyła znak o jeden numer wyższy...... Kicha.
Non stop coś wysyła (konkretnie "1", chyba że ja coś wyślę, wtedy rzeczywiście odbierze, inkrementuje i odeśle) tak jakby flaga RXC była cały czas "1" -> cały czas nowe dane? Żeby było zabawniej, gdy wykorzystuje przerwanie wszystko jest OK, sęk w tym, że w większym projekcie (to jest tylko test UART`a nie mogę wykorzystać tego przerwania):
Próbowałem zerować tą flagę softwearowo, czyścić bufor UART`a
while(!RXC)
{ dummy=UDR;
} (tu program się zapętla)
nie wiem co jeszcze można zrobić...
Pozdr.
Jak powinna zachowywać się flaga RXC w tym uC? Według specyfikacji powinna wyzerować się, gdy nowe dane zostaną odczytane z rejestru UDR. W tym momencie głupieje
Program:
int main(void)
{ //sei();
UBRRL=0x33; // BaudRate
UCSRB =0x18; // RXEN TXEN
// UCSRB |=0x80;
while(1)
{
if (RXC)
{
znak = UDR;
znak++;
while(!UDRE);
UDR=znak;
}
}
}
Powyższy kod (tak sądzę) powinien działać w ten sposób, że układ ogólnie nic nie robi (poza sprawdzeniem flagi RXC), a w momencie nadejścia nowych danych odsyła znak o jeden numer wyższy...... Kicha.
Non stop coś wysyła (konkretnie "1", chyba że ja coś wyślę, wtedy rzeczywiście odbierze, inkrementuje i odeśle) tak jakby flaga RXC była cały czas "1" -> cały czas nowe dane? Żeby było zabawniej, gdy wykorzystuje przerwanie wszystko jest OK, sęk w tym, że w większym projekcie (to jest tylko test UART`a nie mogę wykorzystać tego przerwania):
Próbowałem zerować tą flagę softwearowo, czyścić bufor UART`a
while(!RXC)
{ dummy=UDR;
} (tu program się zapętla)
nie wiem co jeszcze można zrobić...
Pozdr.