Welcome to P K Kelkar Library, Online Public Access Catalogue (OPAC)

Normal view MARC view ISBD view

Introduction to embedded systems : using ANSI C and the Arduino development environment /

By: Russell, David James.
Material type: materialTypeLabelBookSeries: Synthesis digital library of engineering and computer science: ; Synthesis lectures on digital circuits and systems: # 30.Publisher: San Rafael, Calif. (1537 Fourth Street, San Rafael, CA 94901 USA) : Morgan & Claypool, c2010Description: 1 electronic text (xx, 255 p. : ill.) : digital file.ISBN: 9781608454990 (electronic bk.).Subject(s): Embedded computer systems -- Programming | embedded systems | embedded software | embedded development | microcontroller | microprocessor | ANSI C | Arduino | ATmega328PDDC classification: 004.16 Online resources: Abstract with links to resource Also available in print.
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.
Abstract: 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.
    average rating: 0.0 (0 votes)
Item type Current location Call number Status Date due Barcode Item holds
E books E books PK Kelkar Library, IIT Kanpur
Available EBKE272
Total holds: 0

Mode of access: World Wide Web.

System requirements: Adobe Acrobat Reader.

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

Series from website.

Includes bibliographical references (p. 249) and index.

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.

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

Compendex

INSPEC

Google scholar

Google book search

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.

Also available in print.

There are no comments for this item.

Log in to your account to post a comment.

Powered by Koha