Many electrical and computer engineering projects involve some kind of embedded system in which a microcontroller sits at the center as the primary source of control. The recently-developed Arduino development platform includes an inexpensive hardware development board hosting an eight-bit ATMEL ATmega-family processor and a Java-based software-development environment. These features allow an embedded systems beginner the ability to focus their attention on learning how to write embedded software instead of wasting time overcoming the engineering CAD tools learning curve. The goal of this text is to introduce fundamental methods for creating embedded software in general, with a focus on ANSI C. The Arduino development platform provides a great means for accomplishing this task. As such, this work presents embedded software development using 100% ANSI C for the Arduino's ATmega328P processor. We deviate from using the Arduino-specific Wiring libraries in an attempt to provide the most general embedded methods. In this way, the reader will acquire essential knowledge necessary for work on future projects involving other processors. Particular attention is paid to the notorious issue of using C pointers in order to gain direct access to microprocessor registers, which ultimately allow control over all peripheral interfacing. Table of Contents: Introduction / ANSI C / Introduction to Arduino / Embedded Debugging / ATmega328P Architecture / General-Purpose Input/Output / Timer Ports / Analog Input Ports / Interrupt Processing / Serial Communications / Assembly Language / Non-volatile MemoryOnce that is working, try to expand your solution to control more than one port pin . Because many ... Your program should continuously monitor the push-button switch and respond whenever it is pressed or released after debouncing, of course. Consider how we might like to turn on a DC motor in either a forward or reverse direction. This is a ... The circuitry necessary to allow a dynamic connection of terminals between power and ground is called an HBridge, and is shown in Fig. 6.7.
|Title||:||Introduction to Embedded Systems: Using ANSI C and the Arduino Development Environment|
|Publisher||:||Morgan & Claypool Publishers - 2010-10-10|