An edition of Introduction to embedded systems (2010)

Introduction to embedded systems

using ANSI C and the Arduino development environment

Locate

My Reading Lists:

Create a new list

Check-In

×Close
Add an optional check-in date. Check-in dates are used to track yearly reading goals.
Today


Buy this book

Last edited by ImportBot
February 25, 2022 | History
An edition of Introduction to embedded systems (2010)

Introduction to embedded systems

using ANSI C and the Arduino development environment

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.

Publish Date
Publisher
Morgan & Claypool
Language
English

Buy this book

Previews available in: English

Edition Availability
Cover of: Introduction to embedded systems
Introduction to embedded systems: using ANSI C and the Arduino development environment
2010, Morgan & Claypool
electronic resource : in English

Add another edition?

Book Details


Table of Contents

Preface
1. Introduction
Background
Digital representation of information
Digital logic fundamentals
Digital vectors
Information representation in a digital processor
Numbers
Text
2. ANSI C
Introduction
Background
Essential elements of the language
Formatted output
Variables and arithmetic expressions
Variable names
Type conversions
Constants
Arithmetic operators
Relational and logical operators
Increment and decrement operators
Bitwise operators
Assignment operators
Conditional expression
Control flow
If-else
Else-if
Switch
Loops
Infinite loops
Miscellaneous (please don't use)
Functions and program structures
Scope rules
Pointers and arrays
Passing by reference
Dynamic memory allocation
Multi-dimensional arrays
Function pointers
Structures
Typedef
Unions
Bit-fields
Variable-length argument lists
3. Introduction to Arduino
Background
Experiments using the Arduino duemilanove development board
Arduino tools tutorial
4. Embedded debugging
Introduction
Debugging the arduino tutorial
5. Atmega328p architecture
Overview
AVR CPU core
6. General-purpose input/output
Output
Introduction
Basic operation
Pin-muxing
Input
Introduction
Internal pull-up resistor
Accessing GPIO lines in C
Managing outputs
Managing inputs
Pertinent register descriptions
PORTB, The Port B Data Register
DDRB, The Port B Data Direction Register
PINB, The Port B Input Pins Address
PORTC, The Port C Data Register
DDRC, The Port C Data Direction Register
PINC, The Port C Input Pins Address
PORTD, The Port D Data Register
DDRD, The Port D Data Direction Register
PIND, The Port D Input Pins Address
7. Timer Ports
Pulse width modulation
Introduction
Demodulation
Modulation
Input Capture
Pertinent register descriptions
TCCR0A, Timer/Counter0 Control Register A
TCCR0B, Timer/Counter0 Control Register B
TCNT0, Timer/Counter0 Register
OCR0A, Output Compare0 Register A
OCR0B, Output Compare0 Register B
TCCR1A, Timer/Counter1 Control Register A
TCCR1B, Timer/Counter1 Control Register B
TCCR1C, Timer/Counter1 Control Register C
TCNT1H and TCNT1L, Timer/Counter1 Register
OCR1AH and OCR1AL, Output Compare1 Register A
OCR1BH and OCR1BL, Output Compare1 Register B
ICR1H and ICR1L, Input Capture1 Register
TCCR2A, Timer/Counter2 Control Register A
TCCR2B, Timer/Counter2 Control Register B
TCNT2, Timer/Counter2 Register
OCR2A, Output Compare2 Register A
OCR2B, Output Compare2 Register B
ASSR, Asynchronous Status Register
GTCCR, General Timer/Counter Control Register
8. Analog input ports
Analog-to-digital converters
ADC peripheral
Analog comparator
Pertinent register descriptions
ADMUX, ADC Multiplexer Selection Register
ADCSRA, ADC Control and Status Register A
ADCH and ADCL, ADC Data Register
ADCSRB, ADC Control and Status Register B
DIDR0, Digital Input Disable Register
ACSR, Analog Comparator Control and Status Register
DIDR1, Digital Input Disable Register
9. Interrupt processing
Introduction
Context
ISR and main task communication
ATmega328P interrupts in C
Pertinent register descriptions
EICRA, External Interrupt Control Register A
EIMSK, External Interrupt Mask Register
EIFR, External Interrupt Flag Register
PCICR, Pin Change Interrupt Control Register
PCIFR, Pin Change Interrupt Flag Register
PCMSK2, Pin Change Mask Register
PCMSK1, Pin Change Mask Register
PCMSK0, Pin Change Mask Register
TIMSK0, Timer/Counter0 Interrupt Mask Register
TIFR0, Timer/Counter0 Interrupt Flag Register
TIMSK1, Timer/Counter1 Interrupt Mask Register
TIFR1, Timer/Counter1 Interrupt Flag Register
TIMSK2, Timer/Counter2 Interrupt Mask Register
TIFR2, Timer/Counter2 Interrupt Flag Register
SPCR, SPI Control Register
SPSR, SPI Status Register
UCSR0A, USART0 Control and Status Register A
UCSR0B, USART0 Control and Status Register B
TWCR, TWI Control Register
ADCSRA, ADC Control and Status Register A
ACSR, Analog Comparator Control and Status Register
EECR, EEPROM Control Register
10. Serial communications
Introduction
Inter-Integrated Circuit
Serial Peripheral Interface
Universal Asynchronous Receiver/Transmitter
USART on ATmega328P
Interrupt-based Serial Port Management in C
Pertinent Register Descriptions
TWBR, TWI Bit Rate Register
TWCR, TWI Control Register
TWSR, TWI Status Register
TWDR, TWI Data Register
TWAR, TWI Slave Address Register
TWAMR, TWI Slave Address Mask Register
SPCR, SPI Control Register
SPSR, SPI Status Register
SPDR, SPI Data Register
UDR0, USART0 I/O Data Register
UCSR0A, USART0 Control and Status Register A
UCSR0B, USART0 Control and Status Register B
UCSR0C, USART0 Control and Status Register C
UBRR0H and UBRR0L, USART0 Baud Rate Registers
11. Assembly language
Introduction
Arduino tool-chain
Arduino assembly
Arduino inline assembly
C-instruction efficiency
12. Non-volatile memory
Introduction
EEPROM via C on ATmega328P
Pertinent register descriptions
EEARH, EEPROM High Address Register
EEARL, EEPROM Low Address Register
EEDR, EEPROM Data Register
EECR, EEPROM Control Register
A. Arduino 2009 schematic
B. ATmega328P registers
B.1. Register summary
C. ATmega328P assembly instructions
C.1. Instruction set summary
C.2. Instruction set notation
SREG, AVR Status Register
General purpose register file
Miscellaneous
Stack pointer
D. Example C/C++ software coding guidelines
D.1. Introduction
Purpose
Philosophy
Format
D.2. General recommendations
D.3. Naming conventions
D.4. Layout
D.5. Statements
Types
Variables
Loops
Conditionals
Functions
Miscellaneous
D.6. Comments
D.7. Files
Bibliography
Author's biography
Index.

Edition Notes

Part of: Synthesis digital library of engineering and computer science.

Series from website.

Includes bibliographical references (p. 249) and index.

Abstract freely available; full-text restricted to subscribers or individual document purchasers.

Also available in print.

Mode of access: World Wide Web.

System requirements: Adobe Acrobat Reader.

Published in
San Rafael, Calif. (1537 Fourth Street, San Rafael, CA 94901 USA)
Series
Synthesis lectures on digital circuits and systems -- # 30
Other Titles
Synthesis digital library of engineering and computer science.

Classifications

Dewey Decimal Class
004.16
Library of Congress
TK7895.E42 R875 2010

The Physical Object

Format
[electronic resource] :

ID Numbers

Open Library
OL27046839M
Internet Archive
introductiontoem00russ
ISBN 13
9781608454990, 9781608454983

Community Reviews (0)

Feedback?
No community reviews have been submitted for this work.

Lists

This work does not appear on any lists.

History

Download catalog record: RDF / JSON
February 25, 2022 Edited by ImportBot import existing book
July 1, 2019 Created by MARC Bot import new book