nogen forklare mig dette loop ", mens (! (U1LSR &

A

Angy

Guest
Jeg arbejder på UART på LPC21xx.
Jeg kom acroos følgende betingelse ", mens (! (U1LSR & 0x20));"
Jeg er ikke i stand til at forstå ovennævnte sløjfe. Hjælp plz
fuldstændige kode er
# define CR 0x0D
# include <LPC21xx.H>

void init_serial (void);
int putchar (int ch);
int getchar (void);unsigned char test;

int main (void)
(
VPBDIV = 0x02; / / Divide Pclk af to
init_serial ();

while (1)
(

putchar (getchar ()); / / Echo terminal
)
)

void init_serial (void) / * Initialize Serial Interface * /
(
PINSEL0 = 0x00050000; / * Enable RxD1 og TxD1 * /
U1LCR = 0x00000083; / * 8 bits, ingen paritet, 1 stop bit * /
U1DLL = 0x000000C2; / * 9600 Baud Rate @ 30MHz vPb Ur * /
U1LCR = 0x00000003; / * DLAB = 0 * /
)int putchar (int ch) / * Skriv karakter til Serial Port * /
(

if (ch == '\ n') (
while (! (U1LSR & 0x20));
U1THR = CR; / * output CR * /
)

while (! (U1LSR & 0x20));

return (U1THR = ch);
)int getchar (void) / * Læs karakter fra Serial Port * /
(

while (! (U1LSR & 0x01));

return (U1RBR);
)

 
Hvis BIT5 (00x00000) af U1LSR er nul, bliver kørsel i sløjfen.Samme som: while ((U1LSR & 0x20) == 0);

 

Welcome to EDABoard.com

Sponsor

Back
Top