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

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

Títulos relacionados

    Otros títulos del mismo autor