#include "main.h" #include "delay.h" #include "deviceSetup.h" #include "usart.h" #include "ascii.h" #include "timer.h" #include "i2c.h" #include "ssd1306_i2c.h" #include "lcd_oled.h" void lcd_print_main(i2c_t *i2c) { uint16_t slaveAddress = SSD1306_I2C_ADDRESS;; uint8_t text[15]="Heat Management"; uint8_t text2[]="Set :"; lcd_oled_print_text(2,21,text1,11, WHITE); uint8_t text2[]="Set :"; lcd_oled_print_text(2,21,text1,11, WHITE); uint8_t text2[]="Set :"; lcd_oled_print_text(2,21,text1,11, WHITE); uint8_t text2[]="Set :"; lcd_oled_print_text(2,21,text1,11, WHITE); uint8_t text2[]="Set :"; lcd_oled_print_text(2,21,text1,11, WHITE); i2c_init(i2c); i2c_check_device(i2c, &slaveAddress); lcd_oled_init(i2c, SSD1306_I2C_ADDRESS); lcd_oled_clear(); lcd_oled_print_text(0,5,text,15, WHITE); lcd_oled_draw_rectangle(0,16,128,48,0, WHITE); lcd_oled_display(i2c); uint8_t text1[11]="Temperature"; lcd_oled_print_text(3,21,text1,11, WHITE); uint8_t text2[5]="Set :"; lcd_oled_print_text(3,35,text2,5, WHITE); uint8_t text3[5]="Cur :"; lcd_oled_print_text(3,46,text3,5, WHITE); lcd_oled_display(i2c); } int main(int argc, char *argv[]) { uint8_t i = 0; i2c_t i2c_1 = { I2C_CH_1, /*!< The harware channel to be used */ i2c_mode_master, /*!< Master Mode */ 0x00, /*!< First and Main address of the device */ 0x00, /*!< Second address if dual addresse mode is configured */ i2c_address_count_single, /*!< Single address */ i2c_address_size_7b, /*!< 10 or 7 bit address size */ i2c_clk_speed_standart, /*!< Bus Speed: standart */ i2c_clk_stretching_disable, /*!< Clock Streching disabeled */ i2c_wake_disabled /*!< Wake up condition : None */ }; delayInitMs(8000000, 1000); // Clock Freq and Divider for ARM library pinConfig(pinB3, output, pushPull, def_res, def_speed); pinConfig(pinA0, input, def_stage, pullDown, def_speed); setupInit(); // This is the sescond call of System init the assebly start code is calling it before the main. usartInit( usart2, pinA2, pinA15, 115200, eight, NO_PARITY_CTRL, noFlowControl); //clears screen and send the wellcome messgae print_Usart(usart2, ASCII_clear); print_Usart(usart2, "Welcome to the HMD Interface\n\r"); //blinks 10 times to indicate the sicsessfull init if the device for(i = 0 ; i < 2 ; i++) { delayMs(100); pinToggle(pinB3); delayMs(100); } pinWrite(pinB3,0); lcd_print_main(&i2c_1); print_Usart(usart2, "\n\r"); print_Usart(usart2, "All Is Working fine "); print_Usart(usart2, "\n\r"); while(1) { delayMs(100); pinToggle(pinB3); delayMs(100); } return 1; }