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