https://github.com/ferasaljoudi/elevatorcontrolsystem
This project was a lab assignment for ENSE 452 class
https://github.com/ferasaljoudi/elevatorcontrolsystem
c freertos-task gpio stm32cubeide stm32f103rbt6 usart
Last synced: about 2 months ago
JSON representation
This project was a lab assignment for ENSE 452 class
- Host: GitHub
- URL: https://github.com/ferasaljoudi/elevatorcontrolsystem
- Owner: ferasaljoudi
- License: mit
- Created: 2024-12-09T17:42:40.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-01-03T15:55:56.000Z (5 months ago)
- Last Synced: 2025-02-08T19:16:17.952Z (3 months ago)
- Topics: c, freertos-task, gpio, stm32cubeide, stm32f103rbt6, usart
- Language: C
- Homepage:
- Size: 1.13 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Security: SECURITY.md
Awesome Lists containing this project
README
This project was a lab assignment for ENSE 452 class
The goal of this project is to design an elevator control system using the STM32 Cortex-M3 board with FreeRTOS and hardware interrupts. The system includes a CLI for user interaction to control elevator operations such as floor selection, door opening, door closing, and maintenance mode activation.
- Using the STM32 Cortex-M3 hardware peripherals (GPIO, USART2, Timer2).
- Implement a multitasking environment with FreeRTOS.
- Enable inter-task and ISR-task communication via FreeRTOS queues.
- Provide a user-friendly CLI for runtime control and testing.
1. CLI Commands:
- `1`, `2`, `3`, `4`: Select floors.
- `o`, `c`: Open and close doors.
- `M`: Activate maintenance mode.2. Tasks:
- `StatusWindowTask` Increase the time per seconds and update the status window (Top side of terminal).
- `ProcessUserInputTask` Handles user input via CLI.
- `StartDefaultTask` Manages emergency button states.3. Interrupts:
- `Emergency Button` Triggered by EXTI0_IRQHandler to enter emergency mode.
- `UART Communication` Processes user commands.
### [Milestone.pdf](./Milestone.pdf) outlines the completed work in the first phase and future tasks for the final phase.
### [ElevatorProject.pdf](./ElevatorProject.pdf) outlines the completed work in the final phase.