Calling BDH’s OLED functions
Lab 111 - CY8CKIT-028-SENSE Kit Lab
Last updated
Was this helpful?
Lab 111 - CY8CKIT-028-SENSE Kit Lab
Last updated
Was this helpful?
This lab demonstrates the process of controlling OLED on a PSoC 6 microcontroller.
Computer
💻
ModusToolbox™ software v3.0 or later
CY8CKIT-062S2-43012 Infineon Board
Technical Report
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);
}
Note: Before launching the program to the board, make sure that you have already connected the board to the computer through a USB cable.
🎉 Congratulations! You can now complete Lab109
GNU Arm® embedded compiler v10.3.1 (GCC_ARM
) - Default value of TOOLCHAIN
Arm® compiler v6.16 (ARM
)
IAR C/C++ compiler v9.30.1 (IAR
)
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
)
ModusToolbox™ Software Training
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 title: BILL_MTB-109 – LED Brightness using PWM via HAL
1.0.0
Lab 111: Learn basic OLED on a PSoC 6 microcontroller.
Assoc. Prof. Wiroon Sriborrirux
Mr. Sriengchhun Chheang
Mr. Sabol Socare
© BDH Corporation, 2022-2023