<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://home.roboticlab.eu/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://home.roboticlab.eu/feed.php">
        <title>Robotic &amp; Microcontroller Educational Knowledgepage - Network of Excellence - en:iot-open:introductiontoembeddedprogramming2:cppfundamentals</title>
        <description></description>
        <link>https://home.roboticlab.eu/</link>
        <image rdf:resource="https://home.roboticlab.eu/_media/wiki/logo.png" />
       <dc:date>2026-04-05T00:29:22+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/analog_io?rev=1700734918&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/data_types_and_variables?rev=1700734798&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/digitalio?rev=1700516820&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/digital_io?rev=1700734903&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/functions?rev=1700734859&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/hardwarespecific?rev=1759770022&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/interrupts?rev=1700734955&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/loops?rev=1700734841&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/operators?rev=1700734810&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/programmingpatterns?rev=1716807235&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/program_structures?rev=1700734822&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/structuresandclasses?rev=1700734874&amp;do=diff"/>
                <rdf:li rdf:resource="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/timing?rev=1716807117&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://home.roboticlab.eu/_media/wiki/logo.png">
        <title>Robotic & Microcontroller Educational Knowledgepage - Network of Excellence</title>
        <link>https://home.roboticlab.eu/</link>
        <url>https://home.roboticlab.eu/_media/wiki/logo.png</url>
    </image>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/analog_io?rev=1700734918&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:21:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Manipulating analogue signals</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/analog_io?rev=1700734918&amp;do=diff</link>
        <description>Manipulating analogue signals

[ General audience classification icon ][ General audience classification icon ][ General audience classification icon ]

The analogue inputs and outputs are used when the signal can take a range of values, unlike the digital signal that takes only two values (HIGH or LOW). 

Analog input

For measuring the analogue signal, microcontrollers have built-in</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/data_types_and_variables?rev=1700734798&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:19:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Data Types and Variables</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/data_types_and_variables?rev=1700734798&amp;do=diff</link>
        <description>Data Types and Variables

[ General audience classification icon ][ General audience classification icon ]

Almost every computer program manipulates the data. Data representation in the program is variable. In C/C++, the variable needs to be defined before using it, giving it some name and assigning a chosen type, dependent on the kind of data. Some common data types and how to use variables are shown below.</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/digitalio?rev=1700516820&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-20T21:47:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Digital ports, reading inputs, outputting data</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/digitalio?rev=1700516820&amp;do=diff</link>
        <description>Digital ports, reading inputs, outputting data

Every microcontroller has many pins that can be used to connect external electronic elements. In the examples shown in previous chapters, LED was used. Such LED can be connected to a chosen General Purpose Input Output (GPIO) pin and can be controlled by setting a HIGH or LOW state. Below are some details of the functions that allow the manipulation of GPIOs using the Arduino framework. In the next chapter, analogue signals will be considered.</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/digital_io?rev=1700734903&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:21:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Digital ports, reading inputs, outputting data</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/digital_io?rev=1700734903&amp;do=diff</link>
        <description>Digital ports, reading inputs, outputting data

[ General audience classification icon ][ General audience classification icon ][ General audience classification icon ]

Every microcontroller has many pins that can be used to connect external electronic elements. In the examples shown in previous chapters, LED was used. Such LED can be connected to a chosen General Purpose Input Output (GPIO) pin and can be controlled by setting a HIGH or LOW state. Below are some details of the functions that a…</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/functions?rev=1700734859&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:20:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Sub-programs, Functions</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/functions?rev=1700734859&amp;do=diff</link>
        <description>Sub-programs, Functions

[ General audience classification icon ][ General audience classification icon ]

In many cases, the program grows to a size that becomes hardly manageable as a single unit. It isn&#039;t easy to navigate through the code that occupies many screens. In such a situation, subprograms can help. Subprograms are named functions in C and C++; while they are associated with an object, they are called methods (in this chapter, the name</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/hardwarespecific?rev=1759770022&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-06T17:00:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Hardware-specific extensions in programming</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/hardwarespecific?rev=1759770022&amp;do=diff</link>
        <description>Hardware-specific extensions in programming

