Advertisement
Guest User

SN76489+Arduino - 이등병의 편지

a guest
Jan 17th, 2018
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.02 KB | None | 0 0
  1. ////////////////////////////////////////////SN76489MIDI.ino////////////////////////////////////////////
  2. //2018.01.15
  3. //Cakeng
  4.  
  5. //Arduino PIN 2,3,4,5,6,7,8,9 which is Atmega328 PIN PD2:7 PB0:1
  6. //goes to SN76489 data pin 0:7 respectively.
  7. //Arduino PIN 11, which is Atmega328 PIN PB3 is used to provide 4Mhz Clock to SN76489
  8. //Arduino PIN 12, which is Atmega328 PIN PB4 is used to signal Write Enable (Active Low)
  9.  
  10. #define F_CPU 16000000
  11. #include <util/delay.h>
  12. #include <avr/io.h>
  13. #include <avr/pgmspace.h>
  14. #include <avr/interrupt.h>
  15. #include "C:\Users\USERNAME\Documents\Arduino\SN76489MIDI\sheet.h"
  16.  
  17.  
  18.  
  19. //////////////////////////// Base Setup ////////////////////////////
  20. void clockSetup()
  21. {
  22. sei();//Intterupt Enabled
  23.  
  24. //System Clock On Timer 0
  25. TCCR0A = 0;
  26. TCCR0A |= (1<<WGM01);//CTC Mode, Top OCR0A
  27. TCCR0B = 0;
  28. TCCR0B |= (1<<CS01)|(1<<CS00);//1/64 PreScaler
  29.  
  30. OCR0A = 124; // 1Khz Clock
  31.  
  32. TIMSK0 = 0;
  33. TIMSK0 |= (1<<OCIE0A);
  34.  
  35. //SN76489 4Mhz Clock On timer 2
  36. TCCR2A = 0;
  37. TCCR2A |= (1<<COM2A0)|(1<<WGM21);//CTC Mode, Top OCR2A, Toggle OC2A at Compare Match
  38. TCCR2B = 0;
  39. TCCR2B |= (1<<CS20);//No Prescalers.
  40.  
  41. OCR2A = 3; //2Mhz Clock
  42.  
  43. TIMSK2 = 0;
  44. //TIMSK2 |= (1<<OCIE2A);//Output Compare Match A Intterupt Enabled
  45. }
  46.  
  47. volatile uint8_t mills = 0;// 1/1000 Secs
  48.  
  49.  
  50.  
  51. //////////////////////////// SN76489 Comms ////////////////////////////
  52. void dataOut(uint8_t data)
  53. {
  54. PORTB |= 0b00010000;
  55. PORTD &= 0b00000011;
  56. PORTB &= 0b11111100;
  57. //PORTD |= (data&0b11111100);
  58. PORTD |= ((data&0b00111111)<<2);
  59. //PORTB |= (data&0b00000011);
  60. PORTB |= ((data&0b11000000)>>6);
  61. _delay_us(10);
  62. PORTB &= ~(0b00010000);
  63. _delay_us(30);
  64. PORTB |= 0b00010000;
  65. _delay_us(10);
  66. }
  67.  
  68. //2Mhz Clock. SN76489 Internal Divider 32. 62500 Base Freq.
  69. //C2 Freq 261.6/2^2 = 65.406Hz, 162500/956 = 65.3765Hz. Midi Note C4 = 60, C2 = 36.
  70. //Freq Range : C2 ~ C7
  71. uint16_t o2NoteBox[] =
  72. {956, 902, 851, 804, 758, 716, 676, 638, 602, 568, 536, 506};
  73.  
  74. uint8_t dataBuffer = 0;
  75. uint16_t toneBuffer = 0;
  76. uint8_t octaveP1 = 0;
  77. void sendSound(uint8_t ch, uint8_t tn, uint8_t vol)
  78. {
  79. dataBuffer = (1<<7)|(ch<<5)|(1<<4)|(0b00001111&(15-vol));//Sets the Volume
  80. dataOut(dataBuffer);
  81. toneBuffer = ((o2NoteBox[tn%12])>>(tn/12 - 3));//Outputs the Tone
  82. dataBuffer = (1<<7)|(ch<<5)|(toneBuffer&0b00001111);
  83. dataOut(dataBuffer);
  84. dataBuffer = ((toneBuffer&0b0000001111110000)>>4);
  85. dataOut(dataBuffer);
  86.  
  87. }
  88.  
  89. void sendVolume(uint8_t ch, uint8_t vol)
  90. {
  91. dataBuffer = (1<<7)|(ch<<5)|(1<<4)|(0b00001111&(15-vol));//Sets the Volume
  92. dataOut(dataBuffer);
  93. }
  94. //Mode0: Periodic, Mode1: White.
  95. void sendNoise(uint8_t mode, uint8_t shiftRate, uint8_t vol)
  96. {
  97. dataBuffer = (1<<7)|(3<<5)|(mode<<2)|(3-shiftRate);//Outputs the mode and ShiftRate
  98. dataOut(dataBuffer);
  99. dataBuffer = (1<<7)|(3<<5)|(1<<4)|(0b00001111&(15-vol));//Sets the Volume
  100. dataOut(dataBuffer);
  101. }
  102.  
  103. void soundOff()
  104. {
  105. dataOut(0b10011111);
  106. dataOut(0b10111111);
  107. dataOut(0b11011111);
  108. dataOut(0b11111111);
  109. }
  110.  
  111. void soundFade()
  112. {
  113. for(uint8_t i = 2; i < 6; i++)
  114. {
  115. _delay_ms(400);
  116. dataOut((0b10010000|i*3));
  117. dataOut((0b10110000|i*3));
  118. dataOut((0b11010000|i*3));
  119. dataOut((0b11110000|i*3));
  120. }
  121. }
  122.  
  123.  
  124. //////////////////////////// Sheet thread Execution ////////////////////////////
  125. const uint16_t *sheetPtr[] = {sheet0,sheet1,sheet2,sheet3};
  126. uint8_t channelNum = 4;
  127.  
  128. uint16_t sheetLength[] = {0,0,0,0};
  129. uint16_t channelPosition[] = {0,0,0,0};
  130. uint8_t channelVelocity[] = {0,0,0,0};
  131. uint8_t channelNote[] = {0,0,0,0};
  132.  
  133. uint16_t currentTicks = 0;
  134. uint8_t channelTicks[] = {0,0,0,0};
  135. uint16_t channelTotalTicks[] = {0,0,0,0};
  136. uint8_t channelTimeConst = 150;
  137.  
  138. uint8_t channelStopFlags = 0;
  139.  
  140. uint16_t channelTotalTicks2[] = {0,0,0,0};//DEBUG
  141.  
  142.  
  143. void readLength()
  144. {
  145. sheetLength[0] = sizeof(sheet0)/2;
  146. sheetLength[1] = sizeof(sheet1)/2;
  147. sheetLength[2] = sizeof(sheet2)/2;
  148. sheetLength[3] = sizeof(sheet3)/2;
  149. }
  150.  
  151. void dataRead(uint8_t channelNum , uint16_t data)
  152. {
  153. channelTicks[channelNum] = ((data>>9)&(0b01111111));
  154.  
  155. channelNote[channelNum] = ((data>>3)&(0b00111111))+36;
  156.  
  157. if(data&(0b00000111))
  158. {
  159. channelVelocity[channelNum] = (data&(0b00000111))+9;
  160. if(channelVelocity[channelNum] > 15)
  161. {
  162. channelVelocity[channelNum] = 15;
  163. }
  164. }
  165. else
  166. {
  167. channelVelocity[channelNum] = 0;
  168. }
  169. }
  170.  
  171. uint8_t noise = 0;
  172. void exc()
  173. {
  174. cli();
  175. for (uint8_t i = 0; i < 3; i++)
  176. {
  177. if (!(channelStopFlags&(1<<i)))
  178. {
  179. if (currentTicks >= channelTicks[i]+channelTotalTicks[i])
  180. {
  181. channelPosition[i]++;
  182. channelTotalTicks[i] = currentTicks;
  183.  
  184. //DEBUG
  185. //channelTotalTicks2[i] = channelTicks[i]+channelTotalTicks2[i];
  186.  
  187. channelVelocity[0] = 0;
  188. uint16_t buf = pgm_read_word(sheetPtr[i]+channelPosition[i]);
  189.  
  190. dataRead(i, buf);
  191.  
  192. if (channelPosition[i] >= sheetLength[i])
  193. {
  194. channelPosition[i] = 0;
  195. channelStopFlags |= (1<<i);
  196. channelVelocity[i] = 0;
  197. }
  198. if(i < 3)
  199. {
  200. sendSound(i, channelNote[i], channelVelocity[i]);
  201. }
  202. else
  203. {
  204. noise++;
  205. if(noise >250)
  206. {
  207. noise = 0;
  208. }
  209. sendNoise(0, noise%2, channelVelocity[i]-4);
  210. }
  211. }
  212.  
  213. }
  214. }
  215. if (channelStopFlags == 0b00001111)
  216. {
  217. soundFade();
  218. soundOff();
  219. _delay_ms(3000);
  220. mills = 0;
  221. currentTicks = 0;
  222. channelStopFlags = 0;
  223. for (uint8_t i = 0; i < channelNum; i++)
  224. {
  225. channelPosition[i] = 0;
  226. channelTicks[i] = 0;
  227. channelTotalTicks[i] = 0;
  228. }
  229. }
  230. sei();
  231. }
  232.  
  233.  
  234.  
  235. //////////////////////////// Run ////////////////////////////
  236. ISR(TIMER0_COMPA_vect)
  237. {
  238. mills++;
  239. if(mills>channelTimeConst)
  240. {
  241. mills -= channelTimeConst;
  242. exc();
  243. for (uint8_t i = 0; i < 4; i++)
  244. {
  245. if (currentTicks > channelTotalTicks[i]+channelTicks[i]*7/10)
  246. {
  247. if(channelVelocity[i]>0)
  248. {
  249. sendVolume(i, channelVelocity[i]-3);
  250. }
  251. }
  252. else if (currentTicks > channelTotalTicks[i]+channelTicks[i]*2/10)
  253. {
  254. if(channelVelocity[i]>0)
  255. {
  256. sendVolume(i, channelVelocity[i]-1);
  257. }
  258. }
  259. }
  260. //DEBUG
  261. /*
  262. Serial.println("////////////////////////");
  263. Serial.println("Current Ticks : ");
  264. Serial.println(currentTicks);
  265. for (uint8_t i = 0; i < 4; i++)
  266. {
  267. Serial.println();
  268. Serial.print("For Channel : ");
  269. Serial.println(i);
  270. Serial.print("Current Channel Ticks : ");
  271. Serial.println(channelTicks[i]);
  272. Serial.print("Total Channel Ticks : ");
  273. Serial.println(channelTotalTicks2[i]);
  274. }
  275. Serial.println("////////////////////////");
  276. Serial.println();*/
  277. currentTicks++;
  278. }
  279.  
  280. }
  281.  
  282. void setup()
  283. {
  284. DDRD |= 0b11111100; //Data direction register Setup, PIN PD2:7
  285. DDRB |= 0b00111011; //DDR Setup, PIN PB0:1, PB3, PB4
  286.  
  287. clockSetup();
  288. //Internal 1Khz Clock Setup, Using Timer0
  289. //SN76489 2Mhz Clock Setup at PD3, Arduino PIN 11, Using Timer2
  290.  
  291. readLength();
  292.  
  293. //_delay_ms(1000);// Initializing
  294. soundOff();
  295.  
  296. //DEBUG
  297. /*
  298. Serial.begin(230400);
  299. Serial.println("Serial Initialised");*/
  300.  
  301. }
  302.  
  303. void loop()
  304. {
  305.  
  306. }
  307.  
  308. ////////////////////////////////////////////sheet.h////////////////////////////////////////////
  309. //Music data file
  310. #ifndef sheet_H
  311.  
  312. #define sheet_H
  313.  
  314. const PROGMEM uint16_t sheet0[] = {
  315. 0
  316. ,0b0100000011100000,0b0010010011100010,0b0000010011101000,0b0000100011101010,0b0000011011100001,0b0000001011010000,0b0001011011010010,0b0000001011000000,0b0001101011000010,
  317. 0b0000011100001000,0b0001000100001100,0b0001100100001100,0b0000100011101011,0b0001011011010011,0b0000001011000000,0b0011001011000011,0b0000011011000000,0b0000100011000011,0b0000100011010011,
  318. 0b0000011011100011,0b0000001011100000,0b0001100011100011,0b0000100100000000,0b0001000100000011,0b0000100011100011,0b0000100011010011,0b0010100011000011,0b0000100011000000,0b0000001011000011,
  319. 0b0000001011000000,0b0000010011000011,0b0001100011010011,0b0000101011000011,0b0000011011010000,0b0000011011010011,0b0000001011000000,0b0000100011000011,0b0011000011010011,0b0000100011000000,
  320. 0b0000001011000011,0b0000001011010000,0b0000101011010011,0b0000001011111000,0b0000011011111011,0b0000001011100000,0b0001101011100011,0b0000011011010000,0b0000100011010011,0b0000110011100011,
  321. 0b0000101011010011,0b0000001011000000,0b0010100011000011,0b0000100011000000,0b0000001011000011,0b0000001011000000,0b0000010011000011,0b0001011011010011,0b0000001011010000,0b0000101011010011,
  322. 0b0000011011010000,0b0000011011010011,0b0000001011000000,0b0000011011000011,0b0000001010111000,0b0000100010111011,0b0010100011000011,0b0000100011100000,0b0000011011100011,0b0000001011100000,
  323. 0b0000011011100011,0b0000001100011000,0b0000100100011011,0b0001100100011011,0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000100100110011,0b0010010100100011,
  324. 0b0000010100100000,0b0000011100100011,0b0000001100011000,0b0000100100011011,0b0001011100100011,0b0000001100011000,0b0000100100011011,0b0001010100100011,0b0000010100001000,0b0000100100001011,
  325. 0b0010100011111011,0b0000100100100000,0b0000011100100011,0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001101101000011,0b0000011101000000,0b0000111101000011,0b0000001100110000,
  326.  
  327. 0b0000100100110011,0b0000100100110011,0b0010011100100011,0b0000001100100000,0b0000100100100011,0b0000011100100011,0b0000001100110000,0b0001011100110011,0b0000001100100000,0b0000100100100011,
  328. 0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0010100100110011,0b0000100100100000,0b0000011100100011,0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001101101000011,
  329. 0b0000011101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000100100110011,0b0010001100100011,0b0000011100100000,0b0000110100100011,0b0000001100100011,0b0000001100110000,
  330. 0b0001010100110011,0b0000010100100000,0b0000100100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0010011100100011,0b0000101011000000,0b0000011011000011,0b0000001011010000,
  331. 0b0000100011010011,0b0000011011100011,0b0000001011100000,0b0001100011100011,0b0000100100000000,0b0001000100000011,0b0000100011100011,0b0000100011010011,0b0010100011000011,0b0000100011000000,
  332. 0b0000011011000011,0b0000001011010000,0b0001100011010011,0b0000101011000011,0b0000011011010000,0b0000011011010011,0b0000001011000000,0b0000100011000011,0b0011000011010011,0b0000100011000000,
  333. 0b0000001011000011,0b0000001011010000,0b0000101011010011,0b0000001011111000,0b0000011011111011,0b0000001011100000,0b0001101011100011,0b0000011011010000,0b0000100011010011,0b0000110011100011,
  334. 0b0000010011010011,0b0010100011000011,0b0001000011000000,0b0000011011000011,0b0000001011010000,0b0001011011010011,0b0000001011010000,0b0000101011010011,0b0000011011010000,0b0000011011010011,
  335. 0b0000001011000000,0b0000011011000011,0b0000001010111000,0b0000100010111011,0b0010100011000011,0b0000100011100000,0b0000011011100011,0b0000001011100000,0b0000011011100011,0b0000001100011000,
  336. 0b0000100100011011,0b0001100100011011,0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000100100110011,0b0010010100100011,0b0000010100100000,0b0000011100100011,
  337.  
  338. 0b0000001100011000,0b0000100100011011,0b0001011100100011,0b0000001100011000,0b0000100100011011,0b0001010100100011,0b0000010100001000,0b0000100100001011,0b0010100011111011,0b0000100100100000,
  339. 0b0000011100100011,0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001101101000011,0b0000011101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000100100110011,
  340. 0b0010001100100011,0b0000011100100000,0b0000100100100011,0b0000011100100011,0b0000001100110000,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0001011100110011,0b0000001100100000,
  341. 0b0000100100100011,0b0010100100110011,0b0000100100100000,0b0000011100100011,0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001101101000011,0b0000011101000000,0b0000111101000011,
  342. 0b0000001100110000,0b0000100100110011,0b0000100100110011,0b0010001100100011,0b0000011100100000,0b0000110100100011,0b0000001100100011,0b0000001100110000,0b0001010100110011,0b0000010100100000,
  343. 0b0000100100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0010011100100011,0b0000101011000000,0b0000011011000011,0b0000001011010000,0b0000100011010100,0b0010000011100100,
  344. 0b0001011011100100,0b0000001011010000,0b0001000011010011,0b0001101011000011,0b0000011011000000,0b0000100011000011,0b0001000100001100,0b0001100100001101,0b0000100100100100,0b0001100100011101,
  345. 0b0000100100100101,0b0001000100100101,0b0010000011000000,0b0000101011000011,0b0000001011010000,0b0000010011010011,0b0000011011100011,0b0000001011100000,0b0001101011100011,0b0000011100000000,
  346. 0b0001000100000011,0b0000100011100011,0b0000100011010011,0b0010100011000011,0b0000100011000000,0b0000010011000011,0b0000010011000011,0b0000011011010011,0b0000001011010000,0b0001101011010011,
  347. 0b0000011011010000,0b0000011011010011,0b0000001011010000,0b0000100011010011,0b0000100011000011,0b0010100011010011,0b0000100011000000,0b0000010011000011,0b0000100011010011,0b0000010011111000,
  348.  
  349. 0b0000100011111011,0b0001100011100011,0b0000100011010000,0b0000100011010011,0b0000101011100011,0b0000001011010000,0b0000010011010011,0b0000001011010011,0b0000011011000000,0b0000100011000011,
  350. 0b0010001011000011,0b0000011011000000,0b0000010011000011,0b0000010011000011,0b0001100011010011,0b0000101011010011,0b0000011011010000,0b0000100011010011,0b0000100011000011,0b0000100010111011,
  351. 0b0010100011000011,0b0000100011100000,0b0000100011100011,0b0000100011100011,0b0000100100011011,0b0001100100011011,0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,
  352. 0b0000100100110011,0b0010010100100011,0b0000010100100000,0b0000011100100011,0b0000001100011000,0b0000100100011011,0b0001100100100011,0b0000100100011011,0b0000100100100000,0b0000100100100011,
  353. 0b0000011100100011,0b0000001100001000,0b0000100100001011,0b0010100011111011,0b0000100100100000,0b0000011100100011,0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001100101000011,
  354. 0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000011100110011,0b0000001100100000,0b0010000100100011,0b0000100100100000,0b0000011100100011,0b0000001100100000,
  355. 0b0000100100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0010100100110011,0b0000100100100000,0b0000011100100011,
  356. 0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001100101000011,0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000100100110011,0b0010001100100011,
  357. 0b0000011100100000,0b0000110100100011,0b0000010100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0010010100100011,
  358. 0b0000110100100000,0b0000010100100011,0b0000100100110011,0b0000010101000000,0b0000100101000011,0b0001100101000011,0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,
  359.  
  360. 0b0000100100110011,0b0010001100100011,0b0000011100100000,0b0000110100100011,0b0000010100100011,0b0001011100110011,0b0000001100100000,0b0000011100100011,0b0000001100110000,0b0001010100110011,
  361. 0b0000010100100000,0b0000100100100011,0b0111111101011011,0b0100000011000010
  362. ,0
  363. };
  364. //826bytes
  365.  
  366.  
  367. const PROGMEM uint16_t sheet1[] = {
  368. 0
  369. ,0b0100100010000000,0b0000100010000011,0b0000100010011010,0b0001000011000010,0b0000100010000010,0b0000100010100011,0b0001000011100010,0b0000100010000011,0b0000100011000010,
  370. 0b0001000011100010,0b0000100010101010,0b0000100011000011,0b0001000011100011,0b0000100010101010,0b0000100011010011,0b0001000011101010,0b0000100010011010,0b0000100010111010,0b0000111011101010,
  371. 0b0000001010000000,0b0000100010000011,0b0000100010011001,0b0000100011000010,0b0001111011100010,0b0000101010000000,0b0000100010000010,0b0000100010011001,0b0001000011000010,0b0000100010000011,
  372. 0b0000100010111100,0b0001000011100001,0b0000100010101100,0b0000100011000001,0b0001000011100001,0b0000100010101011,0b0000100011000100,0b0001000011100100,0b0000100010101010,0b0000100011010010,
  373. 0b0000100011101011,0b0000100100001010,0b0000100011010010,0b0000100011101100,0b0000100011010001,0b0000100010011000,0b0000100010011001,0b0001000010111000,0b0000100011101000,0b0000100010011000,
  374. 0b0000100010111001,0b0001000010011010,0b0000100010000001,0b0000100010011001,0b0001000011000100,0b0000100010000100,0b0001000010111010,0b0000100010101000,0b0000100010101010,0b0000100011000010,
  375. 0b0001000011100010,0b0000100010000011,0b0000100010101100,0b0001000011000100,0b0000100010101100,0b0000100011010101,0b0001100011101011,0b0000100010111011,0b0001100011101011,0b0000100010011010,
  376. 0b0000100011000010,0b0000100011100011,0b0000100011000010,0b0000100011000101,0b0001000010011001,0b0000100010000100,0b0000100010100100,0b0001000010111010,0b0000100010111011,0b0000100010100000,
  377. 0b0000011010100010,0b0000101010101000,0b0000100010101101,0b0000100011000011,0b0000100011100011,0b0000100010000000,0b0000100010000100,0b0000100010101011,0b0000100011000011,0b0000100010001110,
  378. 0b0000100010101010,0b0000100011000010,0b0000100010101010,0b0000100011000101,0b0000100010101010,0b0000100011000010,0b0001000010101010,0b0000100010111000,0b0001000010111001,0b0001000011111101,
  379.  
  380. 0b0001100010011100,0b0000100010000011,0b0000100011000011,0b0001000011100011,0b0001000010100010,0b0000100011100010,0b0000100010101000,0b0000100010101100,0b0000100011000100,0b0001000011100011,
  381. 0b0000100010101010,0b0000100011000011,0b0001000011100011,0b0000100010101001,0b0000100011010010,0b0000100010101011,0b0000100100001011,0b0001100011010010,0b0001000010111000,0b0000100010111010,
  382. 0b0000100010011001,0b0001000011111100,0b0001000010111011,0b0000100010011000,0b0000100010011011,0b0000100011000100,0b0001000011100100,0b0000100010100011,0b0000100010111011,0b0000100011100010,
  383. 0b0000100010000000,0b0000100010101100,0b0000100011000011,0b0000100011100010,0b0000100010101000,0b0000100010101011,0b0000100011000010,0b0000100011100011,0b0000100010101010,0b0000100011010011,
  384. 0b0000100011101011,0b0000100100001010,0b0000100011101010,0b0000100010011001,0b0001011010111010,0b0000001010000000,0b0000100010000100,0b0000100010011010,0b0000100011000010,0b0000100011100011,
  385. 0b0000100010011010,0b0001001011000100,0b0000011010000000,0b0000100010000010,0b0000100010011001,0b0000100011000010,0b0000100010000000,0b0000100010000011,0b0000100010111100,0b0000100011100001,
  386. 0b0000100011000001,0b0000100010101100,0b0000100011000001,0b0001000011100001,0b0000100010101011,0b0000100011000100,0b0000100011100100,0b0000100010101000,0b0000100010101010,0b0000100011010010,
  387. 0b0000100011101011,0b0001000100001010,0b0001000011101100,0b0000100010011000,0b0000100010011100,0b0001000010111000,0b0001000010111100,0b0000100010111001,0b0000110010011010,0b0000010010000000,
  388. 0b0000100010000011,0b0000100010011011,0b0000100011000011,0b0000100010000000,0b0000100010000100,0b0001000010111010,0b0000100010101000,0b0000100010101010,0b0000100011000010,0b0001000011100010,
  389. 0b0000100010000011,0b0000100010101100,0b0000100011000100,0b0000100010101000,0b0000100010101100,0b0000100011010101,0b0001000011101011,0b0000100010111000,0b0000100010111011,0b0000100011101011,
  390.  
  391. 0b0000100010000000,0b0000100010000011,0b0000100010011010,0b0000100011000010,0b0000100011100011,0b0000100011000010,0b0001100011100011,0b0000100010000100,0b0000100010100100,0b0000100010111010,
  392. 0b0000011011100100,0b0000001010111000,0b0000100010111011,0b0000011010111101,0b0000001010100000,0b0000011010100010,0b0000101010101000,0b0000100010101101,0b0000100011000011,0b0000100011100011,
  393. 0b0000100010000000,0b0000100010000100,0b0000100010101011,0b0000100011000011,0b0000100010001110,0b0000100010101010,0b0000100011000010,0b0000100010101010,0b0001000011101010,0b0000111011000010,
  394. 0b0001001010111000,0b0001000010111001,0b0001000011111101,0b0001100010011100,0b0000100010000011,0b0000100011000011,0b0001000011100011,0b0001000010100010,0b0000100011100010,0b0000100010101000,
  395. 0b0000100010101100,0b0000100011000100,0b0001000011100011,0b0000100010101010,0b0000100011000011,0b0000101011100011,0b0000011010101000,0b0000100010101001,0b0000100011010010,0b0000100010101011,
  396. 0b0000100100001011,0b0001100011010010,0b0001000010111000,0b0000100010111010,0b0000100010011001,0b0000100011111100,0b0000100010011010,0b0000100010111011,0b0000100010011010,0b0000100010011000,
  397. 0b0000100010011011,0b0000100011000100,0b0001000011100100,0b0000100010100011,0b0000100010111011,0b0001000011100010,0b0000100010101010,0b0000100011000011,0b0001000011100011,0b0000100010101010,
  398. 0b0000100011010011,0b0001000011101010,0b0000100010011010,0b0000100010111010,0b0000111011101010,0b0000001010000000,0b0000100010000011,0b0000100010011001,0b0000100011000010,0b0001111011100010,
  399. 0b0000101010000000,0b0000100010000010,0b0000100010011001,0b0001000011000010,0b0000100010000011,0b0000100010111100,0b0001000011100001,0b0000100010101100,0b0000100011000001,0b0001000011100001,
  400. 0b0000100010101011,0b0000100011000100,0b0001000011100100,0b0000100010101010,0b0000100011010010,0b0000100011101011,0b0000100100001010,0b0000100011010010,0b0000100011101100,0b0000100011010001,
  401.  
  402. 0b0000100010011000,0b0000100010011000,0b0001000010111000,0b0000100011101000,0b0000100010011000,0b0000100010111001,0b0001000010011010,0b0000100010000001,0b0000100010011001,0b0001000011000100,
  403. 0b0000100010000100,0b0001000010111010,0b0000100010101000,0b0000100010101010,0b0000100011000010,0b0001000011100010,0b0000100010000011,0b0000100010101100,0b0001000011000100,0b0000100010101100,
  404. 0b0000100011010101,0b0001100011101011,0b0000100010111011,0b0001100011101011,0b0000100010011010,0b0000100011000010,0b0000100011100011,0b0000100011000010,0b0000100011000101,0b0001000010011001,
  405. 0b0000100010000100,0b0000100010100100,0b0001000010111010,0b0000100010111011,0b0000001010111101,0b0000011010100000,0b0000011010100010,0b0000101010101000,0b0000100010101101,0b0000100011000011,
  406. 0b0000100011100011,0b0000100010000000,0b0000100010000100,0b0000100010101011,0b0000100011000011,0b0000100010001110,0b0000100010101010,0b0000100011000010,0b0000100010101010,0b0000100011000101,
  407. 0b0000100010101010,0b0000100011000010,0b0001000010101010,0b0000100010111000,0b0001000010111001,0b0001000011111101,0b0001100010011100,0b0000100010000011,0b0000100011000011,0b0001000011100011,
  408. 0b0001000010100010,0b0000100011100010,0b0000100010101000,0b0000100010101100,0b0000100011000100,0b0001000011100011,0b0000100010101010,0b0000100011000011,0b0001000011100011,0b0000100010101001,
  409. 0b0000100011010010,0b0000100010101011,0b0000100100001011,0b0001100011010010,0b0001000010111000,0b0000100010111010,0b0000100010011001,0b0001000011111100,0b0001000010111011,0b0000100010011000,
  410. 0b0000100010011011,0b0000100011000100,0b0001000011100100,0b0000100010100011,0b0000100010111011,0b0000100011100010,0b0000100010000000,0b0000100010101100,0b0000100011000011,0b0000100011100010,
  411. 0b0000100010101000,0b0000100010101011,0b0000100011000010,0b0000100011100011,0b0000100010101010,0b0000100011010011,0b0000100011101011,0b0000100100001010,0b0000100011101010,0b0000100010011001,
  412.  
  413. 0b0001011010111010,0b0000001010000000,0b0000100010000100,0b0000100010011010,0b0000100011000010,0b0000100011100011,0b0000100010011010,0b0001001011000100,0b0000011010000000,0b0000100010000010,
  414. 0b0000100010011001,0b0000100011000010,0b0000100010000000,0b0000100010000011,0b0000100010111100,0b0000100011100001,0b0000100011000001,0b0000100010101100,0b0000100011000001,0b0001000011100001,
  415. 0b0000100010101011,0b0000100011000100,0b0000100011100100,0b0000100010101000,0b0000100010101010,0b0000100011010010,0b0000100011101011,0b0001000100001010,0b0001000011101100,0b0000100010011000,
  416. 0b0000100010011100,0b0001000010111000,0b0001000010111100,0b0000100010111001,0b0000110010011010,0b0000010010000000,0b0000100010000011,0b0000100010011011,0b0000100011000011,0b0000100010000000,
  417. 0b0000100010000100,0b0001000010111010,0b0000100010101000,0b0000100010101010,0b0000100011000010,0b0001000011100010,0b0000100010000011,0b0000100010101010,0b0000100011100000,0b0000100010000010,
  418. 0b0000100010101010,0b0000100011000011,0b0000010011100011,0b0000010011101000,0b0001100011101010,0b0000100011010000,0b0001111011010010,0b0000001010000000,0b0000011010000011,0b0000001010000000,
  419. 0b0000100010000100,0b0000100010011011,0b0000100010000101,0b0000100010011100,0b0001000010000101,0b0000100010000011,0b0000100010000011,0b0000100010000100,0b0000100010011011,0b0000100010000100,
  420. 0b0000100010011100,0b0000100010000100,0b0000100010011011,0b0000100010000010,0b0100000010000010
  421. ,0
  422. };
  423. //948bytes
  424.  
  425.  
  426.  
  427. const PROGMEM uint16_t sheet2[] = {
  428. 0
  429. ,0b0100000001100000,0b0001111001100101,0b0000001000100000,0b0001111000100110,0b0000001001001000,0b0010000001001110,0b0001111000111110,0b0000001001110000,0b0010000001110101,
  430. 0b0001110000111111,0b0000010001100000,0b0011010001100110,0b0000110001100000,0b0001110001100100,0b0000010000100000,0b0010000000100101,0b0001111001001101,0b0000001000111000,0b0001111000111111,
  431. 0b0000001001110000,0b0100000001110101,0b0011110000111111,0b0000010001100000,0b0001111001100101,0b0000001000100000,0b0010000000100110,0b0001111001001110,0b0000001000111000,0b0010000000111111,
  432. 0b0010000001110101,0b0001110000111111,0b0000010001100000,0b0011110001100110,0b0000010000100000,0b0100000000100110,0b0010000001001110,0b0001111000111110,0b0000001000101000,0b0011100000101110,
  433. 0b0000100000111000,0b0011110000111111,0b0000010001100000,0b0001110001100110,0b0000010001011000,0b0001110001011010,0b0000010001001000,0b0010000001001110,0b0010000000111110,0b0100100001110110,
  434. 0b0011100001110011,0b0001110001100101,0b0000010000100000,0b0010000000100101,0b0010000001001110,0b0001111000111110,0b0000001001110000,0b0010000001110110,0b0010000000111110,0b0100000001100110,
  435. 0b0001100001100100,0b0000100000100000,0b0010000000100101,0b0001111001001101,0b0000001000111000,0b0001111000111111,0b0000001001110000,0b0100011001110101,0b0000001001110000,0b0001000001110010,
  436. 0b0010100001110011,0b0001111001100101,0b0000001000100000,0b0010000000100110,0b0001111001001110,0b0000001000111000,0b0010000000111111,0b0010000001110101,0b0001110000111111,0b0000010001100000,
  437. 0b0011110001100110,0b0000010000100000,0b0100000000100111,0b0010000001001110,0b0001111000111110,0b0000001000101000,0b0011100000101110,0b0000100000111000,0b0000100000111111,0b0001000001110010,
  438. 0b0001000001110010,0b0001000001110011,0b0000100001100000,0b0001110001100111,0b0000010001011000,0b0001110001011010,0b0000010001001000,0b0010000001001110,0b0010000000111110,0b0100100001110110,
  439.  
  440. 0b0011100001110011,0b0001110001100110,0b0000010001011000,0b0010000001011100,0b0010000001001110,0b0001111000111110,0b0000001001110000,0b0010000001110110,0b0010000000111110,0b0100000001100110,
  441. 0b0001011001100101,0b0000101000100000,0b0001111000100110,0b0000001001001000,0b0010000001001110,0b0001111000111110,0b0000001001110000,0b0010000001110101,0b0001110000111111,0b0000010001100000,
  442. 0b0011010001100110,0b0000110001100000,0b0001110001100100,0b0000010000100000,0b0010000000100101,0b0001111001001101,0b0000001000111000,0b0001111000111111,0b0000001001110000,0b0100011001110101,
  443. 0b0000001001110000,0b0001000001110010,0b0010100001110011,0b0001111001100101,0b0000001000100000,0b0010000000100110,0b0001111001001110,0b0000001000111000,0b0010000000111111,0b0010000001110101,
  444. 0b0001110000111111,0b0000010001100000,0b0011110001100110,0b0000010001011000,0b0011111001011010,0b0000001001001000,0b0010000001001110,0b0001111000111110,0b0000001000101000,0b0011100000101110,
  445. 0b0001000001110000,0b0001000001110010,0b0001000001110010,0b0001000001110010,0b0000100001100000,0b0001110001100110,0b0000010001011000,0b0001110001011010,0b0000010001001000,0b0010000001001110,
  446. 0b0010000000111110,0b0100000001110110,0b0011101000111101,0b0000011001100000,0b0001110001100101,0b0000010000100000,0b0010000000100101,0b0010000001001110,0b0001111000111110,0b0000001001110000,
  447. 0b0010000001110110,0b0010000000111110,0b0010000001100110,0b0001111001100110,0b0001111001011000,0b0010000001011101,0b0001111001001110,0b0010000000111111,0b0001111001100000,0b0010000001100100,
  448. 0b0000100001100101,0b0000100011000000,0b0001000011000100,0b0000011011000011,0b0000100011000000,0b0001111011000100,0b0001000011000001,0b0000011011000011,0b0000100011000000,0b0000011011000010,
  449. 0b0000100011100000,0b0011111011100011
  450. ,0
  451. };
  452. //382bytes
  453.  
  454.  
  455.  
  456. const PROGMEM uint16_t sheet3[] = {0,0,0,0};
  457.  
  458.  
  459.  
  460. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement