Real-Time Programming, Interfacing and Electronics





Offered by

ICT Engineering




Similar courses to AJP1 (especially thread programming) at your home institution. Similar courses to CAL1 (Computer Architecture and C-Programming) at your home institution.

Main purpose

The main purpose of the course is to provide students with the qualifications needed to understand central concepts and characteristics about real-time programming, and to give the students knowledge about electronics used to interface micro-controllers to a number of sensors and actuators.


Having completed this course, the student has gained knowledge in the below areas. Specifically, the student is able to:
  • Understand the basic concepts of real-time programming
  • Explain issues like deadlocks, priority inversion etc.
  • Basic understanding of datasheets for electronics components
  • Explain and understand simple electronics interfaces typically used in embedded systems
  • Understand low-level protocols (Datalink- and Physical Layers).




Having completed this course, the student should be able to:
  • Write functioning real-time programs in C using FreeRTOS
  • Analyze a simple real-time design for schedulability, deadlocks, utilization etc.
  • Design and calculate components for simple electronics interfaces
  • Design and implement low-level protocols.


Having completed this course, students should be able to:
  • master and use simple real-time operating systems
  • be able to analyze/design/describe and construct real-time programs
  • understand timers and clocks, and how they are used in real-time programming
  • understand synchronization avoiding dead-locks and priority inversion
  • understand memory management, resource sharing and control
  • be able to design and construct real-time systems using FreeRTOS and C-programming
  • be able to design simple electronic hardware interfaces to sensors and actuators
  • have knowledge to read datasheets for electronics components
  • understand low-level protocols, CRC etc.


Real-time Programming:
  • C Programming
  • Introduction to FreeRTOS
  • Real-time concepts
  • Tasks
  • Scheduling – RMS, DMPO, Arbitrary Deadlines, EDF
  • Queues
  • Timers
  • Clocks
  • Memory management
  • Resource sharing
  • Semaphores and mutexes
  • Synchronization
  • Priority Inversion
  • Priority - static, dynamic
  • Low-level protocols
  • CRC
  • Hamming-codes

Interfacing and Electronics:

  • Introduction to understand datasheets for electronics components
  • Relay drivers
  • H-Bridge and Pulse Width Modulation (PWM)
  • Analogue to digital and visa versa converters
  • Printed Circuit board design – schematics and PCB-layout


  • Unit test in C
  • Simple integration test

Teaching methods and study activities

Activities change between theory, tasks, practical exercises and lab-work.

Each group must deposit 600 DKK for loan of necessary equipment.


Paul Scherz, “Practical Electronics for Inventors”, 2nd edition McGraw-Hill, 2007, ISBN: 0-07-145281-8

Alan Burns and Andy Wellings, “Real-Time Systems and Programming Languages”, 2009, ISBN 978-0-321-41745-9 Additional notes and on-line books


Internal examination.


Four hour written exam.

All non-electronic aid allowed (except simple calculators that cannot communicate).

Grading criteria

According to the 7-point grading scale.

Mark 12
Awarded to students who have shown excellent comprehension of the below-mentioned competences. A few minor errors and shortfalls are acceptable.

Mark 02
Awarded to students for the just acceptable level of comprehension of the required competences.

Additional information

Expected workload 11 weeks of 10 lessons per week.

Required workload for students is estimated to 275 hours where approximately 2/3 is self-study including exercises and examination preparation.


Lars Bech Sørensen

Valid from

2/1/2018 12:00:00 AM

Course type

Compulsory Course for all ICT Engineering
6. semester
Embedded Engineering