You are previewing Arduino Internals.

Arduino Internals

Cover of Arduino Internals by Dale Wheat Published by Apress
  1. Title
  2. Dedication
  3. Contents at a Glance
  4. Contents
  5. About the Author
  6. About the Technical Reviewers
  7. Acknowledgments
  8. Preface
    1. Intended Audience
    2. What This Book Isn't
    3. Chapter Overview
    4. Summary
  9. Chapter 1: Hardware
    1. What Is an Arduino?
    2. The Arduino Uno
    3. The Arduino Mega 2560
    4. Previous Hardware
    5. Who Makes Arduinos?
    6. Build Your Own
    7. Summary
  10. Chapter 2: Software
    1. Hosts and Targets
    2. Step by Step
    3. Semiautomatic
    4. Going Further
    5. Summary
  11. Chapter 3: Atmel AVR
    1. Origins
    2. AVR Device Families
    3. When in Doubt: Product Datasheets
    4. Device Packaging
    5. Pin Descriptions
    6. AVR Core
    7. Internal Peripherals
    8. Summary
  12. Chapter 4: Supporting Hardware
    1. Schematic Diagrams
    2. Getting Power to the Board
    3. Serial Interface
    4. The Processor
    5. Room for Expansion
    6. The Mechanical Form Factor
    7. Universal Serial Bus (USB): Signals Plus Power
    8. Summary
  13. Chapter 5: Arduino Software
    1. Open Source Software
    2. Multiplatform Support
    3. The Arduino Heritage
    4. Installing the Software
    5. The Process, or “How to Arduino”
    6. A Tour of the User Interface
    7. Summary
  14. Chapter 6: Optimizations
    1. How Will You Know It Worked?
    2. Shrink Blink
    3. Saving Space with Simple Serial Communication
    4. Saving SRAM
    5. Low Power or High Speed?
    6. Electronic Measurements
    7. Summary
  15. Chapter 7: Hardware Plus Software
    1. Available Peripherals
    2. Summary
  16. Chapter 8: Example Projects
    1. Beyond the Blinking LED: Starting Simply
    2. Other Uses for a Blinking LED
    3. A Lot of Blinking LEDs
    4. A Digital Clock
    5. Summary
  17. Chapter 9: Project Management
    1. Documentation
    2. Teamwork and Collaborative Development
    3. Licensing Your Work
    4. Summary
  18. Chapter 10: Hardware Design
    1. Learning About Hardware
    2. Infrared Proximity Sensor
    3. Your Own Custom Arduino
    4. Design Software
    5. Summary
  19. Chapter 11: Software Design
    1. Advanced Topics Within Arduino
    2. And Without Arduino
    3. Summary
  20. Chapter 12: Networking
    1. Point-to-Point Networking
    2. MIDI: Musical Instrument Digital Interface
    3. The Internet
    4. Summary
  21. Chapter 13: More Example Projects
    1. An Autonomous Robot
    2. Power Supply
    3. Motion Control
    4. Sensors
    5. Control Systems
    6. Example Robot Projects
    7. Summary
  22. Index
O'Reilly logo

Saving SRAM

Even more precious than the scarce program memory in the Arduino is the amount of available SRAM. Recall from Chapter 3 that the ATmega328 has a mere 2,048 bytes of SRAM. That's not megabytes or gigabytes. The ATmega2560 has 8,192 bytes of SRAM—more, but only when compared with the little one.

SRAM is mostly thought of as being used for temporary data storage, such as variables and the like. SRAM is also used for the system stack, the place where return addresses are stored during subroutine calls and interrupts. The stack is also used in interrupt handlers to preserve the contents of the registers needed by the handler itself, so that no registers are harmed in the handling of this interrupt.

Like any precious commodity, SRAM is ...

The best content for your career. Discover unlimited learning on demand for around $1/day.