5. I copied the following out of the Arduino programming guide. Finish filling in the table showing me how to replace the following function calls to pinMode and digitalWrite with simple C code and assembly code. Make sure you calculate the appropriate masks. PORTD maps to Arduino digital pins 0 to 7 DDRD The Port D Data Direction Register - read/write (IO Address 0x0A, Memory Address 0x002A) PORTD The Port D Data Register - read/write (10 Address 0x0B, Memory Address 0x002B) (library functions) C-Code (using & and (memory mapped IO) pinMode(4, OUTPUT); masks) (legacy IO assembly) asm volatile( "sbi 0x0A, 4 \n\t" ); //method 4, memory mapped io asm volatile ( "lds r24, 0x002A \n\t" "ori r24, 0x10 \n\t "sts 0x002A, r24 \n\t" digitalWrite(4, HIGH); PORTD PORTD | 0x10 digitalWrite(4, LOW); asm volatile( "cbi 0x0B, 4 \n\t" ); //method 4, memory mapped io asm volatile( lds r24, 0x002B \n\t" "andi r24, 0xEF \n\t" *sts 0x0028, r24 \n\t ";

Systems Architecture
7th Edition
ISBN:9781305080195
Author:Stephen D. Burd
Publisher:Stephen D. Burd
Chapter6: System Integration And Performance
Section: Chapter Questions
Problem 4RQ
icon
Related questions
Question
5. I copied the following out of the Arduino programming guide. Finish filling in the table showing me how to
replace the following function calls to pinMode and digitalWrite with simple C code and assembly code.
Make sure you calculate the appropriate masks.
PORTD maps to Arduino digital pins 0 to 7
DDRD The Port D Data Direction Register - read/write (IO Address 0x0A, Memory Address 0x002A)
PORTD The Port D Data Register - read/write (10 Address 0x0B, Memory Address 0x002B)
(library functions) C-Code (using & and
(memory mapped IO)
pinMode(4,
OUTPUT);
masks)
(legacy IO assembly)
asm volatile(
"sbi 0x0A, 4 \n\t"
);
//method 4, memory mapped io
asm volatile (
"lds r24, 0x002A \n\t"
"ori r24, 0x10 \n\t
"sts 0x002A, r24 \n\t"
digitalWrite(4,
HIGH);
PORTD PORTD | 0x10
digitalWrite(4,
LOW);
asm volatile(
"cbi 0x0B, 4 \n\t"
);
//method 4, memory mapped io
asm volatile(
lds r24, 0x002B \n\t"
"andi r24, 0xEF \n\t"
*sts 0x0028, r24 \n\t
";
Transcribed Image Text:5. I copied the following out of the Arduino programming guide. Finish filling in the table showing me how to replace the following function calls to pinMode and digitalWrite with simple C code and assembly code. Make sure you calculate the appropriate masks. PORTD maps to Arduino digital pins 0 to 7 DDRD The Port D Data Direction Register - read/write (IO Address 0x0A, Memory Address 0x002A) PORTD The Port D Data Register - read/write (10 Address 0x0B, Memory Address 0x002B) (library functions) C-Code (using & and (memory mapped IO) pinMode(4, OUTPUT); masks) (legacy IO assembly) asm volatile( "sbi 0x0A, 4 \n\t" ); //method 4, memory mapped io asm volatile ( "lds r24, 0x002A \n\t" "ori r24, 0x10 \n\t "sts 0x002A, r24 \n\t" digitalWrite(4, HIGH); PORTD PORTD | 0x10 digitalWrite(4, LOW); asm volatile( "cbi 0x0B, 4 \n\t" ); //method 4, memory mapped io asm volatile( lds r24, 0x002B \n\t" "andi r24, 0xEF \n\t" *sts 0x0028, r24 \n\t ";
AI-Generated Solution
AI-generated content may present inaccurate or offensive content that does not represent bartleby’s views.
steps

Unlock instant AI solutions

Tap the button
to generate a solution

Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Systems Architecture
Systems Architecture
Computer Science
ISBN:
9781305080195
Author:
Stephen D. Burd
Publisher:
Cengage Learning