DIY Logging Volt/Ampmeter
ssd1306_tests.c
Go to the documentation of this file.
1 #include <string.h>
2 #include <stdio.h>
3 #include "ssd1306.h"
4 #include "ssd1306_tests.h"
5 
6 #include "stm32f1xx_ll_utils.h" /* LL_mDelay */
7 
10 
11  uint32_t start = HAL_GetTick();
12  uint32_t end = start;
13  uint8_t x = 0;
14  uint8_t y = 0;
15  do {
16  ssd1306_DrawPixel(x, y, Black);
17 
18  if((y == 0) && (x < 127))
19  x++;
20  else if((x == 127) && (y < (SSD1306_HEIGHT-1)))
21  y++;
22  else if((y == (SSD1306_HEIGHT-1)) && (x > 0))
23  x--;
24  else
25  y--;
26 
27  ssd1306_DrawPixel(x, y, White);
29 
30  LL_mDelay(5);
31  end = HAL_GetTick();
32  } while((end - start) < 8000);
33 
34  LL_mDelay(1000);
35 }
36 
39  ssd1306_SetCursor(2, 0);
40  ssd1306_WriteString("Font 16x26", Font_16x26, White);
41  ssd1306_SetCursor(2, 26);
42  ssd1306_WriteString("Font 11x18", Font_11x18, White);
43  ssd1306_SetCursor(2, 26+18);
44  ssd1306_WriteString("Font 7x10", Font_7x10, White);
45  ssd1306_SetCursor(2, 26+18+10);
46  ssd1306_WriteString("Font 6x8", Font_6x8, White);
48 }
49 
52 
53  uint32_t start = HAL_GetTick();
54  uint32_t end = start;
55  int fps = 0;
56  char message[] = "ABCDEFGHIJK";
57 
58  ssd1306_SetCursor(2,0);
59  ssd1306_WriteString("Testing...", Font_11x18, Black);
60 
61  do {
62  ssd1306_SetCursor(2, 18);
65 
66  char ch = message[0];
67  memmove(message, message+1, sizeof(message)-2);
68  message[sizeof(message)-2] = ch;
69 
70  fps++;
71  end = HAL_GetTick();
72  } while((end - start) < 5000);
73 
74  LL_mDelay(1000);
75 
76  char buff[64];
77  fps = (float)fps / ((end - start) / 1000.0);
78  snprintf(buff, sizeof(buff), "~%d FPS", fps);
79 
81  ssd1306_SetCursor(2, 2);
84 }
85 
87 
91  return;
92 }
93 
95  uint32_t delta;
96 
97  for(delta = 0; delta < 5; delta ++) {
98  ssd1306_DrawRectangle(1 + (5*delta),1 + (5*delta) ,SSD1306_WIDTH-1 - (5*delta),SSD1306_HEIGHT-1 - (5*delta),White);
99  }
101  return;
102 }
103 
105  uint32_t delta;
106 
107  for(delta = 0; delta < 5; delta ++) {
108  ssd1306_DrawCircle(20* delta+30, 15, 10, White);
109  }
111  return;
112 }
113 
115  ssd1306_DrawArc(30, 30, 30, 20, 270, White);
117  return;
118 }
119 
121  SSD1306_VERTEX loc_vertex[] =
122  {
123  {35,40},
124  {40,20},
125  {45,28},
126  {50,10},
127  {45,16},
128  {50,10},
129  {53,16}
130  };
131 
132  ssd1306_Polyline(loc_vertex,sizeof(loc_vertex)/sizeof(loc_vertex[0]),White);
134  return;
135 }
136 
138  ssd1306_Init();
139  ssd1306_TestFPS();
140  LL_mDelay(3000);
143  LL_mDelay(3000);
147  LL_mDelay(3000);
150  LL_mDelay(3000);
152  ssd1306_TestArc();
153  LL_mDelay(3000);
156  LL_mDelay(3000);
157 }
158 
ssd1306_TestArc
void ssd1306_TestArc()
Definition: ssd1306_tests.c:114
ssd1306_SetCursor
void ssd1306_SetCursor(uint8_t x, uint8_t y)
Definition: ssd1306.c:344
ssd1306_TestLine
void ssd1306_TestLine()
Definition: ssd1306_tests.c:86
ssd1306_DrawArc
void ssd1306_DrawArc(uint8_t x, uint8_t y, uint8_t radius, uint16_t start_angle, uint16_t sweep, SSD1306_COLOR color)
Definition: ssd1306.c:429
Black
@ Black
Definition: ssd1306.h:106
ssd1306_WriteString
char ssd1306_WriteString(char *str, FontDef Font, SSD1306_COLOR color)
Definition: ssd1306.c:327
ssd1306_TestFPS
void ssd1306_TestFPS()
Definition: ssd1306_tests.c:50
ssd1306_Polyline
void ssd1306_Polyline(const SSD1306_VERTEX *par_vertex, uint16_t par_size, SSD1306_COLOR color)
Definition: ssd1306.c:394
ssd1306_DrawCircle
void ssd1306_DrawCircle(uint8_t par_x, uint8_t par_y, uint8_t par_r, SSD1306_COLOR par_color)
Definition: ssd1306.c:468
stm32f1xx_ll_utils.h
Header file of UTILS LL module.
ssd1306_UpdateScreen
void ssd1306_UpdateScreen(void)
Definition: ssd1306.c:220
Font_11x18
FontDef Font_11x18
Definition: ssd1306_fonts.c:409
Font_16x26
FontDef Font_16x26
Definition: ssd1306_fonts.c:412
ssd1306_TestBorder
void ssd1306_TestBorder()
Definition: ssd1306_tests.c:8
LL_mDelay
void LL_mDelay(uint32_t Delay)
This function provides accurate delay (in milliseconds) based on SysTick counter flag.
Definition: stm32f1xx_ll_utils.c:182
ssd1306_DrawRectangle
void ssd1306_DrawRectangle(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, SSD1306_COLOR color)
Definition: ssd1306.c:513
ssd1306.h
SSD1306_VERTEX
Definition: ssd1306.h:123
ssd1306_TestRectangle
void ssd1306_TestRectangle()
Definition: ssd1306_tests.c:94
ssd1306_tests.h
Font_7x10
FontDef Font_7x10
Definition: ssd1306_fonts.c:406
ssd1306_Init
void ssd1306_Init(void)
Definition: ssd1306.c:94
Font_6x8
FontDef Font_6x8
Definition: ssd1306_fonts.c:403
HAL_GetTick
uint32_t HAL_GetTick(void)
SSD1306_HEIGHT
#define SSD1306_HEIGHT
Definition: ssd1306.h:92
ssd1306_TestPolyline
void ssd1306_TestPolyline()
Definition: ssd1306_tests.c:120
ssd1306_Line
void ssd1306_Line(uint8_t x1, uint8_t y1, uint8_t x2, uint8_t y2, SSD1306_COLOR color)
Definition: ssd1306.c:358
ssd1306_DrawPixel
void ssd1306_DrawPixel(uint8_t x, uint8_t y, SSD1306_COLOR color)
Definition: ssd1306.c:239
ssd1306_TestCircle
void ssd1306_TestCircle()
Definition: ssd1306_tests.c:104
White
@ White
Definition: ssd1306.h:107
SSD1306_WIDTH
#define SSD1306_WIDTH
Definition: ssd1306_conf.h:52
ssd1306_TestFonts
void ssd1306_TestFonts()
Definition: ssd1306_tests.c:37
ssd1306_Fill
void ssd1306_Fill(SSD1306_COLOR color)
Definition: ssd1306.c:199
ssd1306_TestAll
void ssd1306_TestAll()
Definition: ssd1306_tests.c:137