Fading Coder

One Final Commit for the Last Sprint

Subsystem Integration and Boot Sequence Adaptation for OpenHarmony

OpenHarmony organizes its functionality through a modular hierarchy consisting of systems, subsystems, and components. This architecture enables engineers to selectively disable non-essential modules based on hardware constraints and product specifications. To successfully deploy the framework on a...

Implementing I2C Communication Protocol on FPGA with Verilog

I2C Bus Fundamentals The Inter-Integrated Circuit bus (I2C) is a bidirectional two-wire synchronous serial bus that enables communication between integrated circuits. Originally developed by Philips, this serial expansion technology has become ubiquitous in consumer electronics including displays, v...

Implementing Heart Rate and SpO2 Monitoring with MAX30102 and STM32

Sensor Operating PrinciplesThe MAX30102 integrates two LEDs (red at 660nm and infrared at 880nm) and a photodetector to facilitate photoplethysmography (PPG). Blood oxygen saturation (SpO2) is determined by the differential absorption of light by oxygenated hemoglobin (HbO2) and deoxygenated hemoglo...

Handling Concurrent UART Transmission and Reception on 8051 Using Interrupts

Challenges in Polling-Based UART Communication In embedded systems based on the 8051 architecture, managing simultaneous serial transmission and reception often presents timing conflicts. Consider a scenario where the microcontroller must periodically transmit status data to a host PC while remainin...

Embedded Systems Learning Path: A Comprehensive Technical Framework

Overview Embedded systems represent a specialized computing domain that integrates hardware and software to perform dedicated functions within larger devices. This technical framework outlines the essential knowledge domains and learning progression for embedded systems development. What Are Embedde...

STM32 Hardware I2C Peripheral Configuration and Usage

STM32 microcontrollers integrate dedicated I2C hardware peripherals that offload timing-critical tasks—including clock generation, START/STOP condition handling, ACK/NAK management, and byte-level data transfer—from the CPU. This enables reliable, low-overhead communication with I2C-compatible senso...

Principles of Function Design and Parameter Passing in C

Functions serve as the primary modular units in C, allowing developers to encapsulate logic into reusable blocks. When designing a function, the implementation should focus on the specific feature required, determining the appropriate parameters and return types based on that functional goal. Functi...

Implementing a MODBUS Server for Serial Display Using AWTK

Model Name: modbus_server Purpose: This model enables service provision via the MODBUS protocol, allowing remote clients (masters) to acces data. Instantiation A model instance is created using modbus_server. Example: <window v-model="modbus_server" name="main_view"> Config...

Linux Process Management: Concepts, Commands, and Programming Interfaces

Today we move on to the next phase of learning: processes and threads. Today's focus is on Linux process concepts, management commands, and related system function interfaces. 1. Core Concepts Program: A file stored in external memory containing a set of instructions and data. Process: The dynamic e...

Key Practical Tips for Effective CAPL Development in CANoe 12

Local variables in CAPL behave like C static variables by default. For example: on key 'b' { incrementCounter(); } void incrementCounter() { byte tempVal = 0; tempVal++; writeLineEx(-3, 1, "Current tempVal: %d", tempVal); } Hitting 'b' seven times prints values 1 through 7, not 1 repeatedl...