Home Page Icon
Home Page
Table of Contents for
Title page
Close
Title page
by Dogan Ibrahim
ARM-Based Microcontroller Multitasking Projects
Cover
Title page
Contents
Copyright
About the author
Preface
Acknowledgments
Chapter 1: Microcomputer systems
Abstract
1.1. Overview
1.2. Microcontroller systems
1.3. Microcontroller features
1.4. Microcontroller architectures
1.5. Summary
Chapter 2: Architecture of ARM microcontrollers
Abstract
2.1. Overview
2.2. ARM microcontrollers
2.3. The STM32F407VGT6 microcontroller
2.4. General purpose inputs and outputs
2.5. Nested vectored interrupt controller (NVIC)
2.6. External interrupt controller (EXTI)
2.7. Timers
2.8. Analog-to-digital converters (ADCs)
2.9. Built-in temperature sensor
2.10. Digital-to-analog converter
2.11. Reset
2.12. Electrical characteristics
2.13. Summary
Chapter 3: ARM Cortex microcontroller development boards
Abstract
3.1. Overview
3.2. LPC1768
3.3. STM32 Nucleo family
3.4. EasyMX Pro V7 For STM32
3.5. STM32F4DISCOVERY board
3.6. mbed application board
3.7. EasyMx Pro V7 for Tiva
3.8. MINI-M4 for STM32
3.9. Clicker 2 for MSP432
3.10. Tiva EK-TM4C123GXL LaunchPad
3.11. Fusion for ARM V8
3.12. Clicker 2 for STM32
3.13. Summary
Chapter 4: Clicker 2 for STM32 development board
Abstract
4.1. Overview
4.2. Clicker 2 for STM32 hardware
4.3. Summary
Chapter 5: Programming the ARM-based microcontrollers
Abstract
5.1. Overview
5.2. IDEs supporting the ARM-based microcontrollers
5.3. Summary
Chapter 6: Programming using the mikroC Pro for ARM
Abstract
6.1. Overview
6.2. MikroC Pro for ARM
6.3. The general purpose input-output library
6.4. Memory type specifiers
6.5. PORT input-output
6.6. Accessing individual bits
6.7. Bit data type
6.8. Interrupts and exceptions
6.9. Creating a new project
6.10. Simulation
6.11. Debugging
6.12. Other mikroC IDE tools
6.13. Summary
Chapter 7: Introduction to multitasking
Abstract
7.1. Overview
7.2. Multitasking kernel advantages
7.3. Need for an RTOS
7.4. Task scheduling algorithms
7.5. Choosing a scheduling algorithm
7.6. Summary
Chapter 8: Introduction to FreeRTOS
Abstract
8.1. Overview
8.2. FreeRTOS distribution
8.3. Installing from MikroElektronika web site
8.4. Developing project files
8.5. FreeRTOS headers files path and source files path
8.6. Compiler case sensitivity
8.7. Compiling the template program
8.8. Summary
Chapter 9: Using the FreeRTOS functions
Abstract
9.1. Overview
9.2. FreeRTOS data types
9.3. FreeRTOS variable names
9.4. FreeRTOS function names
9.5. Common macro definitions
9.6. Task states
9.7. Task-related functions
9.8. Using an LCD
9.9. Task name, number of tasks, and tick count
9.10. Project 9—displaying a task name, number of tasks, and tick count on the LCD
9.11. Yield to another task of equal priority
9.12. Aborting delay
9.13. Project 10—7-segment 2-digit multiplexed LED display counter
9.14. Project 11—7-segment 4-digit multiplexed LED display counter
9.15. Project 12—7-segment 4-digit multiplexed LED display event counter
9.16. Project 13—traffic lights controller
9.17. Project 14—changing LED flashing rate
9.18. Project 15—sending data to a PC over USB serial link
9.19. Project 16—changing LED flashing rate from the PC keyboard
9.20. Task list
9.21. Project 17—displaying the task list on the PC screen
9.22. Task info
9.23. Project 19—displaying the task info on the PC screen
9.24. Task state
9.25. Project 20—displaying the task state on the PC screen
9.26. Task parameters
9.27. Summary
Chapter 10: Queue management
Abstract
10.1. Overview–global variables
10.2. Why queues?
10.3. Creating a queue, sending and receiving data using queues
10.4. Project 21–changing LED flashing rate from the PC keyboard
10.5. Deleting a queue, name of a queue, resetting a queue
10.6. Project 22—using various queue functions
10.7. Some other queue functions
10.8. Project 23—ON-OFF temperature controller
10.9. Summary
Chapter 11: Semapores and mutexes
Abstract
11.1. Overview
11.2. Creating binary semaphore and mutex
11.3. Creating a counting semaphore
11.4. Deleting a semaphore, getting the semaphore count
11.5. Giving and taking the semaphores
11.6. Project 24: sending internal and external temperature data to a PC
11.7. Summary
Chapter 12: Event groups
Abstract
12.1. Overview
12.2. Event flags and event groups
12.3. Creating and deleting an event group
12.4. Setting, clearing, waiting For event group bits, and getting event group bits
12.5. Project 25—sending internal and external temperature data to a PC
12.6. Project 26—controlling the flashing of an LED
12.7. Project 27—GPS based project
12.8. Summary
Chapter 13: Software timers
Abstract
13.1. Overview
13.2. Creating, deleting, starting, stopping, and resetting a timer
13.3. Change timer period, get timer period
13.4. Timer name and ID
13.5. Project 28—reaction timer
13.6. Project 29—generate square waveform
13.7. Project 30—event counter (e.g., frequency counter)
13.8. Summary
Chapter 14: Some example projects
Abstract
14.1. Overview
14.2. Project 31: square wave generation with adjustable frequency
14.3. Project 32: frequency sweep waveform generator
14.4. Project 33: RGB light controller
14.5. Project 34: home alarm system with keyboard
14.6. Project 35: ultrasonic car parking with buzzer
14.7. Project 36: stepper motor project
14.8. Project 37: communicating with the Arduino
14.9. Summary
Chapter 15: The Idle task and the idle task hook
Abstract
15.1. Overview
15.2. The Idle task
15.3. Idle task hook functions
15.4. Project 39: display the free processor time
15.5. Summary
Chapter 16: Task Notifications
Abstract
16.1. Overview
16.2. xTaskNotifyGive() and uITaskNotifyTake()
16.3. Project 40: start flashing an LED after receiving notification
16.4. xTaskNotify() and xTaskNotifyWait()
16.5. Project 41: flashing at different rates after receiving notifications
16.6. xTaskNotifyStateClear() and xTaskNotifyQuery()
16.7. Summary
Chapter 17: Critical sections
Abstract
17.1. Overview
17.2. Project 42: critical sections – Sharing the UART
17.3. Suspending the scheduler
17.4. Project 43: suspending the scheduler
17.5. Summary
Chapter 18: Interrupts in Cortex-M4 based microcontrollers
Abstract
18.1. Overview
18.2. Interrupts in general
18.3. STM32F407 interrupts
18.4. Project 44—External interrupt based event counter
18.5. Project 45—Multiple external interrupts
18.6. Internal interrupts (timer interrupts)
18.7. Project 46—Generating waveform using a timer interrupt
18.8. Project 47—External interrupt with timer interrupt
18.9. Summary
Chapter 19: USING the FreeRTOS API function calls from an ISR
Abstract
19.1. Overview
19.2. The xHigherPriorityTaskWoken parameter
19.3. Deferred interrupt processing
19.4. Task related functions from ISR
19.5. Project 48-Using function xTaskResumeFromISR()
19.6. Project 49-Deferred interrupt processing
19.7. Project 50-Using function xTaskNotifyFromISR()
19.8. Event group related functions from ISR
19.9. Project 51-Using function xEventGroupSetBitsFromISR()
19.10. Timer related functions from ISR
19.11. Project 52-Using functions xTimerStartFromISR() and xTimerChangePeriodFromISR()
19.12. Semaphore related functions from ISR
19.13. Project 53-Using functions xSemaphoreTakeFromISR() and xSemaphoreGive()
19.14. Queue related functions from ISR
19.15. Project 54-Using functions xQueueSendFromISR() and xQueueReceive()
19.16. Summary
Chapter 20: Car park management system
Abstract
20.1. Overview
20.2. Project 55: car park control
Chapter 21: Time in different cities
Abstract
21.1. Overview
21.2. Project 56: time project
Chapter 22: Mobile robot project: the Buggy
Abstract
22.1. Overview
22.2. The Buggy
22.3. Wheel motors
22.4. Lights (LEDs)
22.5. Project 57: controlling the Buggy lights
22.6. Project 58: controlling the Buggy motors
22.7. Project 59: obstacle avoiding Buggy
22.8. Project 60: controlling the Buggy remotely
Appendix A. Number systems
Appendix B. The program description language
Index
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Prev
Previous Chapter
Cover
Next
Next Chapter
Contents
ARM-Based Microcontroller Multitasking Projects
Using the FreeRTOS Multitasking Kernel
Dogan Ibrahim
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset