Coverart for item
The Resource Introduction to embedded systems : using ANSI C and the Arduino development environment, David J. Russell, (electronic book)

Introduction to embedded systems : using ANSI C and the Arduino development environment, David J. Russell, (electronic book)

Label
Introduction to embedded systems : using ANSI C and the Arduino development environment
Title
Introduction to embedded systems
Title remainder
using ANSI C and the Arduino development environment
Statement of responsibility
David J. Russell
Creator
Subject
Language
eng
Summary
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
Member of
Cataloging source
CaBNvSL
http://library.link/vocab/creatorName
Russell, David James.
Illustrations
illustrations
Index
index present
Literary form
non fiction
Nature of contents
dictionaries
http://library.link/vocab/subjectName
Embedded computer systems
Target audience
adult
Label
Introduction to embedded systems : using ANSI C and the Arduino development environment, David J. Russell, (electronic book)
Instantiates
Publication
Antecedent source
file reproduced from original
Bibliography note
Includes bibliographical references (p. 249) and index
Color
multicolored
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
Dimensions
unknown
Extent
1 electronic text (xx, 255 p. : ill.)
File format
multiple file formats
Form of item
electronic
Isbn
9781608454990
Level of compression
unknown
Other physical details
digital file. ;
Quality assurance targets
unknown
Reformatting quality
access
Specific material designation
remote
System details
System requirements: Adobe Acrobat Reader
Label
Introduction to embedded systems : using ANSI C and the Arduino development environment, David J. Russell, (electronic book)
Publication
Antecedent source
file reproduced from original
Bibliography note
Includes bibliographical references (p. 249) and index
Color
multicolored
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
Dimensions
unknown
Extent
1 electronic text (xx, 255 p. : ill.)
File format
multiple file formats
Form of item
electronic
Isbn
9781608454990
Level of compression
unknown
Other physical details
digital file. ;
Quality assurance targets
unknown
Reformatting quality
access
Specific material designation
remote
System details
System requirements: Adobe Acrobat Reader

Library Locations

Processing Feedback ...