This repository contains my homework submissions for the PV198 course at FI MUNI. All projects are written in C (unless stated otherwise) and designed to run on the NXP FRDM-MCXN947 development board.
- Submission_01_0: Basic LED blinky - introductory task to verify the toolchain and environment.
- Submission_02_2: LED control using buttons - basic GPIO input and output handling.
- Submission_03_2: Button debouncing - implementing reliable input detection using Timers (CTIMER) and Interrupts (GPIO IRQ).
- Submission_04_1: PWM RGB LED - generating sine-wave intensity transitions on RGB LEDs using CTIMER PWM mode.
- Submission_05_01: ADC + PWM - reading analog values from a joystick (LPADC) to control the intensity of RGB LEDs via PWM.
- Submission_06_2: SPI Communication - interfacing with the BMP280 pressure and temperature sensor using the LPSPI peripheral.
- Submission_07_01: I2C Display - controlling an OLED display (SH1106) over I2C, including primitive drawing and text rendering.
- Submission_08_02: UART & Control - controlling the Rainbow LED through serial commands (LPUART) for intensity and blinking patterns.
- Submission_09_02: SPI Slave - implementing an SPI slave device that reports sensor data (BMP280) and handles custom protocol commands.
- Sumbission_10_1: Python & ESP - (Python script) Serial communication with an ESP Wi-Fi module using AT commands to fetch data from a server.
- Submission_11: Character LCD - implementing a 4-bit interface driver for a standard HD44780-compatible character LCD.
- Hardware: NXP FRDM-MCXN947
- IDE: MCUXpresso IDE
- SDK: MCUXpresso SDK for MCXN947
- Open MCUXpresso IDE.
- Import the project from the specific
Submission_XXfolder. - Build the project.
- Connect the board via USB (LinkServer/CMSIS-DAP).
- Click Debug to flash and run the code.
Note: Some projects print output to the debug console. Make sure to open a terminal or use the IDE's console view to see
PRINTFmessages.