Font16.c 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632
  1. // Font 2
  2. // Comment out for £ sign for character 24
  3. #define TFT_ESPI_FONT2_DOLLAR
  4. // The grave ( ` ) diacritical mark will show as a degree ( ° ) symbol
  5. // Comment out next line to return character 0x60 to the grave accent:
  6. #define TFT_ESPI_GRAVE_IS_DEGREE
  7. // Width has been increased by 1 pixel so pixel lengths are calculated correctly
  8. // for the displayed string
  9. PROGMEM const unsigned char widtbl_f16[96] = // character width table
  10. {
  11. 6, 3, 4, 9, 8, 9, 9, 3, // char 32 - 39
  12. 7, 7, 8, 6, 3, 6, 5, 7, // char 40 - 47
  13. 8, 8, 8, 8, 8, 8, 8, 8, // char 48 - 55
  14. 8, 8, 3, 3, 6, 6, 6, 8, // char 56 - 63
  15. 9, 8, 8, 8, 8, 8, 8, 8, // char 64 - 71
  16. 8, 4, 8, 8, 7, 10, 8, 8, // char 72 - 79
  17. 8, 8, 8, 8, 8, 8, 8, 10, // char 80 - 87
  18. 8, 8, 8, 4, 7, 4, 7, 9, // char 88 - 95
  19. #ifdef TFT_ESPI_GRAVE_IS_DEGREE
  20. 5, 7, 7, 7, 7, 7, 6, 7, // char 96 - 103 0x60 is degree symbol
  21. #else
  22. 4, 7, 7, 7, 7, 7, 6, 7, // char 96 - 103 0x60 is grave
  23. #endif
  24. 7, 4, 5, 6, 4, 8, 7, 8, // char 104 - 111
  25. 7, 8, 6, 6, 5, 7, 8, 8, // char 112 - 119
  26. 6, 7, 7, 5, 3, 5, 8, 6 // char 120 - 127
  27. };
  28. // Row format, MSB left
  29. PROGMEM const unsigned char chr_f16_20[16] = // 1 unsigned char per row
  30. {
  31. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
  32. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  33. };
  34. PROGMEM const unsigned char chr_f16_21[16] = // 1 unsigned char per row
  35. {
  36. 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
  37. 0x00, 0x40, 0x00, 0x00, 0x00 // row 12 - 16
  38. };
  39. PROGMEM const unsigned char chr_f16_22[16] = // 1 unsigned char per row
  40. {
  41. 0x00, 0x00, 0xA0, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
  42. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  43. };
  44. PROGMEM const unsigned char chr_f16_23[16] = // 1 unsigned char per row
  45. {
  46. 0x00, 0x00, 0x00, 0x24, 0x24, 0x24, 0xFF, 0x24, 0x24, 0xFF, 0x24, // row 1 - 11
  47. 0x24, 0x24, 0x00, 0x00, 0x00 // row 12 - 16
  48. };
  49. PROGMEM const unsigned char chr_f16_24[16] = // 1 unsigned char per row
  50. {
  51. #ifdef TFT_ESPI_FONT2_DOLLAR
  52. 0x00, 0x00, 0x28, 0x38, 0x6C, 0xAA, 0xA8, 0x68, 0x3C, 0x2A, 0xAA, // row 1 - 11
  53. 0x6C, 0x38, 0x28, 0x00, 0x00 // row 12 - 16
  54. #else // GBP sign
  55. 0x00, 0x00, 0x00, 0x3C, 0x42, 0x40, 0x40, 0x70, 0x40, 0x70, 0x40, // row 1 - 11
  56. 0x40, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16
  57. #endif
  58. };
  59. PROGMEM const unsigned char chr_f16_25[16] = // 1 unsigned char per row
  60. {
  61. 0x00, 0x00, 0x00, 0x61, 0x91, 0x92, 0x64, 0x08, 0x10, 0x26, 0x49, // row 1 - 11
  62. 0x89, 0x86, 0x00, 0x00, 0x00 // row 12 - 16
  63. };
  64. PROGMEM const unsigned char chr_f16_26[16] = // 1 unsigned char per row
  65. {
  66. 0x00, 0x00, 0x00, 0x20, 0x50, 0x88, 0x88, 0x50, 0x20, 0x52, 0x8C, // row 1 - 11
  67. 0x8C, 0x73, 0x00, 0x00, 0x00 // row 12 - 16
  68. };
  69. PROGMEM const unsigned char chr_f16_27[16] = // 1 unsigned char per row
  70. {
  71. 0x00, 0x00, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
  72. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  73. };
  74. PROGMEM const unsigned char chr_f16_28[16] = // 1 unsigned char per row
  75. {
  76. 0x00, 0x0C, 0x10, 0x20, 0x40, 0x40, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11
  77. 0x40, 0x40, 0x20, 0x10, 0x0C // row 12 - 16
  78. };
  79. PROGMEM const unsigned char chr_f16_29[16] = // 1 unsigned char per row
  80. {
  81. 0x00, 0xC0, 0x20, 0x10, 0x08, 0x08, 0x04, 0x04, 0x04, 0x04, 0x04, // row 1 - 11
  82. 0x08, 0x08, 0x10, 0x20, 0xC0 // row 12 - 16
  83. };
  84. PROGMEM const unsigned char chr_f16_2A[16] = // 1 unsigned char per row
  85. {
  86. 0x00, 0x00, 0x00, 0x00, 0x10, 0x92, 0x54, 0x38, 0x54, 0x92, 0x10, // row 1 - 11
  87. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  88. };
  89. PROGMEM const unsigned char chr_f16_2B[16] = // 1 unsigned char per row
  90. {
  91. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0xF8, 0x20, 0x20, // row 1 - 11
  92. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  93. };
  94. PROGMEM const unsigned char chr_f16_2C[16] = // 1 unsigned char per row
  95. {
  96. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
  97. 0xC0, 0xC0, 0x40, 0x80, 0x00 // row 12 - 16
  98. };
  99. PROGMEM const unsigned char chr_f16_2D[16] = // 1 unsigned char per row
  100. {
  101. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, // row 1 - 11
  102. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  103. };
  104. PROGMEM const unsigned char chr_f16_2E[16] = // 1 unsigned char per row
  105. {
  106. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
  107. 0xC0, 0xC0, 0x00, 0x00, 0x00 // row 12 - 16
  108. };
  109. PROGMEM const unsigned char chr_f16_2F[16] = // 1 unsigned char per row
  110. {
  111. 0x00, 0x00, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, // row 1 - 11
  112. 0x40, 0x80, 0x80, 0x00, 0x00 // row 12 - 16
  113. };
  114. PROGMEM const unsigned char chr_f16_30[16] = // 1 unsigned char per row
  115. {
  116. 0x00, 0x00, 0x00, 0x38, 0x44, 0x44, 0x82, 0x82, 0x82, 0x82, 0x44, // row 1 - 11
  117. 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
  118. };
  119. PROGMEM const unsigned char chr_f16_31[16] = // 1 unsigned char per row
  120. {
  121. 0x00, 0x00, 0x00, 0x10, 0x30, 0x50, 0x10, 0x10, 0x10, 0x10, 0x10, // row 1 - 11
  122. 0x10, 0x7C, 0x00, 0x00, 0x00 // row 12 - 16
  123. };
  124. PROGMEM const unsigned char chr_f16_32[16] = // 1 unsigned char per row
  125. {
  126. 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x02, 0x04, 0x18, 0x20, 0x40, // row 1 - 11
  127. 0x80, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16
  128. };
  129. PROGMEM const unsigned char chr_f16_33[16] = // 1 unsigned char per row
  130. {
  131. 0x00, 0x00, 0x00, 0x78, 0x84, 0x02, 0x04, 0x38, 0x04, 0x02, 0x02, // row 1 - 11
  132. 0x84, 0x78, 0x00, 0x00, 0x00 // row 12 - 16
  133. };
  134. PROGMEM const unsigned char chr_f16_34[16] = // 1 unsigned char per row
  135. {
  136. 0x00, 0x00, 0x00, 0x04, 0x0C, 0x14, 0x24, 0x44, 0x84, 0xFE, 0x04, // row 1 - 11
  137. 0x04, 0x04, 0x00, 0x00, 0x00 // row 12 - 16
  138. };
  139. PROGMEM const unsigned char chr_f16_35[16] = // 1 unsigned char per row
  140. {
  141. 0x00, 0x00, 0x00, 0xFC, 0x80, 0x80, 0x80, 0xF8, 0x04, 0x02, 0x02, // row 1 - 11
  142. 0x84, 0x78, 0x00, 0x00, 0x00 // row 12 - 16
  143. };
  144. PROGMEM const unsigned char chr_f16_36[16] = // 1 unsigned char per row
  145. {
  146. 0x00, 0x00, 0x00, 0x3C, 0x40, 0x80, 0x80, 0xB8, 0xC4, 0x82, 0x82, // row 1 - 11
  147. 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
  148. };
  149. PROGMEM const unsigned char chr_f16_37[16] = // 1 unsigned char per row
  150. {
  151. 0x00, 0x00, 0x00, 0x7E, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, // row 1 - 11
  152. 0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
  153. };
  154. PROGMEM const unsigned char chr_f16_38[16] = // 1 unsigned char per row
  155. {
  156. 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x44, 0x38, 0x44, 0x82, 0x82, // row 1 - 11
  157. 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
  158. };
  159. PROGMEM const unsigned char chr_f16_39[16] = // 1 unsigned char per row
  160. {
  161. 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x46, 0x3A, 0x02, 0x02, // row 1 - 11
  162. 0x04, 0x78, 0x00, 0x00, 0x00 // row 12 - 16
  163. };
  164. PROGMEM const unsigned char chr_f16_3A[16] = // 1 unsigned char per row
  165. {
  166. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, // row 1 - 11
  167. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  168. };
  169. PROGMEM const unsigned char chr_f16_3B[16] = // 1 unsigned char per row
  170. {
  171. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, // row 1 - 11
  172. 0x40, 0x80, 0x00, 0x00, 0x00 // row 12 - 16
  173. };
  174. PROGMEM const unsigned char chr_f16_3C[16] = // 1 unsigned char per row
  175. {
  176. 0x00, 0x00, 0x00, 0x00, 0x08, 0x10, 0x20, 0x40, 0x80, 0x40, 0x20, // row 1 - 11
  177. 0x10, 0x08, 0x00, 0x00, 0x00 // row 12 - 16
  178. };
  179. PROGMEM const unsigned char chr_f16_3D[16] = // 1 unsigned char per row
  180. {
  181. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x00, 0xF8, 0x00, // row 1 - 11
  182. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  183. };
  184. PROGMEM const unsigned char chr_f16_3E[16] = // 1 unsigned char per row
  185. {
  186. 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x08, 0x10, 0x20, // row 1 - 11
  187. 0x40, 0x80, 0x00, 0x00, 0x00 // row 12 - 16
  188. };
  189. PROGMEM const unsigned char chr_f16_3F[16] = // 1 unsigned char per row
  190. {
  191. 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x02, 0x04, 0x08, 0x10, 0x10, // row 1 - 11
  192. 0x00, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
  193. };
  194. PROGMEM const unsigned char chr_f16_40[16] = // 1 unsigned char per row
  195. {
  196. 0x00, 0x00, 0x00, 0x3C, 0x42, 0x99, 0xA5, 0xA5, 0xA5, 0xA5, 0x9E, // row 1 - 11
  197. 0x40, 0x3E, 0x00, 0x00, 0x00 // row 12 - 16
  198. };
  199. PROGMEM const unsigned char chr_f16_41[16] = // 1 unsigned char per row
  200. {
  201. 0x00, 0x00, 0x00, 0x10, 0x10, 0x28, 0x28, 0x44, 0x44, 0x7C, 0x82, // row 1 - 11
  202. 0x82, 0x82, 0x00, 0x00, 0x00 // row 12 - 16
  203. };
  204. PROGMEM const unsigned char chr_f16_42[16] = // 1 unsigned char per row
  205. {
  206. 0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x84, 0xF8, 0x84, 0x82, 0x82, // row 1 - 11
  207. 0x84, 0xF8, 0x00, 0x00, 0x00 // row 12 - 16
  208. };
  209. PROGMEM const unsigned char chr_f16_43[16] = // 1 unsigned char per row
  210. {
  211. 0x00, 0x00, 0x00, 0x3C, 0x42, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11
  212. 0x42, 0x3C, 0x00, 0x00, 0x00 // row 12 - 16
  213. };
  214. PROGMEM const unsigned char chr_f16_44[16] = // 1 unsigned char per row
  215. {
  216. 0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11
  217. 0x84, 0xF8, 0x00, 0x00, 0x00 // row 12 - 16
  218. };
  219. PROGMEM const unsigned char chr_f16_45[16] = // 1 unsigned char per row
  220. {
  221. 0x00, 0x00, 0x00, 0xFE, 0x80, 0x80, 0x80, 0xFC, 0x80, 0x80, 0x80, // row 1 - 11
  222. 0x80, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16
  223. };
  224. PROGMEM const unsigned char chr_f16_46[16] = // 1 unsigned char per row
  225. {
  226. 0x00, 0x00, 0x00, 0xFE, 0x80, 0x80, 0x80, 0xF8, 0x80, 0x80, 0x80, // row 1 - 11
  227. 0x80, 0x80, 0x00, 0x00, 0x00 // row 12 - 16
  228. };
  229. PROGMEM const unsigned char chr_f16_47[16] = // 1 unsigned char per row
  230. {
  231. 0x00, 0x00, 0x00, 0x3C, 0x42, 0x80, 0x80, 0x80, 0x9C, 0x82, 0x82, // row 1 - 11
  232. 0x42, 0x3C, 0x00, 0x00, 0x00 // row 12 - 16
  233. };
  234. PROGMEM const unsigned char chr_f16_48[16] = // 1 unsigned char per row
  235. {
  236. 0x00, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0xFC, 0x84, 0x84, 0x84, // row 1 - 11
  237. 0x84, 0x84, 0x00, 0x00, 0x00 // row 12 - 16
  238. };
  239. PROGMEM const unsigned char chr_f16_49[16] = // 1 unsigned char per row
  240. {
  241. 0x00, 0x00, 0x00, 0xE0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
  242. 0x40, 0xE0, 0x00, 0x00, 0x00 // row 12 - 16
  243. };
  244. PROGMEM const unsigned char chr_f16_4A[16] = // 1 unsigned char per row
  245. {
  246. 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, // row 1 - 11
  247. 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
  248. };
  249. PROGMEM const unsigned char chr_f16_4B[16] = // 1 unsigned char per row
  250. {
  251. 0x00, 0x00, 0x00, 0x84, 0x88, 0x90, 0xA0, 0xC0, 0xA0, 0x90, 0x88, // row 1 - 11
  252. 0x84, 0x82, 0x00, 0x00, 0x00 // row 12 - 16
  253. };
  254. PROGMEM const unsigned char chr_f16_4C[16] = // 1 unsigned char per row
  255. {
  256. 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11
  257. 0x80, 0xFC, 0x00, 0x00, 0x00 // row 12 - 16
  258. };
  259. PROGMEM const unsigned char chr_f16_4D[32] = // 2 unsigned chars per row
  260. {
  261. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x80, 0xC1, 0x80, 0xA2, 0x80, // row 1 - 6
  262. 0xA2, 0x80, 0x94, 0x80, 0x94, 0x80, 0x88, 0x80, 0x88, 0x80, 0x80, 0x80, // row 7 - 12
  263. 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 13 - 16
  264. };
  265. PROGMEM const unsigned char chr_f16_4E[16] = // 1 unsigned char per row
  266. {
  267. 0x00, 0x00, 0x00, 0xC2, 0xC2, 0xA2, 0xA2, 0x92, 0x92, 0x8A, 0x8A, // row 1 - 11
  268. 0x86, 0x86, 0x00, 0x00, 0x00 // row 12 - 16
  269. };
  270. PROGMEM const unsigned char chr_f16_4F[16] = // 1 unsigned char per row
  271. {
  272. 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11
  273. 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
  274. };
  275. PROGMEM const unsigned char chr_f16_50[16] = // 1 unsigned char per row
  276. {
  277. 0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x82, 0x82, 0x84, 0xF8, 0x80, // row 1 - 11
  278. 0x80, 0x80, 0x00, 0x00, 0x00 // row 12 - 16
  279. };
  280. PROGMEM const unsigned char chr_f16_51[16] = // 1 unsigned char per row
  281. {
  282. 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11
  283. 0x44, 0x38, 0x08, 0x06, 0x00 // row 12 - 16
  284. };
  285. PROGMEM const unsigned char chr_f16_52[16] = // 1 unsigned char per row
  286. {
  287. 0x00, 0x00, 0x00, 0xF8, 0x84, 0x82, 0x82, 0x84, 0xF8, 0x90, 0x88, // row 1 - 11
  288. 0x84, 0x82, 0x00, 0x00, 0x00 // row 12 - 16
  289. };
  290. PROGMEM const unsigned char chr_f16_53[16] = // 1 unsigned char per row
  291. {
  292. 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x80, 0x60, 0x1C, 0x02, 0x82, // row 1 - 11
  293. 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
  294. };
  295. PROGMEM const unsigned char chr_f16_54[16] = // 1 unsigned char per row
  296. {
  297. 0x00, 0x00, 0x00, 0xFE, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, // row 1 - 11
  298. 0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
  299. };
  300. PROGMEM const unsigned char chr_f16_55[16] = // 1 unsigned char per row
  301. {
  302. 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, // row 1 - 11
  303. 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
  304. };
  305. PROGMEM const unsigned char chr_f16_56[16] = // 1 unsigned char per row
  306. {
  307. 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x44, 0x44, 0x28, 0x28, // row 1 - 11
  308. 0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
  309. };
  310. PROGMEM const unsigned char chr_f16_57[32] = // 2 unsigned chars per row
  311. {
  312. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 6
  313. 0x88, 0x80, 0x88, 0x80, 0x49, 0x00, 0x55, 0x00, 0x55, 0x00, 0x22, 0x00, // row 7 - 12
  314. 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // row 13 - 16
  315. };
  316. PROGMEM const unsigned char chr_f16_58[16] = // 1 unsigned char per row
  317. {
  318. 0x00, 0x00, 0x00, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x28, 0x44, // row 1 - 11
  319. 0x82, 0x82, 0x00, 0x00, 0x00 // row 12 - 16
  320. };
  321. PROGMEM const unsigned char chr_f16_59[16] = // 1 unsigned char per row
  322. {
  323. 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x44, 0x28, 0x10, 0x10, 0x10, // row 1 - 11
  324. 0x10, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
  325. };
  326. PROGMEM const unsigned char chr_f16_5A[16] = // 1 unsigned char per row
  327. {
  328. 0x00, 0x00, 0x00, 0xFE, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x40, // row 1 - 11
  329. 0x80, 0xFE, 0x00, 0x00, 0x00 // row 12 - 16
  330. };
  331. PROGMEM const unsigned char chr_f16_5B[16] = // 1 unsigned char per row
  332. {
  333. 0x00, 0x00, 0xE0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, // row 1 - 11
  334. 0x80, 0x80, 0xE0, 0x00, 0x00 // row 12 - 16
  335. };
  336. PROGMEM const unsigned char chr_f16_5C[16] = // 1 unsigned char per row
  337. {
  338. 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, // row 1 - 11
  339. 0x08, 0x04, 0x04, 0x00, 0x00 // row 12 - 16
  340. };
  341. PROGMEM const unsigned char chr_f16_5D[16] = // 1 unsigned char per row
  342. {
  343. 0x00, 0x00, 0xE0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, // row 1 - 11
  344. 0x20, 0x20, 0xE0, 0x00, 0x00 // row 12 - 16
  345. };
  346. PROGMEM const unsigned char chr_f16_5E[32] = // 1 unsigned chars per row
  347. {
  348. 0x00, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
  349. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  350. };
  351. PROGMEM const unsigned char chr_f16_5F[32] = // 1 unsigned chars per row
  352. {
  353. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
  354. 0x00, 0x00, 0x00, 0xFF, 0x00 // row 12 - 16
  355. };
  356. PROGMEM const unsigned char chr_f16_60[16] = // 1 unsigned char per row
  357. {
  358. #ifdef TFT_ESPI_GRAVE_IS_DEGREE
  359. 0x00, 0x00, 0x00, 0x60, 0x90, 0x90, 0x60, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 Degree symbol
  360. 0x00, 0x00, 0x00, 0x00, 0x00
  361. #else
  362. 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, // row 1 - 11 Grave accent
  363. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  364. #endif
  365. };
  366. PROGMEM const unsigned char chr_f16_61[16] = // 1 unsigned char per row
  367. {
  368. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x08, 0x04, 0x74, 0x8C, // row 1 - 11
  369. 0x8C, 0x74, 0x00, 0x00, 0x00 // row 12 - 16
  370. };
  371. PROGMEM const unsigned char chr_f16_62[16] = // 1 unsigned char per row
  372. {
  373. 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11
  374. 0xC8, 0xB0, 0x00, 0x00, 0x00 // row 12 - 16
  375. };
  376. PROGMEM const unsigned char chr_f16_63[16] = // 1 unsigned char per row
  377. {
  378. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x80, 0x80, 0x80, // row 1 - 11
  379. 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
  380. };
  381. PROGMEM const unsigned char chr_f16_64[16] = // 1 unsigned char per row
  382. {
  383. 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x34, 0x4C, 0x84, 0x84, 0x84, // row 1 - 11
  384. 0x4C, 0x34, 0x00, 0x00, 0x00 // row 12 - 16
  385. };
  386. PROGMEM const unsigned char chr_f16_65[16] = // 1 unsigned char per row
  387. {
  388. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x84, 0xF8, 0x80, // row 1 - 11
  389. 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
  390. };
  391. PROGMEM const unsigned char chr_f16_66[16] = // 1 unsigned char per row
  392. {
  393. 0x00, 0x00, 0x00, 0x30, 0x48, 0x40, 0x40, 0x40, 0xE0, 0x40, 0x40, // row 1 - 11
  394. 0x40, 0x40, 0x00, 0x00, 0x00 // row 12 - 16
  395. };
  396. PROGMEM const unsigned char chr_f16_67[16] = // 1 unsigned char per row
  397. {
  398. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4C, 0x84, 0x84, 0x84, // row 1 - 11
  399. 0x4C, 0x34, 0x04, 0x08, 0x70 // row 12 - 16
  400. };
  401. PROGMEM const unsigned char chr_f16_68[16] = // 1 unsigned char per row
  402. {
  403. 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11
  404. 0x84, 0x84, 0x00, 0x00, 0x00 // row 12 - 16
  405. };
  406. PROGMEM const unsigned char chr_f16_69[16] = // 1 unsigned char per row
  407. {
  408. 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
  409. 0x40, 0x40, 0x00, 0x00, 0x00 // row 12 - 16
  410. };
  411. PROGMEM const unsigned char chr_f16_6A[16] = // 1 unsigned char per row
  412. {
  413. 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x30, 0x10, 0x10, 0x10, 0x10, // row 1 - 11
  414. 0x10, 0x10, 0x10, 0x90, 0x60 // row 12 - 16
  415. };
  416. PROGMEM const unsigned char chr_f16_6B[16] = // 1 unsigned char per row
  417. {
  418. 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x88, 0x90, 0xA0, 0xC0, 0xA0, // row 1 - 11
  419. 0x90, 0x88, 0x00, 0x00, 0x00 // row 12 - 16
  420. };
  421. PROGMEM const unsigned char chr_f16_6C[16] = // 1 unsigned char per row
  422. {
  423. 0x00, 0x00, 0x00, 0xC0, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
  424. 0x40, 0x40, 0x00, 0x00, 0x00 // row 12 - 16
  425. };
  426. PROGMEM const unsigned char chr_f16_6D[16] = // 1 unsigned char per row
  427. {
  428. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0xD2, 0x92, 0x92, 0x92, // row 1 - 11
  429. 0x92, 0x92, 0x00, 0x00, 0x00 // row 12 - 16
  430. };
  431. PROGMEM const unsigned char chr_f16_6E[16] = // 1 unsigned char per row
  432. {
  433. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11
  434. 0x84, 0x84, 0x00, 0x00, 0x00 // row 12 - 16
  435. };
  436. PROGMEM const unsigned char chr_f16_6F[16] = // 1 unsigned char per row
  437. {
  438. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x44, 0x82, 0x82, 0x82, // row 1 - 11
  439. 0x44, 0x38, 0x00, 0x00, 0x00 // row 12 - 16
  440. };
  441. PROGMEM const unsigned char chr_f16_70[16] = // 1 unsigned char per row
  442. {
  443. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xC8, 0x84, 0x84, 0x84, // row 1 - 11
  444. 0xC8, 0xB0, 0x80, 0x80, 0x80 // row 12 - 16
  445. };
  446. PROGMEM const unsigned char chr_f16_71[16] = // 1 unsigned char per row
  447. {
  448. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x4C, 0x84, 0x84, 0x84, // row 1 - 11
  449. 0x4C, 0x34, 0x04, 0x04, 0x06 // row 12 - 16
  450. };
  451. PROGMEM const unsigned char chr_f16_72[16] = // 1 unsigned char per row
  452. {
  453. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0xC8, 0x80, 0x80, 0x80, // row 1 - 11
  454. 0x80, 0x80, 0x00, 0x00, 0x00 // row 12 - 16
  455. };
  456. PROGMEM const unsigned char chr_f16_73[16] = // 1 unsigned char per row
  457. {
  458. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x88, 0x80, 0x70, 0x08, // row 1 - 11
  459. 0x88, 0x70, 0x00, 0x00, 0x00 // row 12 - 16
  460. };
  461. PROGMEM const unsigned char chr_f16_74[16] = // 1 unsigned char per row
  462. {
  463. 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0xE0, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
  464. 0x40, 0x30, 0x00, 0x00, 0x00 // row 12 - 16
  465. };
  466. PROGMEM const unsigned char chr_f16_75[16] = // 1 unsigned char per row
  467. {
  468. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0x84, // row 1 - 11
  469. 0x4C, 0x34, 0x00, 0x00, 0x00 // row 12 - 16
  470. };
  471. PROGMEM const unsigned char chr_f16_76[16] = // 1 unsigned char per row
  472. {
  473. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x82, 0x44, // row 1 - 11
  474. 0x28, 0x10, 0x00, 0x00, 0x00 // row 12 - 16
  475. };
  476. PROGMEM const unsigned char chr_f16_77[16] = // 1 unsigned char per row
  477. {
  478. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x82, 0x82, 0x92, 0x92, // row 1 - 11
  479. 0xAA, 0x44, 0x00, 0x00, 0x00 // row 12 - 16
  480. };
  481. PROGMEM const unsigned char chr_f16_78[16] = // 1 unsigned char per row
  482. {
  483. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x50, 0x20, 0x50, // row 1 - 11
  484. 0x88, 0x88, 0x00, 0x00, 0x00 // row 12 - 16
  485. };
  486. PROGMEM const unsigned char chr_f16_79[16] = // 1 unsigned char per row
  487. {
  488. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x84, 0x84, 0x84, 0x84, // row 1 - 11
  489. 0x4C, 0x34, 0x04, 0x08, 0x70 // row 12 - 16
  490. };
  491. PROGMEM const unsigned char chr_f16_7A[16] = // 1 unsigned char per row
  492. {
  493. 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x04, 0x08, 0x30, 0x40, // row 1 - 11
  494. 0x80, 0xFC, 0x00, 0x00, 0x00 // row 12 - 16
  495. };
  496. PROGMEM const unsigned char chr_f16_7B[16] = // 1 unsigned char per row
  497. {
  498. 0x00, 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x40, 0x20, 0x20, // row 1 - 11
  499. 0x20, 0x20, 0x20, 0x20, 0x10 // row 12 - 16
  500. };
  501. PROGMEM const unsigned char chr_f16_7C[16] = // 1 unsigned char per row
  502. {
  503. 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, // row 1 - 11
  504. 0x40, 0x40, 0x40, 0x40, 0x00 // row 12 - 16
  505. };
  506. PROGMEM const unsigned char chr_f16_7D[16] = // 1 unsigned char per row
  507. {
  508. 0x00, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x10, 0x20, 0x20, // row 1 - 11
  509. 0x20, 0x20, 0x20, 0x20, 0x40 // row 12 - 16
  510. };
  511. PROGMEM const unsigned char chr_f16_7E[16] = // 1 unsigned char per row
  512. {
  513. 0x00, 0x00, 0x00, 0x32, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
  514. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  515. };
  516. PROGMEM const unsigned char chr_f16_7F[16] = // 1 unsigned char per row
  517. {
  518. 0x00, 0x00, 0x30, 0x48, 0x48, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, // row 1 - 11
  519. 0x00, 0x00, 0x00, 0x00, 0x00 // row 12 - 16
  520. };
  521. PROGMEM const unsigned char* const chrtbl_f16[96] = // character pointer table
  522. {
  523. chr_f16_20, chr_f16_21, chr_f16_22, chr_f16_23, chr_f16_24, chr_f16_25, chr_f16_26, chr_f16_27,
  524. chr_f16_28, chr_f16_29, chr_f16_2A, chr_f16_2B, chr_f16_2C, chr_f16_2D, chr_f16_2E, chr_f16_2F,
  525. chr_f16_30, chr_f16_31, chr_f16_32, chr_f16_33, chr_f16_34, chr_f16_35, chr_f16_36, chr_f16_37,
  526. chr_f16_38, chr_f16_39, chr_f16_3A, chr_f16_3B, chr_f16_3C, chr_f16_3D, chr_f16_3E, chr_f16_3F,
  527. chr_f16_40, chr_f16_41, chr_f16_42, chr_f16_43, chr_f16_44, chr_f16_45, chr_f16_46, chr_f16_47,
  528. chr_f16_48, chr_f16_49, chr_f16_4A, chr_f16_4B, chr_f16_4C, chr_f16_4D, chr_f16_4E, chr_f16_4F,
  529. chr_f16_50, chr_f16_51, chr_f16_52, chr_f16_53, chr_f16_54, chr_f16_55, chr_f16_56, chr_f16_57,
  530. chr_f16_58, chr_f16_59, chr_f16_5A, chr_f16_5B, chr_f16_5C, chr_f16_5D, chr_f16_5E, chr_f16_5F,
  531. chr_f16_60, chr_f16_61, chr_f16_62, chr_f16_63, chr_f16_64, chr_f16_65, chr_f16_66, chr_f16_67,
  532. chr_f16_68, chr_f16_69, chr_f16_6A, chr_f16_6B, chr_f16_6C, chr_f16_6D, chr_f16_6E, chr_f16_6F,
  533. chr_f16_70, chr_f16_71, chr_f16_72, chr_f16_73, chr_f16_74, chr_f16_75, chr_f16_76, chr_f16_77,
  534. chr_f16_78, chr_f16_79, chr_f16_7A, chr_f16_7B, chr_f16_7C, chr_f16_7D, chr_f16_7E, chr_f16_7F
  535. };