Question: Question 2: Memory-Mapped I/O and GPIO Ports You are given the following code that accesses GPIO Port A. Explain the port macro definition by explaining


Question 2: Memory-Mapped I/O and GPIO Ports You are given the following code that accesses GPIO Port A. Explain the port macro definition by explaining what each part of the definition means or does, i.e., each keyword and symbol used a. #define PA data PA; (*((volatile unsigned long *) Ox400043FC)) b. Complete the wait3() function below so that it is equivalent to wait() and wait20 #define PA (*((volatile unsigned long *)0x400043FC)) void wait(void) while( (PA&0x20) 0) void wait2 (void) while( ( (*((volatile unsigned long *)0x400043FC) ) & 0x20)0); Name lab Section: void wait3(void) volatile unsigned long *pt; pt = while( c. Consider the following C code that uses a data structure to access memory-mapped GPIO ports. strict tlepor / defines wl.ich bi-s are active vo-atil 1: n signac ong v ati In 1:nsi anac Icrg "adz; *odr; }; // pc inter te . reg // p nte.. t e're ti cr .e // the TH4C123 has 8 bits on PORT3 PortB.tmask JxEF; PortB.addr (voiatiie unsigned long *) (0x430033FC); PortB.adr = (volRT:l: 'Jnaigred ng *) (Cx400.) 40 0 ) ; Port.mask -x3F; // the -M4C.. 23 as 6 s *n PORTF: 20rLE.ddr (vola-leunsiced *) (Ox40024100); = -ong // spe:ify PortF. as irputs // (*-'crLB. addr) (+pOL L2.addz ; copyrrolliPorLE.c101. 1 B = Given the above code, write a line of code to specify Port B pins as outputs using its direction register Write a line of code in this function to write the 8-bit data to a port's data register, where the port struct variable is passed by reference in a function call (e.g., WriteData(&PortB,0xC4) which would write the value 0xC4 to the Port B data register) 4 Question 2: Memory-Mapped I/O and GPIO Ports You are given the following code that accesses GPIO Port A. Explain the port macro definition by explaining what each part of the definition means or does, i.e., each keyword and symbol used a. #define PA data PA; (*((volatile unsigned long *) Ox400043FC)) b. Complete the wait3() function below so that it is equivalent to wait() and wait20 #define PA (*((volatile unsigned long *)0x400043FC)) void wait(void) while( (PA&0x20) 0) void wait2 (void) while( ( (*((volatile unsigned long *)0x400043FC) ) & 0x20)0); Name lab Section: void wait3(void) volatile unsigned long *pt; pt = while( c. Consider the following C code that uses a data structure to access memory-mapped GPIO ports. strict tlepor / defines wl.ich bi-s are active vo-atil 1: n signac ong v ati In 1:nsi anac Icrg "adz; *odr; }; // pc inter te . reg // p nte.. t e're ti cr .e // the TH4C123 has 8 bits on PORT3 PortB.tmask JxEF; PortB.addr (voiatiie unsigned long *) (0x430033FC); PortB.adr = (volRT:l: 'Jnaigred ng *) (Cx400.) 40 0 ) ; Port.mask -x3F; // the -M4C.. 23 as 6 s *n PORTF: 20rLE.ddr (vola-leunsiced *) (Ox40024100); = -ong // spe:ify PortF. as irputs // (*-'crLB. addr) (+pOL L2.addz ; copyrrolliPorLE.c101. 1 B = Given the above code, write a line of code to specify Port B pins as outputs using its direction register Write a line of code in this function to write the 8-bit data to a port's data register, where the port struct variable is passed by reference in a function call (e.g., WriteData(&PortB,0xC4) which would write the value 0xC4 to the Port B data register) 4
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
