Skip to content

Latest commit

 

History

History
64 lines (37 loc) · 3.94 KB

README.md

File metadata and controls

64 lines (37 loc) · 3.94 KB

t-embedded

This project contains my embedded work using the MSP432 microcontroller from Texas Instruments. Most of the concepts and code were learned from the "Introduction to Real-Time Systems" course.

Codebase Overview

  • adc: Analog-to-Digital Conversion (ADC) examples.

    • Contains examples of using the Analog-to-Digital Converter (ADC) on the MSP432. ADCs are used to convert analog signals (e.g., from sensors) into digital values that the microcontroller can process.
  • concurrencyQNX: Examples of concurrency and synchronization using QNX.

    • Contains examples of concurrency and synchronization using the QNX operating system. It includes examples of using mutexes to prevent race conditions and ensure safe access to shared resources.
  • gpio: General Purpose Input/Output (GPIO) examples.

    • Contains examples of using General Purpose Input/Output (GPIO) pins on the MSP432. GPIO pins can be configured as inputs or outputs and are used to interface with external devices such as LEDs, buttons, and sensors.
  • helloworld: Basic introductory examples.

    • Contains basic introductory examples to get started with the MSP432. It includes simple programs to demonstrate basic functionality such as blinking an LED.
  • interrupts: Examples of using interrupts.

    • Contains examples of using interrupts on the MSP432. Interrupts allow the microcontroller to respond to external events, such as button presses, in real-time.
  • pwm: Pulse Width Modulation (PWM) examples.

    • This folder contains examples of using Pulse Width Modulation (PWM) on the MSP432. PWM is used to control the brightness of LEDs, the speed of motors, and other applications where variable power is needed.
  • timers: Examples of using timers.

    • Contains examples of using timers on the MSP432. Timers are used to generate precise time delays, measure time intervals, and trigger events at specific intervals.
  • uart: Universal Asynchronous Receiver-Transmitter (UART) examples.

    • Contains examples of using the Universal Asynchronous Receiver-Transmitter (UART) on the MSP432. UART is used for serial communication between the microcontroller and other devices.

Concepts

NVIC (Nested Vectored Interrupt Controller)

The NVIC is a part of the ARM Cortex-M microcontroller architecture. It manages the prioritization and handling of interrupts. The NVIC allows for nested interrupts, meaning higher-priority interrupts can preempt lower-priority ones.

Interrupts

Interrupts are signals that temporarily halt the CPU's current operations to execute a specific piece of code, known as an interrupt service routine (ISR). Interrupts are essential for real-time systems as they allow the CPU to respond quickly to external events.

UART (Universal Asynchronous Receiver-Transmitter)

UART is a old hardware communication protocol that uses asynchronous serial communication. It is commonly used for communication between microcontrollers and other devices, such as computers or sensors.

PWM (Pulse Width Modulation)

PWM is a technique used to control the amount of power delivered to an electrical load by varying the duty cycle of a digital signal. It is commonly used for controlling motors, LEDs, and other devices.

GPIO (General Purpose Input/Output)

GPIO pins can be configured as inputs or outputs and are used to interface with external devices such as LEDs, buttons, and sensors. They are essential for interacting with the physical world.

Mutexes

Mutexes are synchronization primitives used to prevent race conditions by ensuring that only one thread can access a shared resource at a time. They work atomically, meaning that the operations to lock and unlock the mutex are indivisible and cannot be interrupted.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

  • Texas Instruments for the MSP432 microcontroller.
  • The "Introduction to Real-Time Systems" course for providing the foundational knowledge.