oled-main.c

by Marwen Maghrebi
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "oled.h"
#include "test.h"
#include "horse_anim.h"
#include "stdio.h"

int main(void)
{
  /* USER CODE BEGIN 1 */
    char str[10];
  /* USER CODE END 1 */

  HAL_Init();
  SystemClock_Config();
  MX_GPIO_Init();
  MX_SPI1_Init();
  /* USER CODE BEGIN 2 */
        SSD1306_Init();
      
        SSD1306_GotoXY (0,0);
      SSD1306_Puts ("THE Embedded", &Font_7x10, 1);

      SSD1306_GotoXY (0, 10);
      SSD1306_Puts ("THINGS", &Font_7x10, 1);

      SSD1306_GotoXY (0, 30);
      SSD1306_Puts ("OLED Display", &Font_7x10, 1);

      SSD1306_GotoXY (0, 50);
      SSD1306_Puts ("LIKE && SUBSCRIBE", &Font_7x10, 1);
      SSD1306_UpdateScreen(); //display
      HAL_Delay(2000);

      SSD1306_ScrollRight(0,7);  // scroll entire screen
      HAL_Delay(2000);  // 2 sec
      SSD1306_ScrollLeft(0,7);  // scroll entire screen
      HAL_Delay(2000);  // 2 sec
      SSD1306_Stopscroll();
      SSD1306_ScrollRight(0x00, 0x0f);    // scroll entire screen right
      HAL_Delay (2000);
      SSD1306_ScrollLeft(0x00, 0x0f);  // scroll entire screen left
      HAL_Delay (2000);
      SSD1306_Scrolldiagright(0x00, 0x0f);  // scroll entire screen diagonal right
      HAL_Delay (2000);
      SSD1306_Scrolldiagleft(0x00, 0x0f);  // scroll entire screen diagonal left
      HAL_Delay (2000);
      SSD1306_Stopscroll();   // stop scrolling. 


      SSD1306_InvertDisplay(1);   // invert the display
      HAL_Delay(2000);
      SSD1306_InvertDisplay(0);  // normalize the display
      HAL_Delay(2000);
      SSD1306_Clear();
      
        SSD1306_GotoXY (0,0);
      SSD1306_Puts ("count to 99", &Font_7x10, 1);
      SSD1306_UpdateScreen();

      for (int i=0; i<100;i++)
      {
      sprintf(str,"%i",i);
      SSD1306_GotoXY (10, 30);
      SSD1306_Puts (str, &Font_7x10, 1);
      SSD1306_UpdateScreen();
      HAL_Delay(100);
      }

    TestLines(1);
    HAL_Delay(500);
    SSD1306_Clear();

    TestRectangles(1);
    HAL_Delay(500);
    SSD1306_Clear();

    TestFilledRectangles(1);
    HAL_Delay(500);
    SSD1306_Clear();

    TestFilledCircles(10,1);
    HAL_Delay(500);
    SSD1306_Clear();

    TestCircles(10,1);
    HAL_Delay(500);
    SSD1306_Clear();

    TestTriangles(1);
    HAL_Delay(100);
    SSD1306_Clear();

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */

    SSD1306_Clear();
    SSD1306_DrawBitmap(0,0,horse1,128,64,1);
    SSD1306_UpdateScreen();
    HAL_Delay(1);

    SSD1306_Clear();
    SSD1306_DrawBitmap(0,0,horse2,128,64,1);
    SSD1306_UpdateScreen();
    HAL_Delay(1);

    SSD1306_Clear();
    SSD1306_DrawBitmap(0,0,horse3,128,64,1);
    SSD1306_UpdateScreen();
    HAL_Delay(1);

    SSD1306_Clear();
    SSD1306_DrawBitmap(0,0,horse4,128,64,1);
    SSD1306_UpdateScreen();
    HAL_Delay(1);

    SSD1306_Clear();
    SSD1306_DrawBitmap(0,0,horse5,128,64,1);
    SSD1306_UpdateScreen();
    HAL_Delay(1);

    SSD1306_Clear();
    SSD1306_DrawBitmap(0,0,horse6,128,64,1);
    SSD1306_UpdateScreen();
    HAL_Delay(1);

    SSD1306_Clear();
    SSD1306_DrawBitmap(0,0,horse7,128,64,1);
    SSD1306_UpdateScreen();
    HAL_Delay(1);

    SSD1306_Clear();
    SSD1306_DrawBitmap(0,0,horse8,128,64,1);
    SSD1306_UpdateScreen();
    HAL_Delay(1);

    SSD1306_Clear();
    SSD1306_DrawBitmap(0,0,horse9,128,64,1);
    SSD1306_UpdateScreen();
    HAL_Delay(1);

    SSD1306_Clear();
    SSD1306_DrawBitmap(0,0,horse10,128,64,1);
    SSD1306_UpdateScreen();
    HAL_Delay(1);
  }
  /* USER CODE END 3 */
}
Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00