[ General audience classification icon ][ General audience classification icon ][ General audience classification icon ]

Some generic programming techniques and patterns mentioned above require adaptation for different hardware platforms. It may occur whenever hardware-related aspects are in charge, e.g., accessing GPIOs, ADC conversion, timers, interrupts, multitasking (task scheduling and management), multicore management, power saving extensions a…</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/interrupts?rev=1700734955&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:22:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Interrupts</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/interrupts?rev=1700734955&amp;do=diff</link>
        <description>Interrupts

[ General audience classification icon ][ General audience classification icon ][ General audience classification icon ]

Interrupt is a signal that stops the normal execution of a program in the processor and starts the function assigned to a specific source. This function is called Interrupt Service Routine (ISR) or interrupt handler. The ISR can be recognized as a task with higher priority than the main program. Interrupt signals can be generated by the external source, like a cha…</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/loops?rev=1700734841&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:20:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Loops</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/loops?rev=1700734841&amp;do=diff</link>
        <description>Loops

[ General audience classification icon ][ General audience classification icon ]

Loops are critical to control flow structures in programming. They allow executing statements or some part of the program repeatedly to process elements of data tables and texts, making iterative calculations and data analysis. In the world of microcontrollers, where sometimes there is no operating system, the whole software works in the main loop called a super loop. It means the program never ends and work…</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/operators?rev=1700734810&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:20:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Operators, Specifiers and Pointers</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/operators?rev=1700734810&amp;do=diff</link>
        <description>Operators, Specifiers and Pointers

[ General audience classification icon ][ General audience classification icon ]

Operators represent mathematical, relational, bitwise, conditional, or logical data manipulations. There are many operators in the C/C++ language. In this chapter, the most important are presented. Logical operators will be shown in the next chapter as they are used together with conditional statements.</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/programmingpatterns?rev=1716807235&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-27T10:53:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Programming patterns</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/programmingpatterns?rev=1716807235&amp;do=diff</link>
        <description>Programming patterns

[ General audience classification icon ][ General audience classification icon ][ General audience classification icon ]

This chapter presents some programming templates and fragments of the code that are common in embedded systems. Some patterns, such as non-blocking algorithms, do not use delay(x) to hold program execution but use a timer-based approach instead. It has also been discussed in other chapters, such as in the context of timers</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/program_structures?rev=1700734822&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:20:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Program Control Statements, Logical operators</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/program_structures?rev=1700734822&amp;do=diff</link>
        <description>Program Control Statements, Logical operators

[ General audience classification icon ][ General audience classification icon ]

It is essential to understand that if no statements change the normal program flow, the microcontroller executes instructions one by one in the order they appear in the source code (from the top - to the down direction). Control statements modify normal program flow by skipping or repeating parts of the code. Often, to decide if the part of the code should be executed …</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/structuresandclasses?rev=1700734874&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-23T10:21:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Structures and Classes</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/structuresandclasses?rev=1700734874&amp;do=diff</link>
        <description>Structures and Classes

[ General audience classification icon ][ General audience classification icon ]

Structures and classes present complex data types, definable by the developer. Not all C/C++ programming environments provide support for classes (e.g., STM32 in HAL framework mode does not), but luckily, the Arduino framework supports it. Structures, conversely, are part of the C language definition and are present in almost every implementation of software frameworks for IoT microcontrolle…</description>
    </item>
    <item rdf:about="https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/timing?rev=1716807117&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-27T10:51:57+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Timing</title>
        <link>https://home.roboticlab.eu/en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/timing?rev=1716807117&amp;do=diff</link>
        <description>Timing

[ General audience classification icon ][ General audience classification icon ]

Writing code that handles interrupts from internal peripherals, for example, timers, is possible but depends strongly on the hardware. 

Time-related functions

Because this chapter presents just an introduction to programming, some essential timing functions will be shown.</description>
    </item>
</rdf:RDF>
