Preface Preface
This book contains all of the information you will need to learn about the ATmega328P microcontroller as well as about embedded system design. First, microcontrollers and embedded systems will be described and explained at a zoomed-out level. Then, each of the peripheral features of the microcontroller will be explored in more detail. These topics include I/O port registers, analog to digital conversion, interrupts, timers/counters, clock systems, pulse-width modulation, serial communication, memory addressing, CPU registers and condition codes, and a basic overview of assembly language. Some chapters have additional practice problems to aid in studying the material.
This book should be used in conjunction with the ATmega328P datasheet [16.14] as well as the lab manual used in conjunction with the teaching of this class at the College of DuPage [16.24].
The original versions of this textbook contained racist terminology for terms used in serial communication. I am sincerely sorry for using this terminology, and am making a continued effort to become more educated. Because of the fact that Microchip still uses this nomenclature in their documentation, I will do my best to try to alleviate confusion due to the differences in terminology.[16.27]
This textbook is written with the assumption that the reader is familiar with the following topics. Many of these topics are covered in [16.20].
-
Number systems (especially decimal, binary and hexadecimal)
-
Binary arithmetic, both signed and unsigned, including overflow detection
-
ASCII code
-
Boolean logic (particularly AND, OR, NOT, XOR, NAND, NOR)
-
Multiplexers and decoders
-
Combinational and sequential logic design
-
Shift registers (especially PIPO, SIPO and PISO)
-
Counters
This section will be modified when changes are made to this textbook. This changelog includes modifications made to the original PDF version of this book. Chapter numbers were modified when moving this book to pretext. The changelog reflects the new chapter numbers.
