Skip to content

OscarM-Dev/C_Upskilling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A.U.T.O.CORE

This project integrates a real-time clock calendar with a queue and a scheduler, all developed in C, tested with Ceedling, and documented with Doxygen.

Rtcc

The real time clock calendar has a control structure which stores time (hour:minutes:seconds) as well as date (day/month/year) and weekday. It also has the capacity of storing an alarm value (hours:minutes). The calendar values are updated ever time periodic task is called, it also determines if the registered alarm is active.

For more info check the documentation for rtcc.h and rtcc.c

Queue

The queue is basically a circular buffer that can handle any kind of data, its operations are related to write and read which are achieved thanks to the Tail (read index) and Head (write index) as well as the memcpy function.

For more info check the documentation for queue.h and queue.c

Scheduler

The scheduler manages the execution of timers and tasks registered in their corresponding buffers according to their timeouts and periodicity values established, this is verified every time a tick passes.

For more info check the documentation for scheduler_t.h and scheduler_t.c

Integration

The integration uses an scheduler timer for updating the real time clock calendar every second as well as 2 tasks; one for obtaining the actual time and date values and the other for printing those values, both tasks are interconnected using a queue.

For more info check the documentation for integration.h, integration.c and integration_main.c

Tests

The gcov code coverage report is in build/build_ceedling/artifacts/GcovCoverageResults.html

For more info of the unit test cases check: test_queue.c, test_scheduler_t.c and test_rtcc.c

About

Real-time clock calendar developed in C.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published