Skip to main content

Introduction to Embedded Systems

Using ANSI C and the Arduino Development Environment

  • Book
  • © 2010

Overview

Part of the book series: Synthesis Lectures on Digital Circuits & Systems (SLDCS)

This is a preview of subscription content, log in via an institution to check access.

Access this book

eBook USD 44.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

Licence this eBook for your library

Institutional subscriptions

Table of contents (12 chapters)

About this book

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 Memory

Authors and Affiliations

  • University of Nebraska-Lincoln, USA

    David J. Russell

About the author

David J. Russell received the B.S. degree in computer engineering and the M.S. degree in electrical engineering from the University of Nebraska, Lincoln, Nebraska, in 1996 and 2001, respectively. Currently, he is a Ph.D. candidate in the Department of Electrical Engineering of the University of Nebraska-Lincoln. His research interests include digital signal processing, wireless communications, and biological sequence analysis. From 1996 to 1997, he was with Motorola Space and Systems Technology Group, Scottsdale, Arizona, where he was a software engineer. From 1997 to 2004, he was with EFJohnson, Lincoln, Nebraska, where he was a principal development engineer. Since 2004, he has been with the University of Nebraska, Lincoln, where he currently serves as Lecturer. Additionally, he has worked as a contract engineer for Telex, a part of Bosch Security Systems. Most recently, he helped create and presently works for the contract engineering company Red-Cocoa.

Bibliographic Information

Publish with us