Advertisement
Guest User

Untitled

a guest
Sep 4th, 2021
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.16 KB | None | 0 0
  1. /* USER CODE BEGIN Header */
  2. /**
  3. ******************************************************************************
  4. * @file : main.c
  5. * @brief : Main program body
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
  10. * All rights reserved.</center></h2>
  11. *
  12. * This software component is licensed by ST under BSD 3-Clause license,
  13. * the "License"; You may not use this file except in compliance with the
  14. * License. You may obtain a copy of the License at:
  15. * opensource.org/licenses/BSD-3-Clause
  16. *
  17. ******************************************************************************
  18. */
  19. /* USER CODE END Header */
  20.  
  21. /* Includes ------------------------------------------------------------------*/
  22. #include "main.h"
  23.  
  24. /* Private includes ----------------------------------------------------------*/
  25. /* USER CODE BEGIN Includes */
  26.  
  27.  
  28. //write an image in black/white
  29. const unsigned char gImage_1[4000] = { /* 0X01,0X01,0XFA,0X00,0X7A,0X00, */
  30. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  31. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  32. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  33. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  34. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  35. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  36. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  37. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  38. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  39. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  40. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  41. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  42. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X1F,0XFF,0XFF,0XFF,0XC0,
  43. 0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0X9B,0XF3,0XFF,0XFF,0XF0,0X0F,0XFF,0XFF,0XFF,0XC0,
  44. 0XFF,0XC0,0X00,0X00,0X3F,0X9F,0X13,0XE3,0XFF,0XFF,0XE7,0XE7,0XC0,0X00,0X03,0XC0,
  45. 0XFF,0XC0,0X00,0X00,0X3F,0XBC,0X57,0X8B,0XFF,0XFF,0XEF,0XF7,0XC0,0X00,0X03,0XC0,
  46. 0XFF,0XC0,0X00,0X00,0X3F,0XB8,0XD7,0X1B,0XFF,0XFF,0XEF,0X77,0XFF,0XFF,0XFF,0XC0,
  47. 0XFF,0XC0,0X00,0X00,0X3F,0X81,0XD0,0X3B,0XFF,0XFF,0XEF,0X77,0XFF,0XFF,0XFF,0XC0,
  48. 0XFF,0XC0,0X1F,0XFC,0X3F,0XC7,0XD8,0XFB,0XFF,0XFF,0XE7,0X07,0XFF,0XFF,0XFF,0XC0,
  49. 0XFF,0XC0,0X1F,0XFC,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0X0F,0XFF,0XFF,0XFF,0XC0,
  50. 0XFF,0XC0,0X00,0X0C,0X3F,0XFF,0XFC,0X77,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  51. 0XFF,0XC0,0X00,0X0C,0X3F,0XFF,0X90,0X73,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  52. 0XFF,0XC0,0X00,0X0C,0X3F,0XFF,0X92,0XFB,0XFF,0XFF,0XFE,0X0F,0XC0,0X00,0X03,0XC0,
  53. 0XFF,0XC0,0X00,0X0C,0X3F,0XFF,0XF6,0XFB,0XFF,0XFF,0XFC,0X07,0XC0,0X00,0X03,0XC0,
  54. 0XFF,0XC1,0XFF,0X8C,0X3F,0XFF,0XF6,0X03,0XFF,0XFF,0XFD,0XF7,0XC0,0X00,0X03,0XC0,
  55. 0XFF,0XC1,0XFF,0X8C,0X3F,0XE7,0XF7,0X07,0XFF,0XFF,0XFD,0XF7,0XFF,0XFF,0XFF,0XC0,
  56. 0XFF,0XC1,0X81,0X8C,0X3F,0XCF,0XFF,0XFF,0XFF,0XFF,0XFC,0X07,0XFF,0XFF,0XFF,0XC0,
  57. 0XFF,0XC1,0X81,0X8C,0X3F,0X80,0X18,0X07,0XFF,0XFF,0XFE,0X0F,0XFF,0XFF,0XFF,0XC0,
  58. 0XFF,0XC1,0X81,0X8C,0X3F,0X80,0X10,0X03,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  59. 0XFF,0XC1,0X81,0X80,0X3F,0XFF,0XF7,0XFB,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  60. 0XFF,0XC1,0X81,0X80,0X3F,0XFF,0XF7,0XFB,0XFF,0XFF,0XFE,0X0F,0XC0,0X00,0X03,0XC0,
  61. 0XFF,0XC0,0X00,0X00,0X3F,0XDF,0XB0,0X03,0XFF,0XFF,0XFC,0X07,0XFF,0XFF,0XFF,0XC0,
  62. 0XFF,0XC0,0X18,0X1C,0X3F,0X9F,0X98,0X07,0XFF,0XFF,0XFD,0XF7,0XFF,0XFF,0XFF,0XC0,
  63. 0XFF,0XC0,0X18,0X1C,0X3F,0XBB,0XDF,0XFF,0XFF,0XFF,0XFD,0XF7,0XFF,0XFF,0XFF,0XC0,
  64. 0XFF,0XC0,0X18,0X1C,0X3F,0XBB,0XDF,0XFF,0XFF,0XFF,0XFC,0X07,0XFF,0XFF,0XFF,0XC0,
  65. 0XFF,0XC0,0X18,0X1C,0X3F,0X80,0X1E,0X73,0XFF,0XFF,0XFE,0X0F,0XFF,0XFF,0XFF,0XC0,
  66. 0XFF,0XC0,0X18,0X1C,0X3F,0XC4,0X3E,0X23,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  67. 0XFF,0XC0,0X1F,0XFC,0X3F,0XFF,0XFF,0X8F,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  68. 0XFF,0XC0,0X1F,0XFC,0X3F,0XFF,0XFF,0X8F,0XFF,0XFF,0XFE,0X0F,0XFF,0XFF,0XFF,0XC0,
  69. 0XFF,0XC0,0X1F,0XFC,0X3F,0XFF,0XFE,0X23,0XFF,0XFF,0XFC,0X07,0XFF,0XFF,0XFF,0XC0,
  70. 0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFE,0X73,0XFF,0XFF,0XFD,0XF7,0XFF,0XFF,0XFF,0XC0,
  71. 0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XEF,0XFF,0XFF,0XFF,0XC0,
  72. 0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X07,0XC0,0X00,0X03,0XC0,
  73. 0XFF,0XC0,0X00,0X00,0X3F,0XFF,0XFC,0XFF,0XFF,0XFF,0XE0,0X07,0XC0,0X00,0X03,0XC0,
  74. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF9,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  75. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  76. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X03,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  77. 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  78. 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  79. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFB,0XF3,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  80. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF3,0XE3,0XFF,0XFF,0XE0,0X07,0XC0,0X00,0X03,0XC0,
  81. 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X17,0X8B,0XFF,0XFF,0XE0,0X07,0XC0,0X00,0X03,0XC0,
  82. 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X17,0X1B,0XFF,0XFF,0XEF,0XF7,0XC0,0X00,0X03,0XC0,
  83. 0XFF,0XFF,0XFF,0XFF,0XFF,0XC7,0XF0,0X3B,0XFF,0XFF,0XEF,0XF7,0XC0,0X00,0X03,0XC0,
  84. 0XFF,0XFF,0XFF,0XFF,0XFF,0XF1,0XF8,0XFB,0XFF,0XFF,0XE7,0XE7,0XC0,0X00,0X03,0XC0,
  85. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X7F,0XFF,0XFF,0XFF,0XF0,0X0F,0XC0,0X00,0X03,0XC0,
  86. 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X1B,0XF3,0XFF,0XFF,0XF8,0X1F,0XC0,0X00,0X03,0XC0,
  87. 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X13,0XE3,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  88. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0X8B,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  89. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0X1B,0XFF,0XFF,0XE4,0X07,0XFF,0XFF,0XFF,0XC0,
  90. 0XFF,0XFF,0XFF,0XFF,0XFF,0XE0,0X70,0X3B,0XFF,0XFF,0XE4,0X07,0XC0,0X00,0X03,0XC0,
  91. 0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X38,0XFB,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  92. 0XFF,0XFF,0XFF,0XFF,0XFF,0X9F,0X9F,0XFF,0XFF,0XFF,0XFE,0X6F,0XFF,0XFF,0XFF,0XC0,
  93. 0XFF,0XFF,0XFF,0XFF,0XFF,0XBF,0XDF,0XFF,0XFF,0XFF,0XFC,0X27,0XFF,0XFF,0XFF,0XC0,
  94. 0XFF,0XFF,0XFF,0XFF,0XFF,0XBF,0XDF,0XFF,0XFF,0XFF,0XFD,0X37,0XC0,0X00,0X03,0XC0,
  95. 0XFF,0XFF,0XFF,0XFF,0XFF,0XBF,0XDF,0XFF,0XFF,0XFF,0XFD,0X97,0XC0,0X00,0X03,0XC0,
  96. 0XFF,0XFF,0XFF,0XFF,0XFF,0X9F,0X9F,0XFF,0XFF,0XFF,0XFC,0X87,0XFF,0XFF,0XFF,0XC0,
  97. 0XFF,0XFF,0XFF,0XFF,0XFF,0XDF,0XBF,0XFF,0XFF,0XFF,0XFE,0XCF,0XFF,0XFF,0XFF,0XC0,
  98. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  99. 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X1E,0X03,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XFF,0XC0,
  100. 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X1E,0XFB,0XFF,0XFF,0XFC,0X00,0XFF,0XFF,0XFF,0XC0,
  101. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFB,0XFF,0X77,0XFF,0XFF,0XFE,0XEF,0XFF,0XFF,0XFF,0XC0,
  102. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFB,0XF0,0X03,0XFF,0XFF,0XFD,0XF7,0XFF,0XFF,0XFF,0XC0,
  103. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFB,0XF0,0X03,0XFF,0XFF,0XFC,0X07,0XC0,0X00,0X03,0XC0,
  104. 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X1F,0XFF,0XFF,0XFF,0XFE,0X0F,0XC0,0X00,0X03,0XC0,
  105. 0XFF,0XFF,0XFF,0XFF,0XFF,0X80,0X1F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  106. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  107. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XE0,0X07,0XFF,0XFF,0XFF,0XC0,
  108. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFB,0XFF,0XFF,0XE0,0X07,0XFF,0XFF,0XFF,0XC0,
  109. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFB,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  110. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X03,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  111. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X07,0XFF,0XFF,0XFE,0XCF,0XC0,0X00,0X03,0XC0,
  112. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFD,0X87,0XFF,0XFF,0XFF,0XC0,
  113. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFF,0XFF,0XFF,0XFD,0X37,0XFF,0XFF,0XFF,0XC0,
  114. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X07,0XFF,0XFF,0XFD,0X77,0XC0,0X00,0X03,0XC0,
  115. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF8,0X03,0XFF,0XFF,0XFC,0X07,0XC0,0X00,0X03,0XC0,
  116. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XFB,0XFF,0XFF,0XFE,0X07,0XFF,0XFF,0XFF,0XC0,
  117. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X37,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  118. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X13,0XFF,0XFF,0XFC,0XFE,0XC0,0X00,0X03,0XC0,
  119. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X9B,0XFF,0XFF,0XFC,0X1E,0XC0,0X00,0X03,0XC0,
  120. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0XCB,0XFF,0XFF,0XFF,0X00,0XFF,0XFF,0XFF,0XC0,
  121. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFE,0X43,0XFF,0XFF,0XFF,0XE0,0XFF,0XFF,0XFF,0XC0,
  122. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X67,0XFF,0XFF,0XFF,0X03,0XFF,0XFF,0XFF,0XC0,
  123. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0X1F,0XFF,0XFF,0XFF,0XC0,
  124. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFC,0XFF,0XFF,0XFF,0XFF,0XC0,
  125. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  126. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  127. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  128. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  129. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  130. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  131. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  132. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  133. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  134. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  135. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  136. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  137. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  138. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  139. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  140. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  141. 0XFF,0X80,0X00,0X00,0X00,0X00,0X38,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  142. 0XFF,0X80,0X00,0X00,0XE0,0X00,0X1C,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  143. 0XFF,0X80,0X00,0X01,0XC0,0X00,0X1C,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  144. 0XFF,0X80,0X00,0X01,0XC0,0X70,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  145. 0XFF,0X80,0X00,0X03,0X80,0X70,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  146. 0XFF,0X80,0X00,0X03,0X80,0X70,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  147. 0XFF,0X80,0X00,0X03,0X80,0X70,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  148. 0XFF,0X80,0X00,0X03,0X80,0X70,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  149. 0XFF,0X80,0X00,0X03,0X80,0XF0,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  150. 0XFF,0X80,0X00,0X03,0XC0,0XF8,0X1E,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  151. 0XFF,0X80,0X00,0X01,0XE1,0XD8,0X1C,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  152. 0XFF,0X80,0X00,0X01,0XFF,0X9C,0X3C,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  153. 0XFF,0X80,0X00,0X00,0XFF,0X1F,0XF8,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  154. 0XFF,0X80,0X00,0X00,0X3E,0X0F,0XF0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  155. 0XFF,0X80,0X00,0X00,0X00,0X03,0XE0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  156. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  157. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  158. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  159. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  160. 0XFF,0X80,0X00,0X00,0X03,0XFF,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  161. 0XFF,0X80,0X00,0X00,0X3F,0XFF,0XE0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  162. 0XFF,0X80,0X00,0X00,0X7F,0XFF,0XF8,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  163. 0XFF,0X80,0X00,0X00,0XFC,0X00,0XFC,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  164. 0XFF,0X80,0X00,0X01,0XE0,0X00,0X3C,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  165. 0XFF,0X80,0X00,0X03,0XC0,0X00,0X1E,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  166. 0XFF,0X80,0X00,0X03,0X80,0X00,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  167. 0XFF,0X80,0X00,0X03,0X80,0X00,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  168. 0XFF,0X80,0X00,0X03,0X80,0X00,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  169. 0XFF,0X80,0X00,0X03,0X80,0X00,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  170. 0XFF,0X80,0X00,0X03,0XC0,0X00,0X1E,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  171. 0XFF,0X80,0X00,0X01,0XE0,0X00,0X3C,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  172. 0XFF,0X80,0X00,0X01,0XF8,0X00,0XF8,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  173. 0XFF,0X80,0X00,0X00,0XFF,0XFF,0XF0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  174. 0XFF,0X80,0X00,0X00,0X3F,0XFF,0XE0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  175. 0XFF,0X80,0X00,0X00,0X07,0XFF,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  176. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  177. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  178. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  179. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  180. 0XFF,0X80,0X00,0X00,0X3F,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  181. 0XFF,0X80,0X00,0X00,0XFF,0X80,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  182. 0XFF,0X80,0X00,0X01,0XC1,0XC0,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  183. 0XFF,0X80,0X00,0X03,0X80,0XE0,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  184. 0XFF,0X80,0X00,0X03,0X00,0X60,0X02,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  185. 0XFF,0X80,0X00,0X03,0X00,0X60,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XC0,0X00,0X03,0XC0,
  186. 0XFF,0X80,0X00,0X03,0X00,0X60,0X1E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  187. 0XFF,0X80,0X00,0X03,0X80,0XE0,0X7C,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  188. 0XFF,0X80,0X00,0X01,0XC1,0XC1,0XF8,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  189. 0XFF,0X80,0X00,0X00,0XFF,0X83,0XE0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  190. 0XFF,0X80,0X00,0X00,0X7E,0X0F,0X80,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  191. 0XFF,0X80,0X00,0X00,0X00,0X3F,0X00,0X00,0X00,0X7F,0XFF,0X07,0XFF,0X1F,0XFF,0XC0,
  192. 0XFF,0X80,0X00,0X00,0X00,0X7C,0X00,0X00,0X00,0X7F,0XFC,0X01,0XFF,0X8F,0XFF,0XC0,
  193. 0XFF,0X80,0X00,0X00,0X01,0XF0,0X00,0X00,0X00,0X7F,0XFC,0X00,0XFF,0X8F,0XFF,0XC0,
  194. 0XFF,0X80,0X00,0X00,0X07,0XE0,0X00,0X00,0X00,0X7F,0XF8,0X70,0XFF,0XC7,0XFF,0XC0,
  195. 0XFF,0X80,0X00,0X00,0X0F,0X83,0XF0,0X00,0X00,0X7F,0XF0,0XFC,0X7F,0XC7,0XFF,0XC0,
  196. 0XFF,0X80,0X00,0X00,0X3E,0X0F,0XF8,0X00,0X00,0X7F,0XF1,0XFC,0X3F,0XC7,0XFF,0XC0,
  197. 0XFF,0X80,0X00,0X00,0XFC,0X1C,0X1C,0X00,0X00,0X7F,0X80,0X00,0X00,0X00,0X7F,0XC0,
  198. 0XFF,0X80,0X00,0X01,0XF0,0X38,0X0E,0X00,0X00,0X7F,0X80,0X00,0X00,0X00,0X7F,0XC0,
  199. 0XFF,0X80,0X00,0X03,0XC0,0X30,0X06,0X00,0X00,0X7F,0X80,0X00,0X00,0X00,0X7F,0XC0,
  200. 0XFF,0X80,0X00,0X03,0X80,0X30,0X06,0X00,0X00,0X7F,0XF1,0XFF,0X1F,0XC7,0XFF,0XC0,
  201. 0XFF,0X80,0X00,0X02,0X00,0X30,0X06,0X00,0X00,0X7F,0XF1,0XFF,0X0F,0X8F,0XFF,0XC0,
  202. 0XFF,0X80,0X00,0X00,0X00,0X38,0X0E,0X00,0X00,0X7F,0XF8,0XFF,0X80,0X0F,0XFF,0XC0,
  203. 0XFF,0X80,0X00,0X00,0X00,0X1C,0X1C,0X00,0X00,0X7F,0XFC,0X7F,0XC0,0X1F,0XFF,0XC0,
  204. 0XFF,0X80,0X00,0X00,0X00,0X0F,0XF8,0X00,0X00,0X7F,0XFF,0XFF,0XF0,0X7F,0XFF,0XC0,
  205. 0XFF,0X80,0X00,0X00,0X00,0X07,0XE0,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  206. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  207. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  208. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  209. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  210. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0XFF,0XFF,0XFF,0XFF,0XC0,
  211. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0XFF,0XFF,0XFF,0XFF,0XC0,
  212. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0XFF,0XFF,0XFF,0XFF,0XC0,
  213. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0XFF,0XFF,0XF7,0XFF,0XC0,
  214. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0XFF,0XFF,0X87,0XFF,0XC0,
  215. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0XFF,0XFC,0X07,0XFF,0XC0,
  216. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0XFF,0XE0,0X0F,0XFF,0XC0,
  217. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0XFF,0X80,0X7F,0XFF,0XC0,
  218. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0XFC,0X03,0XFF,0XFF,0XC0,
  219. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0XE0,0X0F,0XFF,0XFF,0XC0,
  220. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XF1,0X00,0X7F,0XFF,0XFF,0XC0,
  221. 0XFF,0X80,0X00,0X00,0X00,0X1F,0XC0,0X00,0X00,0X7F,0XF0,0X01,0XFF,0XFF,0XFF,0XC0,
  222. 0XFF,0X80,0X00,0X00,0X00,0X7F,0XF0,0X00,0X00,0X7F,0XF0,0X0F,0XFF,0XFF,0XFF,0XC0,
  223. 0XFF,0X80,0X00,0X00,0X01,0XFF,0XF8,0X00,0X00,0X7F,0XF0,0X7F,0XFF,0XFF,0XFF,0XC0,
  224. 0XFF,0X80,0X00,0X00,0X03,0XE0,0X7C,0X00,0X00,0X7F,0XF1,0XFF,0XFF,0XFF,0XFF,0XC0,
  225. 0XFF,0X80,0X00,0X00,0X03,0XC0,0X3C,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  226. 0XFF,0X80,0X00,0X00,0X07,0X80,0X1E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  227. 0XFF,0X80,0X00,0X00,0X07,0X00,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  228. 0XFF,0X80,0X00,0X00,0X07,0X00,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  229. 0XFF,0X80,0X00,0X00,0X07,0X00,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  230. 0XFF,0X80,0X00,0X00,0X07,0X00,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XCF,0XFF,0XC0,
  231. 0XFF,0X80,0X00,0X00,0X07,0X00,0X0E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0X87,0XFF,0XC0,
  232. 0XFF,0X80,0X00,0X00,0X07,0X80,0X1E,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0X87,0XFF,0XC0,
  233. 0XFF,0X80,0X00,0X00,0X03,0X80,0X1C,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XCF,0XFF,0XC0,
  234. 0XFF,0X80,0X00,0X00,0X03,0XE0,0X7C,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  235. 0XFF,0X80,0X00,0X00,0X01,0XFF,0XF8,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  236. 0XFF,0X80,0X00,0X00,0X00,0XFF,0XE0,0X00,0X00,0X7F,0XFF,0XFF,0XFE,0X7F,0XFF,0XC0,
  237. 0XFF,0X80,0X00,0X00,0X00,0X3F,0X80,0X00,0X00,0X7F,0XFF,0XFF,0XF8,0X7F,0XFF,0XC0,
  238. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XF0,0X7F,0XFF,0XC0,
  239. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XC6,0X7F,0XFF,0XC0,
  240. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0X8E,0X7F,0XFF,0XC0,
  241. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFE,0X3E,0X7F,0XFF,0XC0,
  242. 0XFF,0X80,0X00,0X00,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFC,0X7E,0X7F,0XFF,0XC0,
  243. 0XFF,0X80,0X00,0X00,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XF1,0XFE,0X7F,0XFF,0XC0,
  244. 0XFF,0X80,0X00,0X00,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XF0,0X00,0X07,0XFF,0XC0,
  245. 0XFF,0X80,0X00,0X01,0XFF,0XFF,0XFE,0X00,0X00,0X7F,0XFF,0XF0,0X00,0X07,0XFF,0XC0,
  246. 0XFF,0X80,0X00,0X03,0XFF,0XFF,0XFE,0X00,0X00,0X7F,0XFF,0XFF,0XFE,0X7F,0XFF,0XC0,
  247. 0XFF,0X80,0X00,0X07,0XFF,0XFF,0XFE,0X00,0X00,0X7F,0XFF,0XFF,0XFE,0X7F,0XFF,0XC0,
  248. 0XFF,0X80,0X00,0X0F,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  249. 0XFF,0X80,0X00,0X0E,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  250. 0XFF,0X80,0X00,0X0E,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  251. 0XFF,0X80,0X00,0X0E,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFE,0X0F,0XFF,0XFF,0XC0,
  252. 0XFF,0X80,0X00,0X0E,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFC,0X03,0XCF,0XFF,0XC0,
  253. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XF8,0XE3,0XE7,0XFF,0XC0,
  254. 0XFF,0X80,0X00,0X00,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XF1,0XF1,0XE7,0XFF,0XC0,
  255. 0XFF,0X80,0X00,0X00,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XF3,0XF9,0XE7,0XFF,0XC0,
  256. 0XFF,0X80,0X00,0X00,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XF3,0XF9,0XE7,0XFF,0XC0,
  257. 0XFF,0X80,0X00,0X01,0XFF,0XFF,0XFE,0X00,0X00,0X7F,0XFF,0XF3,0XF9,0XC7,0XFF,0XC0,
  258. 0XFF,0X80,0X00,0X03,0XFF,0XFF,0XFE,0X00,0X00,0X7F,0XFF,0XF1,0XFB,0XCF,0XFF,0XC0,
  259. 0XFF,0X80,0X00,0X07,0XFF,0XFF,0XFE,0X00,0X00,0X7F,0XFF,0XF8,0XF3,0X1F,0XFF,0XC0,
  260. 0XFF,0X80,0X00,0X0F,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFC,0X00,0X3F,0XFF,0XC0,
  261. 0XFF,0X80,0X00,0X0E,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0X00,0XFF,0XFF,0XC0,
  262. 0XFF,0X80,0X00,0X0E,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  263. 0XFF,0X80,0X00,0X0E,0X07,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  264. 0XFF,0X80,0X00,0X0E,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  265. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  266. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  267. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  268. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  269. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  270. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  271. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  272. 0XFF,0X80,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  273. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  274. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  275. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  276. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  277. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  278. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  279. 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XC0,
  280. };
  281.  
  282.  
  283. /* USER CODE END Includes */
  284.  
  285. /* Private typedef -----------------------------------------------------------*/
  286. /* USER CODE BEGIN PTD */
  287.  
  288. /* USER CODE END PTD */
  289.  
  290. /* Private define ------------------------------------------------------------*/
  291. /* USER CODE BEGIN PD */
  292.  
  293. /* USER CODE END PD */
  294.  
  295. /* Private macro -------------------------------------------------------------*/
  296. /* USER CODE BEGIN PM */
  297.  
  298. /* USER CODE END PM */
  299.  
  300. /* Private variables ---------------------------------------------------------*/
  301. SPI_HandleTypeDef hspi1;
  302.  
  303. /* USER CODE BEGIN PV */
  304.  
  305. /* USER CODE END PV */
  306.  
  307. /* Private function prototypes -----------------------------------------------*/
  308. void SystemClock_Config(void);
  309. static void MX_GPIO_Init(void);
  310. static void MX_SPI1_Init(void);
  311. /* USER CODE BEGIN PFP */
  312.  
  313. /* USER CODE END PFP */
  314.  
  315. /* Private user code ---------------------------------------------------------*/
  316. /* USER CODE BEGIN 0 */
  317. uint8_t aTxBuffer[8];
  318. uint8_t aRxBuffer[8];
  319.  
  320. void writeCommand(uint8_t command)
  321. {
  322. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, 0);
  323. aTxBuffer[0]=command;
  324. HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, 0);
  325. if (HAL_SPI_TransmitReceive(&hspi1, (uint8_t*)aTxBuffer, (uint8_t *)aRxBuffer, 1, 5000) != HAL_OK) { Error_Handler(); }
  326. HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, 1);
  327. HAL_Delay(1);
  328. }
  329.  
  330. void writeData(uint8_t data)
  331. {
  332. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, 1);
  333. aTxBuffer[0]=data;
  334. HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, 0);
  335. if (HAL_SPI_TransmitReceive(&hspi1, (uint8_t*)aTxBuffer, (uint8_t *)aRxBuffer, 1, 5000) != HAL_OK) { Error_Handler(); }
  336. HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, 1);
  337. HAL_Delay(1);
  338. }
  339.  
  340. void waitBusy(void)
  341. {
  342. HAL_Delay(1);
  343. while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8) == 1) { HAL_Delay(1); }
  344. }
  345.  
  346. /* USER CODE END 0 */
  347. /**
  348. * @brief The application entry point.
  349. * @retval int
  350. */
  351. int main(void)
  352. {
  353. /* USER CODE BEGIN 1 */
  354.  
  355. /* USER CODE END 1 */
  356.  
  357.  
  358. /* MCU Configuration--------------------------------------------------------*/
  359.  
  360. /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  361. HAL_Init();
  362.  
  363. /* USER CODE BEGIN Init */
  364.  
  365. /* USER CODE END Init */
  366.  
  367. /* Configure the system clock */
  368. SystemClock_Config();
  369.  
  370. /* USER CODE BEGIN SysInit */
  371.  
  372. /* USER CODE END SysInit */
  373.  
  374. /* Initialize all configured peripherals */
  375. MX_GPIO_Init();
  376. MX_SPI1_Init();
  377. /* USER CODE BEGIN 2 */
  378.  
  379.  
  380. //A12 is for reset; A11 is for D/C; B12 is for CS
  381. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, 1);
  382. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, 1);
  383. HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, 1);
  384. HAL_Delay(100);
  385.  
  386. while(HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_8) == 1) { HAL_Delay(1); }
  387.  
  388. //hard reset
  389. HAL_Delay(10);
  390. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, 0);
  391. HAL_Delay(10);
  392. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, 1);
  393. HAL_Delay(10);
  394.  
  395. //wait until busy pin is low
  396. waitBusy();
  397.  
  398. //soft reset
  399. writeCommand(0x12);
  400. waitBusy();
  401. HAL_Delay(10);
  402. waitBusy(); //this one is atually in flow chart
  403.  
  404. //set analog/digital block control; whatever that means
  405. /*writeCommand(0x74);
  406. writeData(0x54);
  407. waitBusy();
  408. writeCommand(0x7E);
  409. writeData(0x3B);
  410. waitBusy();*/
  411.  
  412. //set number of gates; whatever that means
  413. writeCommand(0x01);
  414. writeData(0xD3);
  415. writeData(0x00);
  416. writeData(0x00);
  417. waitBusy();
  418.  
  419. //data entry sequence; y decrement x increment
  420. writeCommand(0x11);
  421. writeData(0x01);
  422. waitBusy();
  423.  
  424. //Set RAMX Start/end position
  425. writeCommand(0x44);
  426. writeData(0x00);
  427. writeData(0x0C);
  428. waitBusy();
  429. //Set RAMY Start/end position
  430. writeCommand(0x45);
  431. writeData(0xD3);
  432. writeData(0x00);
  433. writeData(0x00);
  434. writeData(0x00);
  435. waitBusy();
  436.  
  437. //panel border waveform control
  438. writeCommand(0x3C);
  439. writeData(0x80); //VCOM
  440. waitBusy();
  441.  
  442. //use internal temperature sensor
  443. writeCommand(0x18);
  444. writeData(0x80);
  445. waitBusy();
  446.  
  447. //enable for master activation???
  448. writeCommand(0x22);
  449. writeData(0xB1);
  450. HAL_Delay(10);
  451. waitBusy(); //this one is atually in flow chart
  452.  
  453. //load LUT???
  454. writeCommand(0x20);
  455. HAL_Delay(10);
  456. waitBusy(); //this one is atually in flow chart
  457.  
  458.  
  459. //Set RAMX address counter
  460. writeCommand(0x4E);
  461. writeData(0x00);
  462. waitBusy();
  463. //Set RAMY address counter
  464. writeCommand(0x4F);
  465. writeData(0xD3);
  466. writeData(0x00);
  467. waitBusy();
  468.  
  469. //Write BW RAM
  470. writeCommand(0x24);
  471. for(int i=0; i<2756; i++)
  472. {
  473. writeData(gImage_1[i]);
  474. }
  475. waitBusy();
  476.  
  477. //Set RAMX address counter
  478. writeCommand(0x4E);
  479. writeData(0x00);
  480. waitBusy();
  481. //Set RAMY address counter
  482. writeCommand(0x4F);
  483. writeData(0xD3);
  484. writeData(0x00);
  485. waitBusy();
  486.  
  487. //Write Red RAM
  488. writeCommand(0x26);
  489. for(int i=0; i<2756; i++)
  490. {
  491. writeData(gImage_1[i]);
  492. }
  493. waitBusy();
  494.  
  495. //enable softstart settings, here I just max everything???
  496. writeCommand(0x0C);
  497. writeData(0xFF);
  498. writeData(0xFF);
  499. writeData(0xFF);
  500. writeData(0x3F);
  501. waitBusy();
  502.  
  503. //Display update sequence setting: Start Display
  504. writeCommand(0x22);
  505. writeData(0xC7); //unclear why using 0x22 twice
  506. waitBusy();
  507.  
  508. //actually write the screen
  509. writeCommand(0x20);
  510. HAL_Delay(10);
  511. waitBusy(); //this one is atually in flow chart
  512.  
  513. //Enter Deepsleep
  514. writeCommand(0x10);
  515. writeData(0x01);
  516. waitBusy();
  517.  
  518.  
  519. /* USER CODE END 2 */
  520.  
  521. /* Infinite loop */
  522. /* USER CODE BEGIN WHILE */
  523. while (1)
  524. {
  525. /* USER CODE END WHILE */
  526.  
  527. /* USER CODE BEGIN 3 */
  528. HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
  529. HAL_Delay(200);
  530.  
  531. /*HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, 0);
  532. aTxBuffer[0]=0x10;
  533. if (HAL_SPI_TransmitReceive(&hspi1, (uint8_t*)aTxBuffer, (uint8_t *)aRxBuffer, 1, 5000) != HAL_OK) { Error_Handler(); }
  534.  
  535. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, 1);
  536. aTxBuffer[0]=0x00;
  537. if (HAL_SPI_TransmitReceive(&hspi1, (uint8_t*)aTxBuffer, (uint8_t *)aRxBuffer, 1, 5000) != HAL_OK) { Error_Handler(); }*/
  538.  
  539. /*HAL_GPIO_WritePin(GPIOA, GPIO_PIN_12, 0);
  540. aTxBuffer[0]=0x12;
  541. if (HAL_SPI_TransmitReceive(&hspi1, (uint8_t*)aTxBuffer, (uint8_t *)aRxBuffer, 1, 5000) != HAL_OK) { Error_Handler(); }*/
  542.  
  543. }
  544. /* USER CODE END 3 */
  545. }
  546.  
  547. /**
  548. * @brief System Clock Configuration
  549. * @retval None
  550. */
  551. void SystemClock_Config(void)
  552. {
  553. RCC_OscInitTypeDef RCC_OscInitStruct = {0};
  554. RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
  555.  
  556. /** Initializes the CPU, AHB and APB busses clocks
  557. */
  558. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  559. RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  560. RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
  561. RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  562. RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;
  563. RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL16;
  564. if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  565. {
  566. Error_Handler();
  567. }
  568. /** Initializes the CPU, AHB and APB busses clocks
  569. */
  570. RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
  571. |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
  572. RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  573. RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  574. RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV16;
  575. RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV16;
  576.  
  577. if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
  578. {
  579. Error_Handler();
  580. }
  581. }
  582.  
  583. /**
  584. * @brief SPI1 Initialization Function
  585. * @param None
  586. * @retval None
  587. */
  588. static void MX_SPI1_Init(void)
  589. {
  590.  
  591. /* USER CODE BEGIN SPI1_Init 0 */
  592.  
  593. /* USER CODE END SPI1_Init 0 */
  594.  
  595. /* USER CODE BEGIN SPI1_Init 1 */
  596.  
  597. /* USER CODE END SPI1_Init 1 */
  598. /* SPI1 parameter configuration*/
  599. hspi1.Instance = SPI1;
  600. hspi1.Init.Mode = SPI_MODE_MASTER;
  601. hspi1.Init.Direction = SPI_DIRECTION_2LINES;
  602. hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
  603. hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;
  604. hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
  605. hspi1.Init.NSS = SPI_NSS_SOFT;
  606. hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256;
  607. hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
  608. hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
  609. hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  610. hspi1.Init.CRCPolynomial = 10;
  611. if (HAL_SPI_Init(&hspi1) != HAL_OK)
  612. {
  613. Error_Handler();
  614. }
  615. /* USER CODE BEGIN SPI1_Init 2 */
  616.  
  617. /* USER CODE END SPI1_Init 2 */
  618.  
  619. }
  620.  
  621. /**
  622. * @brief GPIO Initialization Function
  623. * @param None
  624. * @retval None
  625. */
  626. static void MX_GPIO_Init(void)
  627. {
  628. GPIO_InitTypeDef GPIO_InitStruct = {0};
  629.  
  630. /* GPIO Ports Clock Enable */
  631. __HAL_RCC_GPIOC_CLK_ENABLE();
  632. __HAL_RCC_GPIOA_CLK_ENABLE();
  633. __HAL_RCC_GPIOB_CLK_ENABLE();
  634.  
  635. /*Configure GPIO pin Output Level */
  636. HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
  637.  
  638. /*Configure GPIO pin Output Level */
  639. HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12, GPIO_PIN_RESET);
  640.  
  641. /*Configure GPIO pin Output Level */
  642. HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11|GPIO_PIN_12, GPIO_PIN_RESET);
  643.  
  644. /*Configure GPIO pin : PC13 */
  645. GPIO_InitStruct.Pin = GPIO_PIN_13;
  646. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  647. GPIO_InitStruct.Pull = GPIO_NOPULL;
  648. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  649. HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
  650.  
  651. /*Configure GPIO pin : PB12 */
  652. GPIO_InitStruct.Pin = GPIO_PIN_12;
  653. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  654. GPIO_InitStruct.Pull = GPIO_NOPULL;
  655. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  656. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  657.  
  658. /*Configure GPIO pins : PA11 PA12 */
  659. GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12;
  660. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  661. GPIO_InitStruct.Pull = GPIO_NOPULL;
  662. GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  663. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  664.  
  665. /*Configure GPIO pin : PB8 */
  666. GPIO_InitStruct.Pin = GPIO_PIN_8;
  667. GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
  668. GPIO_InitStruct.Pull = GPIO_NOPULL;
  669. HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
  670.  
  671. }
  672.  
  673. /* USER CODE BEGIN 4 */
  674.  
  675. /* USER CODE END 4 */
  676.  
  677. /**
  678. * @brief This function is executed in case of error occurrence.
  679. * @retval None
  680. */
  681. void Error_Handler(void)
  682. {
  683. /* USER CODE BEGIN Error_Handler_Debug */
  684. /* User can add his own implementation to report the HAL error return state */
  685. while(1)
  686. {
  687. HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);
  688. HAL_Delay(33);
  689. }
  690. /* USER CODE END Error_Handler_Debug */
  691. }
  692.  
  693. #ifdef USE_FULL_ASSERT
  694. /**
  695. * @brief Reports the name of the source file and the source line number
  696. * where the assert_param error has occurred.
  697. * @param file: pointer to the source file name
  698. * @param line: assert_param error line source number
  699. * @retval None
  700. */
  701. void assert_failed(uint8_t *file, uint32_t line)
  702. {
  703. /* USER CODE BEGIN 6 */
  704. /* User can add his own implementation to report the file name and line number,
  705. tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  706. /* USER CODE END 6 */
  707. }
  708. #endif /* USE_FULL_ASSERT */
  709.  
  710. /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
  711.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement