دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: [1 ed.]
نویسندگان: Norman Dunbar
سری:
ISBN (شابک) : 1484257898, 9781484257890
ناشر: Apress
سال نشر: 2020
تعداد صفحات: 636
[627]
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 6 Mb
در صورت تبدیل فایل کتاب Arduino Software Internals: A Complete Guide to How Your Arduino Language and Hardware Work Together به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب نرم افزار داخلی Arduino: راهنمای کاملی برای چگونگی همکاری زبان و سخت افزار آردوینو نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
Table of Contents About the Author About the Technical Reviewer Preface Chapter 1: Introduction 1.1. Arduino Installation Paths 1.2. Coding Style 1.3. The Arduino Language 1.4. Coming Up Chapter 2: Arduino Compilation 2.1. Preferences.txt 2.1.1. Using an ICSP for All Uploads 2.1.2. Change the Action of Home and End Keys 2.1.3. Setting Tab Stops 2.2. Globally Defined Paths 2.3. Boards.txt 2.3.1. Arduino Uno Example 2.3.1.1. Board Identifier 2.3.1.2. Identification Settings 2.3.1.3. Upload Settings 2.3.1.4. Bootloader Settings 2.3.1.4.1. Boards.local.txt 2.3.1.5. Build Settings 2.3.1.6. Configuring an ICSP 2.4. Platform.txt 2.4.1. Build Recipes 2.4.2. Pre- and Post-build Hooks 2.5. Programmers.txt 2.6. Compiling a Sketch 2.6.1. Arduino Sketch (*.ino) Preprocessing 2.6.2. Arduino Sketch (*.ino) Build 2.7. The Arduino main() Function 2.8. Header File Arduino.h 2.8.1. Header File avr\\pgmspace.h 2.8.2. Header File avr\\io.h 2.8.2.1. Header File avr/iom328p.h 2.8.2.2. Header File avr/portpins.h 2.8.2.3. Header File2.8.2.4. Header File 2.8.2.5. Header File 2.8.2.6. Header File 2.8.3. Header File avr\\interrupt.h 2.8.4. Header File binary.h 2.8.5. Header File WCharacter.h 2.8.6. Header File WString.h 2.8.7. Header File HardwareSerial.h 2.8.8. Header File USBAPI.h 2.8.9. Header File pins_arduino.h 2.9. The init() Function 2.9.1. Enabling the Global Interrupt Flag 2.9.2. Enabling Timer/counter 0 2.9.3. Timer/counter 0 Overflow Interrupt 2.9.4. Configuring Timer/counter 1 and Timer/counter 2 2.9.5. Initializing the Analogue to Digital Converter 2.9.6. Disabling the USART Chapter 3: Arduino Language Reference 3.1. Digital Input/Output 3.1.1. Function pinMode() 3.1.2. Function digitalRead() 3.1.3. Function digitalWrite() 3.2. Analogue Input/Output 3.2.1. Function analogReference() 3.2.2. Function analogRead() 3.2.3. Function analogWrite() 3.3. Advanced Input/Output 3.3.1. Function tone() 3.3.2. Function noTone() 3.3.3. Function pulseIn() 3.3.4. Function pulseInLong() 3.3.5. Function shiftIn() 3.3.6. Function shiftOut() 3.4. Time 3.4.1. Function delay() 3.4.2. Function delayMicroseconds() 3.4.3. Function micros() 3.4.4. Function millis() 3.5. Interrupts 3.5.1. Function interrupts() 3.5.2. Function noInterrupts() 3.5.3. Function attachInterrupt() 3.5.4. Function detachInterrupt() 3.6. Bits and Bobs 3.6.1. Macro bit() 3.6.2. Macro bitClear() 3.6.3. Macro bitRead() 3.6.4. Macro bitSet() 3.6.5. Macro bitWrite() 3.6.6. Macro highByte() 3.6.7. Macro lowByte() 3.6.8. Macro sbi() 3.6.9. Macro cbi() Chapter 4: Arduino Classes 4.1. The Print Class 4.1.1. Class Members 4.1.2. Using the Print Class 4.2. The Printable Class 4.2.1. An Example Printable Class 4.3. The Stream Class 4.3.1. Class Members 4.4. The HardwareSerial Class 4.4.1. Interrupt Handlers 4.4.1.1. USART Receive Complete Interrupt 4.4.1.2. USART Data Register Empty Interrupt 4.4.2. Class Functions and Macros 4.4.2.1. Macro SERIAL_TX_BUFFER_SIZE 4.4.2.2. Macro SERIAL_RX_BUFFER_SIZE 4.4.2.3. Typedefs tx_buffer_index_t and rx_buffer_index_t 4.4.2.4. Serial Communications Parameters 4.4.2.5. Macro HAVE_HWSERIAL0 4.4.2.6. Constructor HardwareSerial() 4.4.2.7. Function begin(unsigned long baud) 4.4.2.8. Function begin(unsigned long, uint8_t) 4.4.2.8.1. Notes on Baud Rate Calculations 4.4.2.8.2. Notes on Baud Rate Errors 4.4.2.8.3. Notes on Low- and High-Speed Communications 4.4.2.9. Function end() 4.4.2.10. Operator bool() 4.4.2.11. Function available(void) 4.4.2.12. Function peek(void) 4.4.2.13. Function read(void) 4.4.2.14. Function availableForWrite(void) 4.4.2.15. Function flush(void) 4.4.2.16. Function write(uint8_t) 4.4.2.17. Function _rx_complete_irq(void) 4.4.2.18. Function _tx_udr_empty_irq(void) 4.5. The String Class Chapter 5: Converting to the AVR Language 5.1. Introduction 5.2. Numbering Systems 5.2.1. Decimal Numbering 5.2.2. Binary Numbering 5.2.3. Hexadecimal Numbering 5.3. Binary Logical Operations 5.4. NOT 5.5. AND 5.6. OR 5.7. XOR 5.8. Replacing the Arduino Language 5.8.1. The ATmega328P Pins and Ports 5.9. Replacing pinMode() 5.10. Replacing digitalWrite() 5.10.1. Enabling Internal Pullup Resistors 5.10.2. Bit Twiddling 5.11. Replacing digitalRead() 5.11.1. Toggling Output Pins 5.11.2. Installing digitalToggle() Chapter 6: Alternatives to the Arduino IDE 6.1. PlatformIO 6.1.1. Installing PlatformIO Core 6.1.2. Testing PlatformIO Core 6.1.2.1. Set Up Your Environment 6.1.2.2. Set Up a New Project 6.1.2.3. Initialize the Project 6.1.2.4. Arduino-Style Projects 6.1.2.4.1. Compiling Arduino Projects 6.1.2.4.2. Uploading Arduino Projects 6.1.2.5. AVR-Style Projects 6.1.2.5.1. Compiling AVR Projects 6.1.2.5.2. Uploading AVR Projects 6.1.3. Burning Bootloaders 6.1.4. PlatformIO in an IDE 6.1.4.1. Set Up a New Code::Blocks Arduino Project 6.1.4.2. Set Up a New Code::Blocks AVR Project 6.1.5. PlatformIO Home 6.1.5.1. Creating Projects 6.1.5.2. Opening Projects 6.1.5.3. Importing Arduino Sketches 6.1.6. PlatformIO IDE 6.1.6.1. Installation 6.1.6.2. PIO Home Tab 6.1.6.3. Creating a New Project 6.1.6.4. Opening Existing Projects 6.1.6.5. Editing the Project 6.1.6.6. Compiling a Project 6.1.6.7. Upload or Program a Project 6.2. Arduino Command Line 6.2.1. Obtaining the Arduino CLI 6.2.2. Installing 6.2.3. Configuring the CLI 6.2.4. Creating Sketches 6.2.5. Installing Platforms 6.2.6. Compiling Sketches 6.2.7. Uploading Sketches 6.2.8. Uploading Sketches with an ICSP 6.2.9. Burning Bootloaders 6.2.10. Serial Usage Chapter 7: ATmega328P Configuration and Management 7.1. ATmega328P Fuses 7.1.1. Low Fuse Bits 7.1.1.1. SUT Fuse Bits 7.1.1.2. CKSEL Fuse Bits 7.1.2. Low Fuse Factory Default 7.1.3. Arduino Low Fuse Settings 7.1.4. High Fuse Bits 7.1.5. High Fuse Factory Default 7.1.6. Arduino High Fuse Settings 7.1.7. Extended Fuse Bits 7.1.8. Extended Fuse Factory Default 7.1.9. Arduino Extended Fuse Settings 7.2. Brown-Out Detection 7.3. The Watchdog Timer 7.3.1. Watchdog Timer Modes of Operation 7.3.2. Amended Sketch setup() Function 7.3.3. Watchdog Timer Reset 7.3.4. The Watchdog Timer Control Register 7.3.5. Enabling the Watchdog Timer 7.3.6. Setting the Watchdog Timer Timeout 7.3.7. Disabling the Watchdog Timer 7.3.8. Putting the AVR to Sleep 7.3.9. Sleep Modes 7.3.9.1. Idle Sleep Mode 7.3.9.2. ADC Noise Reduction Sleep Mode 7.3.9.3. Power Down Sleep Mode 7.3.9.4. Power Save Sleep Mode 7.3.9.5. Standby Sleep Mode 7.3.9.6. Extended Standby Sleep Mode 7.3.10. Analogue Comparator 7.4. Power Reduction 7.4.1. Power Consumption 7.4.1.1. Calculating Power Requirements 7.4.2. Power Reduction Register 7.4.3. Saving Arduino Power 7.4.4. The Power Functions 7.5. Bootloaders 7.5.1. Flash Memory 7.5.2. Lock Bits 7.5.2.1. Device Lock Bits 7.5.2.2. Bootloader Lock Bits 7.5.2.2. Bootloader Lock Bits 0 7.5.2.2. Bootloader Lock Bits 1 7.5.3. Installing the Uno (Optiboot) Bootloader 7.5.4. Optiboot Bootloader Operation Chapter 8: ATmega328P Hardware: Timers and Counters 8.1. Timer/Counters 8.1.1. Timer/Counter 0 (8 Bits) 8.1.2. Timer/Counter 1 (8, 9, 10, and/or 16 Bits) 8.1.3. Timer/Counter 2 (8 Bits) 8.1.4. Timer/Counter Clock Sources 8.1.5. Timer/Counter Operating Modes 8.1.5.1. Timers Disabled 8.1.5.1.1. Disabling the Timers 8.1.5.2. Normal Mode 8.1.5.2.1. Setting Normal Mode 8.1.5.2.2. Example Sketch 8.1.6. Clear Timer on Compare Match Mode 8.1.6.1. Setting CTC Mode 8.1.6.2. Example Sketch 8.1.7. PWM Modes 8.1.7.1. Duty Cycle 8.1.7.2. PWM Frequencies 8.1.7.3. Fast PWM Mode 8.1.7.3.1. Setting Fast PWM Mode 8.1.7.3.2. Example Sketch 8.1.7.4. Phase Correct PWM Mode 8.1.7.4.1. Setting Phase Correct PWM Mode 8.1.7.4.2. Example Sketch 8.1.7.5. Phase and Frequency Correct PWM Mode 8.1.7.5.1. Setting Phase and Frequency Correct PWM Mode 8.1.8. Too Much to Remember? Try AVRAssist 8.2. Counting 8.2.1. Setting External Counting 8.2.2. Counter Example 8.3. Input Capture Unit Chapter 9: ATmega328P Hardware: ADC and USART 9.1. The Analogue Comparator 9.1.1. Reference Voltage 9.1.2. Sampled Voltage 9.1.3. Digital Input 9.1.4. Enable the Analogue Comparator 9.1.5. Select Reference Voltage Source 9.1.5.1. External Reference 9.1.5.2. Internal Bandgap Reference 9.1.6. Select Sampled Voltage Source Pin 9.1.6.1. Sample Voltage on Pin AIN1 9.1.6.2. Sample Voltage on Pins A0–A7 9.1.7. Sampled Voltage Summary 9.1.8. Comparator Outputs 9.1.9. Comparator Example 9.2. Analogue to Digital Converter (ADC) 9.2.1. ADC Setup and Initiation 9.2.1.1. Powering the ADC 9.2.1.2. Selecting the Prescaler 9.2.1.3. Selecting the Reference Voltage Source 9.2.1.4. Left or Right Alignment? 9.2.1.5. Selecting an Input Source 9.2.1.6. Disable Digital Input 9.2.1.7. ADC Interrupt 9.2.1.8. Single-Shot or Auto Trigger? 9.2.1.9. Enabling the ADC and Initiating Conversions 9.2.1.10. ADC Conversions 9.2.2. Noise Reduction 9.2.3. Temperature Measurement 9.2.4. ADC Example 9.3. USART 9.3.1. Baud Rates 9.3.2. Double Speed 9.3.3. Baud Rate Calculations 9.3.4. Baud Rate Errors 9.3.5. What Is a Frame? 9.3.6. Parity 9.3.7. Interrupts 9.3.7.1. TX Complete Interrupt 9.3.7.2. TX Data Register Empty Interrupt 9.3.7.3. RX Complete 9.3.8. Initializing the USART 9.3.8.1. Powering the USART 9.3.8.2. Choosing the USART Mode 9.3.8.3. Baud Rate Setting 9.3.8.4. Frame Settings 9.3.8.5. Setting Parity 9.3.8.6. Setting Stop Bits 9.3.8.7. Setting Data Width 9.3.8.8. Enabling Double-Speed Mode 9.3.8.9. Enabling Interrupts 9.3.8.10. Enabling Data Transmission 9.3.8.11. Enabling Data Receipt 9.3.8.12. Transmitting or Receiving 9-Bit Data 9.3.9. USART Checks 9.3.9.1. USART Receive Complete 9.3.9.2. USART Transmit Complete 9.3.9.3. USART Data Register Empty 9.3.9.4. USART Frame Error 9.3.9.5. USART Data Overrun 9.3.9.6. USART Parity Error 9.3.10. USART Example Appendix A: Arduino Paths Appendix B: ATmega328P Pinout Appendix C: ATmega328P Power Restrictions C.1. Power in Total C.2. Power per Port C.3. Power per Pin Appendix D: Predefined Settings D.1. Global Interrupts D.2. Timer/counter 0 D.3. Timer/counters 1 and 2 D.4. USART D.5. Analogue to Digital Converter Appendix E: ADC Temperature Measuring Appendix F: Assembly Language: Briefly Appendix G: Smallest Blink Sketch? Appendix H: NormDuino Appendix I: No ICSP? No Problem! I.1. ArduinoISP Sketch I.2. Connections I.3. Choose Your Programmer I.4. Burn the Bootloader Appendix J: Breadboard 8 MHz Board Setup Appendix K: AVRAssist K.1. Components K.2. In Use Index