The contents
Introduction (11)
Part I. THE BASICS
1. Introduction (19)
- What is the microcontroller? Total image (19)
- Computer in one system... (19)
- ...really small computer (20)
- What can microcontrollers do? (21)
- Equipment: the image in general (21)
- Core: processor, memory and input / output systems (23)
- Peripheral systems: facilitating life (25)
2. Programming of the AVR chips (29)
- AVR system programming (29)
- Software tools (32)
- Configuring in Linux (33)
- Configuring in Windows (33)
- Configuring in the Mac (34)
- Configuring in the Arduino module (34)
- The make program and makefiles (34)
- AVR and Arduino (35)
- The advantages of the Arduino platform (35)
- The shortcomings of the Arduino platform (35)
- Arduino: hardware or software? This and that! (37)
- Arduino is an AVR (37)
- Arduino is a programmer of the AVR chips (40)
- Other hardware programmers (42)
- My favorite programmers (42)
- Getting started: blinking LEDs (43)
- Connections (44)
- Connectors of ISP (46)
- The program AVRDUDE (48)
- Configuring the makefiles (51)
- Flash memory (53)
- Solving problems (53)
3. The digital outputs (55)
- blinkLED, version 2.0 (56)
- The code structure of C language for AVR system (57)
- Hardware registers (57)
- Summary of program blinkLED (60)
- Light toy (61)
- System building (61)
- Beautiful patterns: code for toys (65)
- Experiment! (67)
4. Manipulations on bits (69)
- The work with code: Cylon eyes (70)
- The manipulation of bits and the eyes of the Cylons (71)
- Advanced bit manipulation: more than the eyes of Cylons (74)
- Turning on the bits using the OR operator (76)
- Switching the bits with XOR operator (78)
- Disabling the bits using AND and NOT operators (79)
- Show offs (81)
- Summary (83)
5. Serial input and output (85)
- Serial communication (85)
- Implementation of serial communication in AVR system: design of feedback loop (88)
- Setting: the AVR system (88)
- Setup: computer (90)
- Setup: USB serial port adapter (90)
- Checking the whole: testingfeedback loop (91)
- Removing problems with serial connections (94)
- Configuring the USART module: details (94)
- The organs from the system AVR (99)
- Music from the microcontroller (101)
- Music library (103)
- Code (104)
- Superadditions (106)
- Summary (108)
6. Digital inputs (109)
- Buttons, switches, etc. (109)
- Setup of inputs: registers DDR, PORT and PIN (111)
- Interpretation of key presses (113)
- Status change (115)
- Elimination of bounces (116)
- Example of code that handles bounces (118)
- Music box (120)
- The button for the boss (122)
- Scripts for desktop computer (123)
- The extensions (126)
7. Analog-digital converter - part 1. (129)
- An overview of the elements of the AVR system (130)
- Light meter (133)
- Circuit (133)
- Program code (137)
- The initation of the AC converter (140)
- Extensions (141)
- Slow oscilloscope (141)
- The code for the AVR system (143)
- The code for the computer (145)
- Similarities (147)
- Night lighting and a multiplexer (147)
- Multiplexer (147)
- Setting the bits of multiplexer (148)
- Scheme (149)
- Code (150)
- Summary (151)
PART II. INTERMEDIATE
8. Hardware interrupts (155)
- External interrupts: examples of the use of a button (157)
- An example with external interrupt INT0 (158)
- An example of the interrupt caused by the change of pin state (163)
- The capacitive sensor (165)
- The sensor (167)
- Program code (169)
- Ephemeral and global variables (171)
- The debugging of circuit (173)
9. Introduction to hardware clock/counter (175)
- Clockss and counters - what do they do? (175)
- Test your reflex (177)
- Using the clock number 0 to improve 8-bit organs (182)
- AM radio (185)
- Scheme (187)
- The speed of the processor (187)
- AM radio: program code (191)
- Summary (195)
10. The pulse width modulation (197)
- Light and dark LEDs: PWM technique (198)
- Power solution of PWM (200)
- Modulation of pulses using the counters (201)
- Initializing the counters for PWM mode (203)
- The pulse width modulation on any pin (206)
- An example of modulation of a pulse on any of the pin (206)
- Conclusion: other options for PWM and control lists of counters (208)
11. Management of servos (213)
- Servomotors (214)
- The secret life of servomotors (215)
- The scheme (216)
- Program code (217)
- Solar clock with servomotor (220V)
- Creating a clock (221)
- Prepare the lasers! (223)
- Program code (225)
- Calibration of servomotors of solar clock (232)
12. Analog-digital converter - part 2. (237)
- Voltmeter (238)
- Diagram (239)
- Program code (242)
- Detector of steps (246)
- Diagram (246)
- Theory (251)
- Exponentially weighted moving average (252)
- Program code (255)
- Summary (258)
PART III. ADVANCED TOPICS
13. Advanced tricks with PWM (263)
- Direct digital synthesis (264)
- Creating a sinusoidal wave (267)
- Next step: mixing and loudness (269)
- Mixing (271)
- Dynamic volume control (273)
- Questioning the USART port (276)
- ADSR envelope (276)
- Complementary files (277)
14. Switches (279)
- Management of large currents: the switches (280)
- Bipolar transistors (281)
- Field transistors (MOSFET) (283)
- Field transistors of power (284)
- Relays (285)
- Triaki and the relays are static (286)
- Switches: summary (287)
- DC motors (288)
15. Additional motor control (295)
- Reversing: bridges of the type H (296)
- Program: let's spin the bridge (299)
- Bridge H only for experts (301)
- The H bridge and pulse width modulation (302)
- Drive mode of sign-module (303)
- Drive mode lock-antiphase (304)
- Comparison of drive modes (305)
- Stepper motors (307)
- Types of stepper motors (308)
- Full steps and half steps (308)
- The identification of wires of stepper motor (311)
- Double H bridge: SN754410 system (312)
- Program code (315)
- Acceleration control (318)
- Microsteps (320)
16. SPI (325)
- How does the SPI Protocol work? (326)
- An example of an exchange of bits (328)
- Shift registers (328)
- External memory EEPROM (331)
- Electrical connections of example with SPI Protocol (334)
- The demo program code (335)
- Header file of the library (337)
- Code of library supporting the EEPROM SPI (339)
- Function initSPI() (341)
- Function SPI_tradeByte() (342)
- Helping functions (343)
- Summary (344)
17. I2C (347)
- How does the I2C Protocol work? (348)
- The connections in sample project (352)
- Library support for I2C bus (353)
- Thermometer with I2C interface (356)
- Logging the data using the I2C and SPI protocols (359)
- The indicators in the EEPROM (363)
- Menu is created via the serial port (363)
- The main loop of the loging thermometer (364)
18. The memory usage of programs (367)
- The memory usage of programs (367)
- Memory address (368)
- The address operator: & (369)
- Indicators (372)
- Indicators in shorter (372)
- Pointers as function parameters (376)
- Summary (379)
- Optional: dereferencing of indicators (380)
- Talking voltmeter (381)
- Data structures in the program memory and the header file (382)
- Playing the sound and reading voltages: file .c (386)
- Creating data of audio (391)
- Different modulation code-pulse (391)
- Audio encoding by method of dualbit DPCM (391)
- Encoding DPCM: program wave2DPCM.py (394)
19. EEPROM (399)
- The use of EEPROM (400)
- Saving the data in memory (400)
- Reading data from the memory (405)
- Saving and reading the EEPROM (407)
- Organization of data in EEPROM memory (408)
- Design: scrambler of Vigenere code (412)
20. Conclusions, goodbye and encouraging (421)
- AVR: the missing chapters (421)
- The watchdog counter (421)
- Energy saving (422)
- External oscillators and other sources of clocking (422)
- Motional programs (422)
- Analog comparator (423)
- Debugging (423)
- Put the book off and create! (423)
Index (425)
|