Explore ATtiny Microcontrollers using C and Assembly Language
AVR Architecture and Programming
Warwick A. Smith
Cite this publication as
Warwick A. Smith, Explore ATtiny Microcontrollers using C and Assembly Language (29.04.2024), Elektor, Aachen, ISBN: 9873895764806
180
accesses
accesses
Descripción / Abstract
Índice
- BEGINN
- Introduction
- Broad Overview of this Book
- About the Targeted AVR Microcontrollers
- Primary Programming Software
- Why Learn Assembly Language?
- The Many Reasons for Learning Assembly Language
- C Programming
- Intended Audience
- Prerequisites
- Microchip, Atmel, Microchip Studio and Atmel Studio
- Accompanying Resources
- Let’s Get Started
- Chapter 1 • Overview of ATtiny Microcontrollers
- 1.1 ATtiny Microcontrollers
- 1.2 Which ATtiny to Use
- 1.3 Comparison of ATtiny Devices
- 1.4 Summary
- Chapter 2 • Hardware and Software Setup
- 2.1 Install Microchip Studio
- 2.2 8-Pin ATtiny Microcontroller LED Circuit
- 2.3 A First Assembly Language Program
- 2.4 A First C Program
- 2.5 Summary
- Chapter 3 • Basics of Assembly Language
- 3.1 Mnemonics
- 3.2 AVR Instruction Set
- 3.3 Opcodes and Operands
- 3.4 Assembly Language Comments
- 3.5 LED Blink Program Operation
- 3.6 Using the Debugger and Simulator
- 3.7 Summary
- Chapter 4 • Binary Numbers and Memory
- 4.1 Bits and Bytes
- 4.2 Weighted Number Systems
- 4.3 Hexadecimal Numbers
- 4.4 Calculating Number Sizes
- 4.5 Numbers in Assembly Programs
- 4.6 Numbers in C Programs
- 4.6 Summary
- Chapter 5 • AVR Registers and Memory Map
- 5.1 AVR Registers
- 5.2 Using General Purpose Registers
- 5.3 AVR Memory Map
- 5.4 Accessing SRAM in Assembler Programs
- 5.5 Summary
- Chapter 6 • AVR Internal Architecture
- 6.1 Clock Pulses and Program Counter
- 6.2 Microcontroller Buses
- 6.3 Harvard and von Neumann Architectures
- 6.4 Fetching and Executing Instructions
- 6.5 Status Register
- 6.6 Stack and Stack Pointer
- 6.7 LED Blink Program Fully Explained
- 6.8 AVR Instruction Encoding
- 6.9 Addressing Modes
- 6.10 Summary
- Chapter 7 • Arithmetic and Logic Instructions
- 7.1 Positive and Negative Numbers
- 7.2 Addition
- 7.3 Subtraction
- 7.4 Logic Instructions
- 7.5 Other Arithmetic and Logic Instructions
- 7.6 Summary
- Chapter 8 • Programming AVR I/O Ports
- 8.1 Instructions for Accessing I/O Registers
- 8.2 I/O Ports
- 8.3 Summary
- Chapter 9 • Assembly Language Elements
- 9.1 Instructions and Labels
- 9.2 The Preprocessor and Include Files
- 9.3 Assembler Directives
- 9.4 Other Assembly Language Elements
- 9.5 Further Reading
- 9.6 Summary
- Chapter 10 • AVR Timing, Timers and Interrupts
- 10.1 Instruction Timing
- 10.2 Assembly Language Time Delay
- 10.3 Calling an Assembly Subroutine from C Code
- 10.4 Polled Timer Delay
- 10.5 Timer Interrupt Delay
- 10.6 Summary
- Chapter 11 • The AVR Instruction Set
- 11.1 AVR Instruction Set Overview and Categories
- 11.2 A Guided Tour through the ATtiny AVR Instruction Set
- 11.3 Entire AVR Instruction Set
- Chapter 12 • Software Tools and Settings
- 12.1 AVR Assembler Programs
- 12.2 The GNU C Toolchain
- 12.3 Where to from Here?
- Appendix A • External Programmer Setup
- A.1 Hobby USB Programmer Capabilities
- A.2 Overview of External Programmer Setup
- A.3 External Programmer Setup
- Appendix B • Alternate Circuits and Programs
- B.1 8-Pin PDIP ATtiny13/25/45/85
- B.2 14-Pin PDIP ATtiny24/44/84
- B.3 20-Pin PDIP ATtiny26/261/461/861 and ATtiny2313/4313
- B.4 28-Pin PDIP ATtiny48/88
- B.5 Alternate Programs
- Appendix C • The ASCII Table
- C.1 Printable Characters
- C.2 ASCII Table
- Index