Witam, mam taką funkcję (z książki Bryndzy):
Wywołuje ją:
I tu jest problem jak ją wywołam czeka na ten znak i nie robi nic innego, przez co cały program stoi. Chciałbym żeby czytał z portu tylko jak mu coś wyślę.
Słyszałem coś o sprzętowych przerwaniach do obsługi portu.. Byłbym wdzięczny za sugestie.
static void Uart0Gets(char *str) //Odbior znaku przez rs232 z terminalu
{
char c;
do
{
while(!(U0LSR & U0LSR_RDR)); //Czekaj na znak
c = U0RBR; //Odbierz znak
*str++ = c; //Zapisz znak do bufora
while(!(U0LSR & U0LSR_THRE)); //Czekaj na nadajnik
//U0THR = c; Nadaj zwrotnie znak
}
while(c != '\r');
*(str-1) = 0;
}Wywołuje ją:
Uart0Gets(buf);I tu jest problem jak ją wywołam czeka na ten znak i nie robi nic innego, przez co cały program stoi. Chciałbym żeby czytał z portu tylko jak mu coś wyślę.
Słyszałem coś o sprzętowych przerwaniach do obsługi portu.. Byłbym wdzięczny za sugestie.