• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Suche öffnen
  • English
  • Campo
  • StudOn
  • FAUdir
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
Menu Menu schließen
  • Lehrstuhl
    • Team
    • Aktuelles
    • Kontakt und Anfahrt
    • Leitbild
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Confidential Computing
      • Eingebettete Systemsoftware
      • Verteilte Systeme
    • Projekte
      • AIMBOS
      • BALu
      • BFT2Chain
      • DOSS
      • Mirador
      • NEON
      • PAVE
      • ResPECT
      • Watwa
    • Projektkampagnen
      • maRE
    • Seminar
      • Systemsoftware
    Portal Forschung
  • Publikationen
  • Lehre
    • Sommersemester 2025
      • Applied Software Architecture
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • System-Level Programming
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    • Wintersemester 2024/25
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Systemprogrammierung 2
      • Verlässliche Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Extern

Extern

Bereichsnavigation: Lehre
  • Systemnahe Programmierung in C
    • Vorlesung
      • Übung
        • Folien
        • Aufgaben
        • SPiCboard
          • Bauanleitung
            • Programmieren im CIP
              • Programmieren von zu Hause
                • libspicboard-Doku
                  • SPiC-IDE
                    • SPiCsim
                      • FAQ
                        • Projekte
                        • Linux libc-Doku
                        • Prüfung
                          • Evaluation
                            • Intern

                            libspicboard-Doku

                            • libspicboard
                            display.h
                            Go to the documentation of this file.
                            1 #ifndef _DISPLAY_H
                            2 #define _DISPLAY_H
                            3 
                            4 #include <stdint.h>
                            5 #ifdef _AVR_LIBC_VERSION__
                            6 #include <avr/pgmspace.h>
                            7 #endif
                            8 #include "check.h"
                            9 
                            10 /**
                            11  * \addtogroup Display OLED Display
                            12  *
                            13  * \brief Controls the optional 128×64 pixel monochrome OLED display
                            14  *
                            15  * The SPiCboard v3 has a TWI (two wire interface, also known as I²C),
                            16  * which can be used to connect an OLED display.
                            17  * Especially the SSD1306 monochrome OLED display fits perfectly onto the board.
                            18  * It has a 0.96 inch diameter with 128 horizontal and 64 vertical pixels.
                            19  *
                            20  * For the sake of simplicity the horizontal pixels are termed <i>columns</i>.
                            21  * The vertical pixels are divided into 8 so-called <i>pages</i>, therefore
                            22  * a byte can represent the contents of a <i>page segment</i> (with 8 pixels - from
                            23  * the <a href="https://en.wikipedia.org/wiki/Least_significant_bit">LSB</a> on
                            24  * top to the <a href="https://en.wikipedia.org/wiki/Most_significant_bit">MSB</a>
                            25  * on bottom of each page segement).
                            26  *
                            27  * \image html display_addr.png
                            28  *
                            29  * For additional details please have a look into the <a href="SSD1306.pdf">SSD1306 Datasheet</a>.
                            30  *
                            31  * In case your run into memory issues (which is quite easy with only 2 KB SRAM)
                            32  * you might want to have a look into the \ref DisplayFromFlash "FromFlash" function variants.
                            33  *
                            34  * \warning The display is quite sensitive to fluctuation of current.
                            35  * Try to avoid contact of any [semi-]conductive material (including your fingers) with the pins
                            36  * on the Xplained Mini Board -- especially connecting PC3 with PC4 -- or the connection to your display
                            37  * might stop (it stalls until you restart it, the LED on the Xplained Mini Board can indicate the error).
                            38  *
                            39  * @{
                            40  * \file display.h
                            41  * \version \$Rev: $
                            42  */
                            43 
                            44 /**
                            45  * \brief Activate (and setup) the OLED-display
                            46  *
                            47  * \retval 0 success
                            48  * \retval -1 initialization of I²C failed
                            49  * \retval -2 setting I²C device address failed
                            50  * \retval -3 writing to I²C device failed
                            51  * \retval -4 timeout during I²C communication
                            52  * \retval -5 out of bounds (addressing nonexistent page/column)
                            53  */
                            54 int8_t sb_display_enable();
                            55 
                            56 /**
                            57  * \brief Check if a functional OLED display is present
                            58  *
                            59  * Tries to connect to the SSD1306 display (I²C device address <tt>0x78</tt>)
                            60  * without enabling it.
                            61  *
                            62  * \retval 0 display is available and seems to work
                            63  * \retval <0 display not available or not functional
                            64  */
                            65 int8_t sb_display_available();
                            66 
                            67 /**
                            68  * \brief Turn the OLED display off
                            69  *
                            70  * \retval 0 success
                            71  * \retval <0 on I²C error (\see sb_display_enable() return codes)
                            72  */
                            73 int8_t sb_display_disable();
                            74 
                            75 /**
                            76  * \brief Draw a single page segment onto the OLED display
                            77  *
                            78  * \param pageNum page number (0-7) for vertical positioning the output
                            79  * \param colNum column number (0-127) for the horizontal position of the output
                            80  * \param content contents to be drawn on the page segment (LSB on top and MSB on bottom)
                            81  *
                            82  * \retval 0 success
                            83  * \retval <0 on I²C error (\see sb_display_enable() return codes)
                            84  */
                            85 int8_t sb_display_draw(uint8_t pageNum, uint8_t colNum, uint8_t content);
                            86 
                            87 /**
                            88  * \brief Draw a (rectangular) bitmap onto the OLED display
                            89  *
                            90  * The result is similar to multiple calls of sb_display_draw()
                            91  * (although the execution of this function is way faster):
                            92  * \code {.c}
                            93  * for (uint8_t page = 0; page < pageCount; page++){
                            94  * for (uint8_t col = 0; col < colCount; col++){
                            95  * sb_display_draw(pageStart + page, colStart + col, contents[page * colCount + col]);
                            96  * }
                            97  * }
                            98  * \endcode
                            99  *
                            100  * \b Example:
                            101  *
                            102  * We want to draw a square with a point in its center with some spacing
                            103  * to the to the left top corner of the screen.
                            104  *
                            105  * The bitmap will be drawn across two pages, each with eight page segments.
                            106  * \image html display_square.png
                            107  *
                            108  * Hence we first initialize an array with 2*8 elements (columns 5-12 for
                            109  * page 0 and 1) containing the contents of each page segement (1 for a white
                            110  * pixel and 0 for a black/clear one) and then transfer them to the screen.
                            111  * \include display_square.c
                            112  *
                            113  * \param pageStart first page to set the top vertical position
                            114  * \param colStart first column to set the left horizontal position
                            115  * \param pageCount number of pages to set the bottom position
                            116  * (including the first page)
                            117  * \param colCount number of columns to define the right border
                            118  * (including the first column)
                            119  * \param contents array pointing to the bitmap (must have
                            120  * <tt>pageCount * colCount</tt> elements) - or \c NULL
                            121  * to clear the area
                            122  *
                            123  * \retval 0 success
                            124  * \retval <0 on I²C error (see sb_display_enable() return codes)
                            125  */
                            126 int8_t sb_display_drawBitmap(uint8_t pageStart, uint8_t colStart, uint8_t pageCount, uint8_t colCount, const uint8_t * contents);
                            127 
                            128 /**
                            129  * \brief Draw the contents of a \c 8*128 item 8-bit array (8 pages with
                            130  * 128 columns, each filled with 8 bit) onto the OLED Display
                            131  *
                            132  * The function call is identical to
                            133  * \code {.c}
                            134  * sb_display_drawBitmap(0, 0, 8, 128, contents);
                            135  * \endcode
                            136  *
                            137  * In case the pointer is \c NULL, the entire screen will be cleared.
                            138  *
                            139  * \warning Make sure that the buffer points to an array with 1024 items -
                            140  * this is C, there is no range check!
                            141  *
                            142  * \param contents pointer to a <tt>8*128</tt> item array - or NULL
                            143  * to clear the screen
                            144  *
                            145  * \retval 0 success
                            146  * \retval <0 on I²C error (\see sb_display_enable() return codes)
                            147  */
                            148 int8_t sb_display_fillScreen(const uint8_t *contents);
                            149 
                            150 /**
                            151  * \brief Print a \c \0 terminated text string on the OLED display
                            152  * using a 8×8 pixel font
                            153  *
                            154  * A single character will fit into one page (= eight rows) and eight columns.
                            155  * Therefore it is possible to print 16 characters at maximum.
                            156  *
                            157  * If the length of the string exceeds the available columns
                            158  * (= columns right of the start column) in the current page,
                            159  * the output will \b not be continued on the next line!
                            160  *
                            161  * The font was extract from the
                            162  * <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/lib/fonts">Linux kernel</a>
                            163  * and is based on <a href="https://en.wikipedia.org/wiki/Code_page_437">code page 437</a>
                            164  * (= <a href="https://en.wikipedia.org/wiki/Extended_ASCII">extended ASCII</a>,
                            165  * every possible character has a graphical string representation).
                            166  *
                            167  * Consequently, the ASCII control characters (like line break) are
                            168  * displayed with special symbols but don't have any functional impact.
                            169  *
                            170  * The \ref fonts "Fonts Table" contains a detailed list of the available characters
                            171  *
                            172  * \warning The font will be stored on the flash which will consume about 2300 bytes.
                            173  *
                            174  * \param pageNum page number (0-7) for vertical positioning the output
                            175  * \param colStart first column to set the horizontal position of the output
                            176  * \param str 0-terminated string
                            177  *
                            178  * \retval >=0 length of printed string (can be less than strlen(str) )
                            179  * \retval <0 on I²C error (\see sb_display_enable() return codes)
                            180  */
                            181 int8_t sb_display_showString(uint8_t pageNum, uint8_t colStart, const char *str);
                            182 
                            183 /**
                            184  * \brief Print a \c \0 terminated text string with a (slightly) wider
                            185  * 8×8 pixel font onto the OLED display
                            186  *
                            187  * The character set is almost identical to the sb_display_showString() function
                            188  * and the space requirement is the same (up to 16 characters per line)
                            189  *
                            190  * The \ref fonts "Fonts Table" contains a detailed list of the
                            191  * available characters.
                            192  *
                            193  * \warning This font will consume about 2300 bytes, too.
                            194  *
                            195  * \param pageNum page number (0-7) for vertical positioning the output
                            196  * \param colStart first column to set the horizontal position of the output
                            197  * \param str 0-terminated string
                            198  *
                            199  * \retval >=0 length of printed string (can be less than strlen(str) )
                            200  * \retval <0 on I²C error (see sb_display_enable() return codes)
                            201  */
                            202 int8_t sb_display_showStringWide(uint8_t pageNum, uint8_t colStart, const char *str);
                            203 
                            204 /**
                            205  * \brief Print a \0 terminated text string on the OLED display using
                            206  * a small 6×4 pixel font
                            207  *
                            208  * A single character will fit into one page (eight rows, even though it is
                            209  * just six pixels) and four columns, therefore it is possible to print 32
                            210  * characters at maximum.
                            211  *
                            212  * If the length of the string exceeds the available columns
                            213  * (= columns right of the start column) in the current page,
                            214  * the output will not be continued on the next line!
                            215  *
                            216  * The \ref fonts "Fonts Table" contains a detailed list of the
                            217  * available characters
                            218  *
                            219  * \warning In contrast to the other \c showString functions the character set
                            220  * is quite limited - it only supports printable ASCII characters (neither
                            221  * control characters nor the extended ASCII set).
                            222  * Hence, the required flash memory consumption is (with about 700 bytes) less
                            223  * than a third of the space requirements of the other fonts.
                            224  *
                            225  * \param pageNum page number (0-7) for vertical positioning the output
                            226  * \param colStart first column to set the horizontal position of the output
                            227  * \param str 0-terminated string
                            228  *
                            229  * \retval >=0 length of printed string (can be less than strlen(str) )
                            230  * \retval <0 on I²C error (\see sb_display_enable() return codes)
                            231  */
                            232 int8_t sb_display_showStringSmall(uint8_t pageNum, uint8_t colStart, const char * str);
                            233 
                            234 /** @}*/
                            235 
                            236 /**
                            237  * \addtogroup DisplayFromFlash Display contents from Flash memory
                            238  *
                            239  * \brief Display functions enabling flash memory contents
                            240  *
                            241  * For microcontroller-based software development, memory usage is a crucial part.
                            242  * The SRAM on the Atmega 328PB (the processor of the Xplained Mini / SPiCboard v3)
                            243  * is extremly tight compared to PCs -- its 2 KB are the limiting factor for
                            244  * using the 128×64 pixel monochrome OLED display:
                            245  * Just the contents of a single screen (128×64 bits) would consume half of
                            246  * the available SRAM!
                            247  *
                            248  * But since most data is constant, this can be stored and read from the flash
                            249  * program memory (with 32 KB on this microprocessor it is sixteen times the SRAM).
                            250  *
                            251  * Due to the different address space, it is not possible to access the data in flash
                            252  * in the same way you access SRAM contents -- a special instruction is required to
                            253  * read from this memory: the \c ldm instruction (instead of \c ld).
                            254  *
                            255  * This will be done automatically by the compiler when using the
                            256  * <a href="https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Named-Address-Spaces.html">Named-Address-Space</a>
                            257  * keyword \c __flash in the variable declaration.
                            258  *
                            259  * In case you have quite an old compiler not supporting this feature,
                            260  * you have to use the <a href="http://www.nongnu.org/avr-libc/user-manual/group__avr__pgmspace.html">Program Space Utilities</a>
                            261  * from the <a href="http://www.nongnu.org/avr-libc/">AVR LibC</a>
                            262  * and not only tag the variables with the \c PROGMEM keywords but although use the \c pgm_read_byte function to access them.
                            263  *
                            264  * The following functions use the same parameters (besides the \c flash keyword)
                            265  * as their counter parts and their function name is appended by \c FromFlash
                            266  *
                            267  * @{
                            268  * \file display.h
                            269  * \version \$Rev: $
                            270  */
                            271 
                            272  /**
                            273  * \brief Draw a bitmap from the flash memory onto the OLED display
                            274  *
                            275  * Almost the same function as sb_display_drawBitmap(), but the contents are
                            276  * read from the flash (program memory) - so no SRAM is wasted.
                            277  *
                            278  * \see sb_display_drawBitmap
                            279  *
                            280  * \param pageStart first page to set the top vertical position
                            281  * \param colStart first column to set the left horizontal position
                            282  * \param pageCount number of pages to set the bottom position
                            283  * \param colCount number of columns to define the right border
                            284  * \param contents array (<tt>pageCount * colCount</tt> elements) pointing to a bitmap
                            285  * stored in the flash memory (using either
                            286  * <a href="https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gcc/Named-Address-Spaces.html">__flash</a>
                            287  * namespace or <a href="http://www.nongnu.org/avr-libc/user-manual/pgmspace.html">PROGMEM</a> macro)
                            288  *
                            289  * \retval 0 success
                            290  * \retval <0 on I²C error (see sb_display_enable() return codes)
                            291  */
                            292 #ifdef __FLASH
                            293 int8_t sb_display_drawBitmapFromFlash(uint8_t pageStart, uint8_t colStart, uint8_t pageCount, uint8_t colCount, const __flash uint8_t *contents);
                            294 #else
                            295 int8_t sb_display_drawBitmapFromFlash(uint8_t pageStart, uint8_t colStart, uint8_t pageCount, uint8_t colCount, const uint8_t * PROGMEM contents);
                            296 #endif
                            297 
                            298 /**
                            299  * \brief Draw the contents of the flash to the entire OLED display screen
                            300  *
                            301  * Almost same function as sb_display_fillScreen(), but the contents are
                            302  * read from the flash (program memory) - so no SRAM is wasted.
                            303  *
                            304  * The function call is identical to
                            305  * \code {.c}
                            306  * sb_display_drawBitmapFromFlash(0, 0, 8, 128, contents);
                            307  * \endcode
                            308  *
                            309  * \param contents pointer to a \c 8*128 item array in flash memory (using either
                            310  * <a href="https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gcc/Named-Address-Spaces.html">__flash</a>
                            311  * namespace or <a href="http://www.nongnu.org/avr-libc/user-manual/pgmspace.html">PROGMEM</a> macro)
                            312  *
                            313  * \retval 0 success
                            314  * \retval <0 on I²C error (see sb_display_enable() return codes)
                            315  */
                            316 #ifdef __FLASH
                            317 int8_t sb_display_fillScreenFromFlash(const __flash uint8_t *contents);
                            318 #else
                            319 int8_t sb_display_fillScreenFromFlash(const uint8_t * PROGMEM contents);
                            320 #endif
                            321 
                            322 /**
                            323  * \brief Print a \c \0 terminated text string from flash
                            324  * on the OLED display using a 8×8 pixel font
                            325  *
                            326  * Almost same function as sb_display_showString(), but the string is
                            327  * read from the flash (program memory) - so no SRAM is wasted.
                            328  *
                            329  * The \ref fonts "Fonts Table" contains a detailed list of the available characters
                            330  *
                            331  * It is possible to define an inline flash string using the \c PSTR macro from the
                            332  * <a href="http://www.nongnu.org/avr-libc/user-manual/pgmspace.html">Program Space Utilities</a>:
                            333  * \code {.c}
                            334  * static const __flash str[] = "Ipsum";
                            335  * sb_display_showString(0, 0, "Lorem");
                            336  * sb_display_showStringFromFlash(1, 0, str);
                            337  * sb_display_showStringFromFlash(2, 0, PSTR("dolor"));
                            338  * \endcode
                            339  * This will display \a Lorem , \a Ipsum and \a dolor on the subsequent lines,
                            340  * but only the first string will consume SRAM during runtime.
                            341  * The second and third call are different ways for reading from flash memory.
                            342  *
                            343  * \warning The font will be stored on the flash which will consume about 2300 bytes
                            344  * (but there is no additional overhead in case you are already
                            345  * using the sb_display_showString() ).
                            346  *
                            347  * \param pageNum page number (0-7) for vertical positioning the output
                            348  * \param colStart first column to set the horizontal position of the output
                            349  * \param str 0-terminated string in flash memory
                            350  *
                            351  * \retval >=0 length of printed string (can be less than strlen(str) )
                            352  * \retval <0 on I²C error (\see sb_display_enable() return codes)
                            353  */
                            354 #ifdef __FLASH
                            355 int8_t sb_display_showStringFromFlash(uint8_t pageNum, uint8_t colStart, const __flash char *str);
                            356 #else
                            357 int8_t sb_display_showStringFromFlash(uint8_t pageNum, uint8_t colStart, const char * PROGMEM str);
                            358 #endif
                            359 
                            360 /**
                            361  * \brief Print a \c \0 terminated text string from flash
                            362  * with a (slightly) wider 8×8 pixel font onto the OLED display
                            363  *
                            364  * Almost same function as sb_display_showStringWide(), but the string is
                            365  * read from the flash (program memory) - so no SRAM is wasted.
                            366  *
                            367  * The \ref fonts "Fonts Table" contains a detailed list of the
                            368  * available characters.
                            369  *
                            370  * \warning This font will consume about 2300 bytes, too (but no additional
                            371  * overhead for using sb_display_showStringWide() ).
                            372  *
                            373  * \param pageNum page number (0-7) for vertical positioning the output
                            374  * \param colStart first column to set the horizontal position of the output
                            375  * \param str 0-terminated string in flash memory
                            376  *
                            377  * \retval >=0 length of printed string (can be less than strlen(str) )
                            378  * \retval <0 on I²C error (see sb_display_enable() return codes)
                            379  */
                            380 #ifdef __FLASH
                            381 int8_t sb_display_showStringWideFromFlash(uint8_t pageNum, uint8_t colStart, const __flash char *str);
                            382 #else
                            383 int8_t sb_display_showStringWideFromFlash(uint8_t pageNum, uint8_t colStart, const char * PROGMEM str);
                            384 #endif
                            385 
                            386 /**
                            387  * \brief Print a \0 terminated text string from flash
                            388  * on the OLED display using a small 6×4 pixel font
                            389  *
                            390  * Almost same function as sb_display_showStringSmall(), but the string is
                            391  * read from the flash (program memory) - so no SRAM is wasted.
                            392  *
                            393  * The \ref fonts "Fonts Table" contains a detailed list of the
                            394  * available characters
                            395  *
                            396  * \warning This font will consume about 700 bytes (but no additional
                            397  * overhead for using sb_display_showStringSmall() ).
                            398  *
                            399  * \param pageNum page number (0-7) for vertical positioning the output
                            400  * \param colStart first column to set the horizontal position of the output
                            401  * \param str 0-terminated string from flash
                            402  *
                            403  * \retval >=0 length of printed string (can be less than strlen(str) )
                            404  * \retval <0 on I²C error (\see sb_display_enable() return codes)
                            405  */
                            406 #ifdef __FLASH
                            407 int8_t sb_display_showStringSmallFromFlash(uint8_t pageNum, uint8_t colStart, const __flash char *str);
                            408 #else
                            409 int8_t sb_display_showStringSmallFromFlash(uint8_t pageNum, uint8_t colStart, const char * PROGMEM str);
                            410 #endif
                            411 
                            412 /** @}*/
                            413 
                            414 #endif
                            415 
                            check.h
                            sb_display_drawBitmapFromFlash
                            int8_t sb_display_drawBitmapFromFlash(uint8_t pageStart, uint8_t colStart, uint8_t pageCount, uint8_t colCount, const __flash uint8_t *contents)
                            Draw a bitmap from the flash memory onto the OLED display.
                            sb_display_fillScreenFromFlash
                            int8_t sb_display_fillScreenFromFlash(const __flash uint8_t *contents)
                            Draw the contents of the flash to the entire OLED display screen.
                            sb_display_showStringWideFromFlash
                            int8_t sb_display_showStringWideFromFlash(uint8_t pageNum, uint8_t colStart, const __flash char *str)
                            Print a \0 terminated text string from flash with a (slightly) wider 8×8 pixel font onto the OLED dis...
                            sb_display_showStringFromFlash
                            int8_t sb_display_showStringFromFlash(uint8_t pageNum, uint8_t colStart, const __flash char *str)
                            Print a \0 terminated text string from flash on the OLED display using a 8×8 pixel font.
                            sb_display_showStringSmallFromFlash
                            int8_t sb_display_showStringSmallFromFlash(uint8_t pageNum, uint8_t colStart, const __flash char *str)
                            Print a \0 terminated text string from flash on the OLED display using a small 6×4 pixel font.
                            sb_display_showStringSmall
                            int8_t sb_display_showStringSmall(uint8_t pageNum, uint8_t colStart, const char *str)
                            Print a \0 terminated text string on the OLED display using a small 6×4 pixel font.
                            sb_display_fillScreen
                            int8_t sb_display_fillScreen(const uint8_t *contents)
                            Draw the contents of a 8*128 item 8-bit array (8 pages with 128 columns, each filled with 8 bit) onto...
                            sb_display_available
                            int8_t sb_display_available()
                            Check if a functional OLED display is present.
                            sb_display_enable
                            int8_t sb_display_enable()
                            Activate (and setup) the OLED-display.
                            sb_display_drawBitmap
                            int8_t sb_display_drawBitmap(uint8_t pageStart, uint8_t colStart, uint8_t pageCount, uint8_t colCount, const uint8_t *contents)
                            Draw a (rectangular) bitmap onto the OLED display.
                            sb_display_disable
                            int8_t sb_display_disable()
                            Turn the OLED display off.
                            sb_display_showStringWide
                            int8_t sb_display_showStringWide(uint8_t pageNum, uint8_t colStart, const char *str)
                            Print a \0 terminated text string with a (slightly) wider 8×8 pixel font onto the OLED display.
                            sb_display_showString
                            int8_t sb_display_showString(uint8_t pageNum, uint8_t colStart, const char *str)
                            Print a \0 terminated text string on the OLED display using a 8×8 pixel font.
                            sb_display_draw
                            int8_t sb_display_draw(uint8_t pageNum, uint8_t colNum, uint8_t content)
                            Draw a single page segment onto the OLED display.
                            Friedrich-Alexander-Universität
                            Erlangen-Nürnberg

                            Schlossplatz 4
                            91054 Erlangen
                            • Impressum
                            • Datenschutz
                            • Barrierefreiheit
                            • Facebook
                            • RSS Feed
                            • Xing
                            Nach oben