#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);
}