A collection of MCAL (Microcontroller Abstraction Layer) modules and
ECUAL (Embedded Component Abstraction Layer) interfaces for a variety
of peripherals.
Originally written for AVR/ATmega328p and PIC16F887, the code is intended
for hobby and educational projects requiring direct access to hardware.
.
├── examples/ # simple demo programs (e.g. gpio.c)
├── images/ # assorted images and assets
├── lib/
│ ├── ecual/ # high‑level drivers
│ │ ├── button/
│ │ ├── char_lcd/
│ │ ├── keypad/
│ │ ├── led/
│ │ ├── oled_display/ # see [OLED driver](#oled-driver)
│ │ ├── ultrasonic_sensors/
│ │ └── wifi_module/
│ └── mcal/ # low‑level MCU support
│ ├── atmega328p/
│ └── pic16f887/
└── simulations/ # project‑specific simulation files
- MCAL drivers for GPIO, I²C, USART, timers, ADC, interrupts, …
- ECUAL modules – ready‑to‑use interfaces for buttons, LCDs, OLEDs,
ultrasonic sensors, Wi‑Fi modules, etc. - Designed to be portable across AVR and PIC micros; adapt by swapping
themcal/*folder.
-
Clone the repository:
git clone https://github.com/your‑username/device-drivers.git cd device-drivers -
Browse the code under
lib/mcal/<your‑mcu>andlib/ecual. -
Compile an example or integrate the drivers into your own project.
(No build system included; use your preferred toolchain/IDE for AVR or PIC.)
Checkout the examples/ directory for small test programs such as
gpio.c demonstrating basic usage.
The OLED display implementation lives in lib/ecual/oled_display.
It includes source, fonts, images and even GIF routines.
Feel free to submit issues or pull requests. Open‑source drivers are
always better with more hardware support and documentation!
This project is released under the MIT License
