Programming of Microcontrollers
Basic information
Course coordinator Iztok Fajfar
Course type: Obvezni – strokovni
Number of ECTS credits: 5
Semester: 2. semester
Course code: 64108
Subject description
The course covers two main areas: programming in the C language in accordance with the C89 and C99 standards, and the development of applications for simple microcontroller systems. We thoroughly explore the syntax of the C language, along with techniques used for implementing well-known algorithms and data structures. Special attention is given to language elements whose behavior is not unambiguously defined by the standard and are often the source of difficult-to-trace errors. To study the basic principles of microcontroller programming, we use the Arduino platform. We learn programming techniques for manipulating bits in registers or specific parts of memory. We explore ways to connect sensors and actuators and the basics of designing real-time embedded systems. In this context, we are introduced to the concept of finite state machines as a design tool. We clarify the concept of interrupts, which is crucial for understanding event-driven systems. The course concludes with practical examples of designing a digital clock and a dimmer switch.
Objectives
In-depth knowledge of the fundamentals of the C programming language and familiarization with the basics of embedded systems, principles of multitasking systems and real-time systems, as well as methods of connecting peripheral devices and communicating with them.
Teaching and learning methods
Two hours of lectures and two hours of hands-on exercises per week, lecture recordings, textbook, homework assignments, individual work with more advanced students.