Calling BDH’s OLED functions
Lab 111 - CY8CKIT-028-SENSE Kit Lab
Lab Objective:
This lab demonstrates the process of controlling OLED on a PSoC 6 microcontroller.
🔥 Requirements
🚩 Let start
Create Application

Coding
Coding: Open the main.c file and add the following code to the main(void) function.
#include "cyhal.h"
#include "cybsp.h"
#include "stdio.h"
#include "cy8ckit_028_sense.h"
#include "GUI.h"
// Define function
void lcd_print_top(const char * s);
void lcd_print_bot(const char * s);
void lcd_print_line_n(const char * s,int linenum);
cyhal_i2c_t i2c;
cyhal_i2c_cfg_t i2c_cfg = {
.is_slave = false,
.address = 0,
.frequencyhal_hz = 400000
};
int main(void)
{
cy_rslt_t result;
char str[80];
/* Initialize the device and board peripherals */
result = cybsp_init();
CY_ASSERT(result == CY_RSLT_SUCCESS);
__enable_irq();
/* Initialize i2c */
result = cyhal_i2c_init(&i2c, CY8CKIT_028_SENSE_PIN_I2C_SDA, CY8CKIT_028_SENSE_PIN_I2C_SCL, NULL);
CY_ASSERT(result == CY_RSLT_SUCCESS);
result = cyhal_i2c_configure(&i2c, &i2c_cfg);
CY_ASSERT(result == CY_RSLT_SUCCESS);
/* Initialize the OLED display */
result = mtb_ssd1306_init_i2c(&i2c);
CY_ASSERT(result == CY_RSLT_SUCCESS);
GUI_Init();
for (;;)
{
lcd_print_line_n(" .--. ", 1);
lcd_print_line_n(" |o_o | ", 2);
lcd_print_line_n(" |:_/ | ", 3);
lcd_print_line_n(" // \\ \\", 4);
lcd_print_line_n("(| | )", 5);
lcd_print_line_n("/'\\_ _/`\\", 6);
lcd_print_bot("\\___)=(___/");
cyhal_system_delay_ms(1000); // Wait for 1 second before
}
}
// Create function
void lcd_print_top(const char * s){
GUI_GotoXY(0,0);
GUI_DispString(s);
}
void lcd_print_bot(const char * s){
GUI_GotoXY(0,50);
GUI_DispString(s);
}
void lcd_print_line_n(const char * s,int linenum){ //linenum is 1-6
int line = (linenum-1)*10;
GUI_GotoXY(0,line);
GUI_DispString(s);
}
Build the Application

Launching the Application

Note: Before launching the program to the board, make sure that you have already connected the board to the computer through a USB cable.
Result

🎉 Congratulations! You can now complete Lab109
Supported toolchains (make variable 'TOOLCHAIN')
GNU Arm® embedded compiler v10.3.1 (
GCC_ARM
) - Default value ofTOOLCHAIN
Arm® compiler v6.16 (
ARM
)IAR C/C++ compiler v9.30.1 (
IAR
)
Supported kits (make variable 'TARGET')
PSoC™ 62S2 Wi-Fi Bluetooth® pioneer kit (
CY8CKIT-062S2-43012
)PSoC™ 62S1 Wi-Fi Bluetooth® pioneer kit (
CYW9P62S1-43438EVB-01
)PSoC™ 62S1 Wi-Fi Bluetooth® pioneer kit (
CYW9P62S1-43012EVB-01
)PSoC™ 62S3 Wi-Fi Bluetooth® prototyping kit (
CY8CPROTO-062S3-4343W
)
Related resources
ModusToolbox™ Software Training
Other resources
Infineon provides a wealth of data at www.infineon.com to help you select the right device, and quickly and effectively integrate it into your design.
Document history
Document title: BILL_MTB-109 – LED Brightness using PWM via HAL
1.0.0
Lab 111: Learn basic OLED on a PSoC 6 microcontroller.
Authors:
Assoc. Prof. Wiroon Sriborrirux
Mr. Sriengchhun Chheang
Mr. Sabol Socare
© BDH Corporation, 2022-2023
Last updated
Was this helpful?