You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
2.6 KiB

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