Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////////////////////SN76489MIDI.ino////////////////////////////////////////////
- //2018.01.15
- //Cakeng
- //Arduino PIN 2,3,4,5,6,7,8,9 which is Atmega328 PIN PD2:7 PB0:1
- //goes to SN76489 data pin 0:7 respectively.
- //Arduino PIN 11, which is Atmega328 PIN PB3 is used to provide 4Mhz Clock to SN76489
- //Arduino PIN 12, which is Atmega328 PIN PB4 is used to signal Write Enable (Active Low)
- #define F_CPU 16000000
- #include <util/delay.h>
- #include <avr/io.h>
- #include <avr/pgmspace.h>
- #include <avr/interrupt.h>
- #include "C:\Users\USERNAME\Documents\Arduino\SN76489MIDI\sheet.h"
- //////////////////////////// Base Setup ////////////////////////////
- void clockSetup()
- {
- sei();//Intterupt Enabled
- //System Clock On Timer 0
- TCCR0A = 0;
- TCCR0A |= (1<<WGM01);//CTC Mode, Top OCR0A
- TCCR0B = 0;
- TCCR0B |= (1<<CS01)|(1<<CS00);//1/64 PreScaler
- OCR0A = 124; // 1Khz Clock
- TIMSK0 = 0;
- TIMSK0 |= (1<<OCIE0A);
- //SN76489 4Mhz Clock On timer 2
- TCCR2A = 0;
- TCCR2A |= (1<<COM2A0)|(1<<WGM21);//CTC Mode, Top OCR2A, Toggle OC2A at Compare Match
- TCCR2B = 0;
- TCCR2B |= (1<<CS20);//No Prescalers.
- OCR2A = 3; //2Mhz Clock
- TIMSK2 = 0;
- //TIMSK2 |= (1<<OCIE2A);//Output Compare Match A Intterupt Enabled
- }
- volatile uint8_t mills = 0;// 1/1000 Secs
- //////////////////////////// SN76489 Comms ////////////////////////////
- void dataOut(uint8_t data)
- {
- PORTB |= 0b00010000;
- PORTD &= 0b00000011;
- PORTB &= 0b11111100;
- //PORTD |= (data&0b11111100);
- PORTD |= ((data&0b00111111)<<2);
- //PORTB |= (data&0b00000011);
- PORTB |= ((data&0b11000000)>>6);
- _delay_us(10);
- PORTB &= ~(0b00010000);
- _delay_us(30);
- PORTB |= 0b00010000;
- _delay_us(10);
- }
- //2Mhz Clock. SN76489 Internal Divider 32. 62500 Base Freq.
- //C2 Freq 261.6/2^2 = 65.406Hz, 162500/956 = 65.3765Hz. Midi Note C4 = 60, C2 = 36.
- //Freq Range : C2 ~ C7
- uint16_t o2NoteBox[] =
- {956, 902, 851, 804, 758, 716, 676, 638, 602, 568, 536, 506};
- uint8_t dataBuffer = 0;
- uint16_t toneBuffer = 0;
- uint8_t octaveP1 = 0;
- void sendSound(uint8_t ch, uint8_t tn, uint8_t vol)
- {
- dataBuffer = (1<<7)|(ch<<5)|(1<<4)|(0b00001111&(15-vol));//Sets the Volume
- dataOut(dataBuffer);
- toneBuffer = ((o2NoteBox[tn%12])>>(tn/12 - 3));//Outputs the Tone
- dataBuffer = (1<<7)|(ch<<5)|(toneBuffer&0b00001111);
- dataOut(dataBuffer);
- dataBuffer = ((toneBuffer&0b0000001111110000)>>4);
- dataOut(dataBuffer);
- }
- void sendVolume(uint8_t ch, uint8_t vol)
- {
- dataBuffer = (1<<7)|(ch<<5)|(1<<4)|(0b00001111&(15-vol));//Sets the Volume
- dataOut(dataBuffer);
- }
- //Mode0: Periodic, Mode1: White.
- void sendNoise(uint8_t mode, uint8_t shiftRate, uint8_t vol)
- {
- dataBuffer = (1<<7)|(3<<5)|(mode<<2)|(3-shiftRate);//Outputs the mode and ShiftRate
- dataOut(dataBuffer);
- dataBuffer = (1<<7)|(3<<5)|(1<<4)|(0b00001111&(15-vol));//Sets the Volume
- dataOut(dataBuffer);
- }
- void soundOff()
- {
- dataOut(0b10011111);
- dataOut(0b10111111);
- dataOut(0b11011111);
- dataOut(0b11111111);
- }
- void soundFade()
- {
- for(uint8_t i = 2; i < 6; i++)
- {
- _delay_ms(400);
- dataOut((0b10010000|i*3));
- dataOut((0b10110000|i*3));
- dataOut((0b11010000|i*3));
- dataOut((0b11110000|i*3));
- }
- }
- //////////////////////////// Sheet thread Execution ////////////////////////////
- const uint16_t *sheetPtr[] = {sheet0,sheet1,sheet2,sheet3};
- uint8_t channelNum = 4;
- uint16_t sheetLength[] = {0,0,0,0};
- uint16_t channelPosition[] = {0,0,0,0};
- uint8_t channelVelocity[] = {0,0,0,0};
- uint8_t channelNote[] = {0,0,0,0};
- uint16_t currentTicks = 0;
- uint8_t channelTicks[] = {0,0,0,0};
- uint16_t channelTotalTicks[] = {0,0,0,0};
- uint8_t channelTimeConst = 150;
- uint8_t channelStopFlags = 0;
- uint16_t channelTotalTicks2[] = {0,0,0,0};//DEBUG
- void readLength()
- {
- sheetLength[0] = sizeof(sheet0)/2;
- sheetLength[1] = sizeof(sheet1)/2;
- sheetLength[2] = sizeof(sheet2)/2;
- sheetLength[3] = sizeof(sheet3)/2;
- }
- void dataRead(uint8_t channelNum , uint16_t data)
- {
- channelTicks[channelNum] = ((data>>9)&(0b01111111));
- channelNote[channelNum] = ((data>>3)&(0b00111111))+36;
- if(data&(0b00000111))
- {
- channelVelocity[channelNum] = (data&(0b00000111))+9;
- if(channelVelocity[channelNum] > 15)
- {
- channelVelocity[channelNum] = 15;
- }
- }
- else
- {
- channelVelocity[channelNum] = 0;
- }
- }
- uint8_t noise = 0;
- void exc()
- {
- cli();
- for (uint8_t i = 0; i < 3; i++)
- {
- if (!(channelStopFlags&(1<<i)))
- {
- if (currentTicks >= channelTicks[i]+channelTotalTicks[i])
- {
- channelPosition[i]++;
- channelTotalTicks[i] = currentTicks;
- //DEBUG
- //channelTotalTicks2[i] = channelTicks[i]+channelTotalTicks2[i];
- channelVelocity[0] = 0;
- uint16_t buf = pgm_read_word(sheetPtr[i]+channelPosition[i]);
- dataRead(i, buf);
- if (channelPosition[i] >= sheetLength[i])
- {
- channelPosition[i] = 0;
- channelStopFlags |= (1<<i);
- channelVelocity[i] = 0;
- }
- if(i < 3)
- {
- sendSound(i, channelNote[i], channelVelocity[i]);
- }
- else
- {
- noise++;
- if(noise >250)
- {
- noise = 0;
- }
- sendNoise(0, noise%2, channelVelocity[i]-4);
- }
- }
- }
- }
- if (channelStopFlags == 0b00001111)
- {
- soundFade();
- soundOff();
- _delay_ms(3000);
- mills = 0;
- currentTicks = 0;
- channelStopFlags = 0;
- for (uint8_t i = 0; i < channelNum; i++)
- {
- channelPosition[i] = 0;
- channelTicks[i] = 0;
- channelTotalTicks[i] = 0;
- }
- }
- sei();
- }
- //////////////////////////// Run ////////////////////////////
- ISR(TIMER0_COMPA_vect)
- {
- mills++;
- if(mills>channelTimeConst)
- {
- mills -= channelTimeConst;
- exc();
- for (uint8_t i = 0; i < 4; i++)
- {
- if (currentTicks > channelTotalTicks[i]+channelTicks[i]*7/10)
- {
- if(channelVelocity[i]>0)
- {
- sendVolume(i, channelVelocity[i]-3);
- }
- }
- else if (currentTicks > channelTotalTicks[i]+channelTicks[i]*2/10)
- {
- if(channelVelocity[i]>0)
- {
- sendVolume(i, channelVelocity[i]-1);
- }
- }
- }
- //DEBUG
- /*
- Serial.println("////////////////////////");
- Serial.println("Current Ticks : ");
- Serial.println(currentTicks);
- for (uint8_t i = 0; i < 4; i++)
- {
- Serial.println();
- Serial.print("For Channel : ");
- Serial.println(i);
- Serial.print("Current Channel Ticks : ");
- Serial.println(channelTicks[i]);
- Serial.print("Total Channel Ticks : ");
- Serial.println(channelTotalTicks2[i]);
- }
- Serial.println("////////////////////////");
- Serial.println();*/
- currentTicks++;
- }
- }
- void setup()
- {
- DDRD |= 0b11111100; //Data direction register Setup, PIN PD2:7
- DDRB |= 0b00111011; //DDR Setup, PIN PB0:1, PB3, PB4
- clockSetup();
- //Internal 1Khz Clock Setup, Using Timer0
- //SN76489 2Mhz Clock Setup at PD3, Arduino PIN 11, Using Timer2
- readLength();
- //_delay_ms(1000);// Initializing
- soundOff();
- //DEBUG
- /*
- Serial.begin(230400);
- Serial.println("Serial Initialised");*/
- }
- void loop()
- {
- }
- ////////////////////////////////////////////sheet.h////////////////////////////////////////////
- //Music data file
- #ifndef sheet_H
- #define sheet_H
- const PROGMEM uint16_t sheet0[] = {
- 0
- ,0b0100000011100000,0b0010010011100010,0b0000010011101000,0b0000100011101010,0b0000011011100001,0b0000001011010000,0b0001011011010010,0b0000001011000000,0b0001101011000010,
- 0b0000011100001000,0b0001000100001100,0b0001100100001100,0b0000100011101011,0b0001011011010011,0b0000001011000000,0b0011001011000011,0b0000011011000000,0b0000100011000011,0b0000100011010011,
- 0b0000011011100011,0b0000001011100000,0b0001100011100011,0b0000100100000000,0b0001000100000011,0b0000100011100011,0b0000100011010011,0b0010100011000011,0b0000100011000000,0b0000001011000011,
- 0b0000001011000000,0b0000010011000011,0b0001100011010011,0b0000101011000011,0b0000011011010000,0b0000011011010011,0b0000001011000000,0b0000100011000011,0b0011000011010011,0b0000100011000000,
- 0b0000001011000011,0b0000001011010000,0b0000101011010011,0b0000001011111000,0b0000011011111011,0b0000001011100000,0b0001101011100011,0b0000011011010000,0b0000100011010011,0b0000110011100011,
- 0b0000101011010011,0b0000001011000000,0b0010100011000011,0b0000100011000000,0b0000001011000011,0b0000001011000000,0b0000010011000011,0b0001011011010011,0b0000001011010000,0b0000101011010011,
- 0b0000011011010000,0b0000011011010011,0b0000001011000000,0b0000011011000011,0b0000001010111000,0b0000100010111011,0b0010100011000011,0b0000100011100000,0b0000011011100011,0b0000001011100000,
- 0b0000011011100011,0b0000001100011000,0b0000100100011011,0b0001100100011011,0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000100100110011,0b0010010100100011,
- 0b0000010100100000,0b0000011100100011,0b0000001100011000,0b0000100100011011,0b0001011100100011,0b0000001100011000,0b0000100100011011,0b0001010100100011,0b0000010100001000,0b0000100100001011,
- 0b0010100011111011,0b0000100100100000,0b0000011100100011,0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001101101000011,0b0000011101000000,0b0000111101000011,0b0000001100110000,
- 0b0000100100110011,0b0000100100110011,0b0010011100100011,0b0000001100100000,0b0000100100100011,0b0000011100100011,0b0000001100110000,0b0001011100110011,0b0000001100100000,0b0000100100100011,
- 0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0010100100110011,0b0000100100100000,0b0000011100100011,0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001101101000011,
- 0b0000011101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000100100110011,0b0010001100100011,0b0000011100100000,0b0000110100100011,0b0000001100100011,0b0000001100110000,
- 0b0001010100110011,0b0000010100100000,0b0000100100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0010011100100011,0b0000101011000000,0b0000011011000011,0b0000001011010000,
- 0b0000100011010011,0b0000011011100011,0b0000001011100000,0b0001100011100011,0b0000100100000000,0b0001000100000011,0b0000100011100011,0b0000100011010011,0b0010100011000011,0b0000100011000000,
- 0b0000011011000011,0b0000001011010000,0b0001100011010011,0b0000101011000011,0b0000011011010000,0b0000011011010011,0b0000001011000000,0b0000100011000011,0b0011000011010011,0b0000100011000000,
- 0b0000001011000011,0b0000001011010000,0b0000101011010011,0b0000001011111000,0b0000011011111011,0b0000001011100000,0b0001101011100011,0b0000011011010000,0b0000100011010011,0b0000110011100011,
- 0b0000010011010011,0b0010100011000011,0b0001000011000000,0b0000011011000011,0b0000001011010000,0b0001011011010011,0b0000001011010000,0b0000101011010011,0b0000011011010000,0b0000011011010011,
- 0b0000001011000000,0b0000011011000011,0b0000001010111000,0b0000100010111011,0b0010100011000011,0b0000100011100000,0b0000011011100011,0b0000001011100000,0b0000011011100011,0b0000001100011000,
- 0b0000100100011011,0b0001100100011011,0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000100100110011,0b0010010100100011,0b0000010100100000,0b0000011100100011,
- 0b0000001100011000,0b0000100100011011,0b0001011100100011,0b0000001100011000,0b0000100100011011,0b0001010100100011,0b0000010100001000,0b0000100100001011,0b0010100011111011,0b0000100100100000,
- 0b0000011100100011,0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001101101000011,0b0000011101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000100100110011,
- 0b0010001100100011,0b0000011100100000,0b0000100100100011,0b0000011100100011,0b0000001100110000,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0001011100110011,0b0000001100100000,
- 0b0000100100100011,0b0010100100110011,0b0000100100100000,0b0000011100100011,0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001101101000011,0b0000011101000000,0b0000111101000011,
- 0b0000001100110000,0b0000100100110011,0b0000100100110011,0b0010001100100011,0b0000011100100000,0b0000110100100011,0b0000001100100011,0b0000001100110000,0b0001010100110011,0b0000010100100000,
- 0b0000100100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0010011100100011,0b0000101011000000,0b0000011011000011,0b0000001011010000,0b0000100011010100,0b0010000011100100,
- 0b0001011011100100,0b0000001011010000,0b0001000011010011,0b0001101011000011,0b0000011011000000,0b0000100011000011,0b0001000100001100,0b0001100100001101,0b0000100100100100,0b0001100100011101,
- 0b0000100100100101,0b0001000100100101,0b0010000011000000,0b0000101011000011,0b0000001011010000,0b0000010011010011,0b0000011011100011,0b0000001011100000,0b0001101011100011,0b0000011100000000,
- 0b0001000100000011,0b0000100011100011,0b0000100011010011,0b0010100011000011,0b0000100011000000,0b0000010011000011,0b0000010011000011,0b0000011011010011,0b0000001011010000,0b0001101011010011,
- 0b0000011011010000,0b0000011011010011,0b0000001011010000,0b0000100011010011,0b0000100011000011,0b0010100011010011,0b0000100011000000,0b0000010011000011,0b0000100011010011,0b0000010011111000,
- 0b0000100011111011,0b0001100011100011,0b0000100011010000,0b0000100011010011,0b0000101011100011,0b0000001011010000,0b0000010011010011,0b0000001011010011,0b0000011011000000,0b0000100011000011,
- 0b0010001011000011,0b0000011011000000,0b0000010011000011,0b0000010011000011,0b0001100011010011,0b0000101011010011,0b0000011011010000,0b0000100011010011,0b0000100011000011,0b0000100010111011,
- 0b0010100011000011,0b0000100011100000,0b0000100011100011,0b0000100011100011,0b0000100100011011,0b0001100100011011,0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,
- 0b0000100100110011,0b0010010100100011,0b0000010100100000,0b0000011100100011,0b0000001100011000,0b0000100100011011,0b0001100100100011,0b0000100100011011,0b0000100100100000,0b0000100100100011,
- 0b0000011100100011,0b0000001100001000,0b0000100100001011,0b0010100011111011,0b0000100100100000,0b0000011100100011,0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001100101000011,
- 0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000011100110011,0b0000001100100000,0b0010000100100011,0b0000100100100000,0b0000011100100011,0b0000001100100000,
- 0b0000100100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0010100100110011,0b0000100100100000,0b0000011100100011,
- 0b0000001100110000,0b0000100100110011,0b0000100101000011,0b0001100101000011,0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,0b0000100100110011,0b0010001100100011,
- 0b0000011100100000,0b0000110100100011,0b0000010100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0001011100110011,0b0000001100100000,0b0000100100100011,0b0010010100100011,
- 0b0000110100100000,0b0000010100100011,0b0000100100110011,0b0000010101000000,0b0000100101000011,0b0001100101000011,0b0000100101000000,0b0000111101000011,0b0000001100110000,0b0000100100110011,
- 0b0000100100110011,0b0010001100100011,0b0000011100100000,0b0000110100100011,0b0000010100100011,0b0001011100110011,0b0000001100100000,0b0000011100100011,0b0000001100110000,0b0001010100110011,
- 0b0000010100100000,0b0000100100100011,0b0111111101011011,0b0100000011000010
- ,0
- };
- //826bytes
- const PROGMEM uint16_t sheet1[] = {
- 0
- ,0b0100100010000000,0b0000100010000011,0b0000100010011010,0b0001000011000010,0b0000100010000010,0b0000100010100011,0b0001000011100010,0b0000100010000011,0b0000100011000010,
- 0b0001000011100010,0b0000100010101010,0b0000100011000011,0b0001000011100011,0b0000100010101010,0b0000100011010011,0b0001000011101010,0b0000100010011010,0b0000100010111010,0b0000111011101010,
- 0b0000001010000000,0b0000100010000011,0b0000100010011001,0b0000100011000010,0b0001111011100010,0b0000101010000000,0b0000100010000010,0b0000100010011001,0b0001000011000010,0b0000100010000011,
- 0b0000100010111100,0b0001000011100001,0b0000100010101100,0b0000100011000001,0b0001000011100001,0b0000100010101011,0b0000100011000100,0b0001000011100100,0b0000100010101010,0b0000100011010010,
- 0b0000100011101011,0b0000100100001010,0b0000100011010010,0b0000100011101100,0b0000100011010001,0b0000100010011000,0b0000100010011001,0b0001000010111000,0b0000100011101000,0b0000100010011000,
- 0b0000100010111001,0b0001000010011010,0b0000100010000001,0b0000100010011001,0b0001000011000100,0b0000100010000100,0b0001000010111010,0b0000100010101000,0b0000100010101010,0b0000100011000010,
- 0b0001000011100010,0b0000100010000011,0b0000100010101100,0b0001000011000100,0b0000100010101100,0b0000100011010101,0b0001100011101011,0b0000100010111011,0b0001100011101011,0b0000100010011010,
- 0b0000100011000010,0b0000100011100011,0b0000100011000010,0b0000100011000101,0b0001000010011001,0b0000100010000100,0b0000100010100100,0b0001000010111010,0b0000100010111011,0b0000100010100000,
- 0b0000011010100010,0b0000101010101000,0b0000100010101101,0b0000100011000011,0b0000100011100011,0b0000100010000000,0b0000100010000100,0b0000100010101011,0b0000100011000011,0b0000100010001110,
- 0b0000100010101010,0b0000100011000010,0b0000100010101010,0b0000100011000101,0b0000100010101010,0b0000100011000010,0b0001000010101010,0b0000100010111000,0b0001000010111001,0b0001000011111101,
- 0b0001100010011100,0b0000100010000011,0b0000100011000011,0b0001000011100011,0b0001000010100010,0b0000100011100010,0b0000100010101000,0b0000100010101100,0b0000100011000100,0b0001000011100011,
- 0b0000100010101010,0b0000100011000011,0b0001000011100011,0b0000100010101001,0b0000100011010010,0b0000100010101011,0b0000100100001011,0b0001100011010010,0b0001000010111000,0b0000100010111010,
- 0b0000100010011001,0b0001000011111100,0b0001000010111011,0b0000100010011000,0b0000100010011011,0b0000100011000100,0b0001000011100100,0b0000100010100011,0b0000100010111011,0b0000100011100010,
- 0b0000100010000000,0b0000100010101100,0b0000100011000011,0b0000100011100010,0b0000100010101000,0b0000100010101011,0b0000100011000010,0b0000100011100011,0b0000100010101010,0b0000100011010011,
- 0b0000100011101011,0b0000100100001010,0b0000100011101010,0b0000100010011001,0b0001011010111010,0b0000001010000000,0b0000100010000100,0b0000100010011010,0b0000100011000010,0b0000100011100011,
- 0b0000100010011010,0b0001001011000100,0b0000011010000000,0b0000100010000010,0b0000100010011001,0b0000100011000010,0b0000100010000000,0b0000100010000011,0b0000100010111100,0b0000100011100001,
- 0b0000100011000001,0b0000100010101100,0b0000100011000001,0b0001000011100001,0b0000100010101011,0b0000100011000100,0b0000100011100100,0b0000100010101000,0b0000100010101010,0b0000100011010010,
- 0b0000100011101011,0b0001000100001010,0b0001000011101100,0b0000100010011000,0b0000100010011100,0b0001000010111000,0b0001000010111100,0b0000100010111001,0b0000110010011010,0b0000010010000000,
- 0b0000100010000011,0b0000100010011011,0b0000100011000011,0b0000100010000000,0b0000100010000100,0b0001000010111010,0b0000100010101000,0b0000100010101010,0b0000100011000010,0b0001000011100010,
- 0b0000100010000011,0b0000100010101100,0b0000100011000100,0b0000100010101000,0b0000100010101100,0b0000100011010101,0b0001000011101011,0b0000100010111000,0b0000100010111011,0b0000100011101011,
- 0b0000100010000000,0b0000100010000011,0b0000100010011010,0b0000100011000010,0b0000100011100011,0b0000100011000010,0b0001100011100011,0b0000100010000100,0b0000100010100100,0b0000100010111010,
- 0b0000011011100100,0b0000001010111000,0b0000100010111011,0b0000011010111101,0b0000001010100000,0b0000011010100010,0b0000101010101000,0b0000100010101101,0b0000100011000011,0b0000100011100011,
- 0b0000100010000000,0b0000100010000100,0b0000100010101011,0b0000100011000011,0b0000100010001110,0b0000100010101010,0b0000100011000010,0b0000100010101010,0b0001000011101010,0b0000111011000010,
- 0b0001001010111000,0b0001000010111001,0b0001000011111101,0b0001100010011100,0b0000100010000011,0b0000100011000011,0b0001000011100011,0b0001000010100010,0b0000100011100010,0b0000100010101000,
- 0b0000100010101100,0b0000100011000100,0b0001000011100011,0b0000100010101010,0b0000100011000011,0b0000101011100011,0b0000011010101000,0b0000100010101001,0b0000100011010010,0b0000100010101011,
- 0b0000100100001011,0b0001100011010010,0b0001000010111000,0b0000100010111010,0b0000100010011001,0b0000100011111100,0b0000100010011010,0b0000100010111011,0b0000100010011010,0b0000100010011000,
- 0b0000100010011011,0b0000100011000100,0b0001000011100100,0b0000100010100011,0b0000100010111011,0b0001000011100010,0b0000100010101010,0b0000100011000011,0b0001000011100011,0b0000100010101010,
- 0b0000100011010011,0b0001000011101010,0b0000100010011010,0b0000100010111010,0b0000111011101010,0b0000001010000000,0b0000100010000011,0b0000100010011001,0b0000100011000010,0b0001111011100010,
- 0b0000101010000000,0b0000100010000010,0b0000100010011001,0b0001000011000010,0b0000100010000011,0b0000100010111100,0b0001000011100001,0b0000100010101100,0b0000100011000001,0b0001000011100001,
- 0b0000100010101011,0b0000100011000100,0b0001000011100100,0b0000100010101010,0b0000100011010010,0b0000100011101011,0b0000100100001010,0b0000100011010010,0b0000100011101100,0b0000100011010001,
- 0b0000100010011000,0b0000100010011000,0b0001000010111000,0b0000100011101000,0b0000100010011000,0b0000100010111001,0b0001000010011010,0b0000100010000001,0b0000100010011001,0b0001000011000100,
- 0b0000100010000100,0b0001000010111010,0b0000100010101000,0b0000100010101010,0b0000100011000010,0b0001000011100010,0b0000100010000011,0b0000100010101100,0b0001000011000100,0b0000100010101100,
- 0b0000100011010101,0b0001100011101011,0b0000100010111011,0b0001100011101011,0b0000100010011010,0b0000100011000010,0b0000100011100011,0b0000100011000010,0b0000100011000101,0b0001000010011001,
- 0b0000100010000100,0b0000100010100100,0b0001000010111010,0b0000100010111011,0b0000001010111101,0b0000011010100000,0b0000011010100010,0b0000101010101000,0b0000100010101101,0b0000100011000011,
- 0b0000100011100011,0b0000100010000000,0b0000100010000100,0b0000100010101011,0b0000100011000011,0b0000100010001110,0b0000100010101010,0b0000100011000010,0b0000100010101010,0b0000100011000101,
- 0b0000100010101010,0b0000100011000010,0b0001000010101010,0b0000100010111000,0b0001000010111001,0b0001000011111101,0b0001100010011100,0b0000100010000011,0b0000100011000011,0b0001000011100011,
- 0b0001000010100010,0b0000100011100010,0b0000100010101000,0b0000100010101100,0b0000100011000100,0b0001000011100011,0b0000100010101010,0b0000100011000011,0b0001000011100011,0b0000100010101001,
- 0b0000100011010010,0b0000100010101011,0b0000100100001011,0b0001100011010010,0b0001000010111000,0b0000100010111010,0b0000100010011001,0b0001000011111100,0b0001000010111011,0b0000100010011000,
- 0b0000100010011011,0b0000100011000100,0b0001000011100100,0b0000100010100011,0b0000100010111011,0b0000100011100010,0b0000100010000000,0b0000100010101100,0b0000100011000011,0b0000100011100010,
- 0b0000100010101000,0b0000100010101011,0b0000100011000010,0b0000100011100011,0b0000100010101010,0b0000100011010011,0b0000100011101011,0b0000100100001010,0b0000100011101010,0b0000100010011001,
- 0b0001011010111010,0b0000001010000000,0b0000100010000100,0b0000100010011010,0b0000100011000010,0b0000100011100011,0b0000100010011010,0b0001001011000100,0b0000011010000000,0b0000100010000010,
- 0b0000100010011001,0b0000100011000010,0b0000100010000000,0b0000100010000011,0b0000100010111100,0b0000100011100001,0b0000100011000001,0b0000100010101100,0b0000100011000001,0b0001000011100001,
- 0b0000100010101011,0b0000100011000100,0b0000100011100100,0b0000100010101000,0b0000100010101010,0b0000100011010010,0b0000100011101011,0b0001000100001010,0b0001000011101100,0b0000100010011000,
- 0b0000100010011100,0b0001000010111000,0b0001000010111100,0b0000100010111001,0b0000110010011010,0b0000010010000000,0b0000100010000011,0b0000100010011011,0b0000100011000011,0b0000100010000000,
- 0b0000100010000100,0b0001000010111010,0b0000100010101000,0b0000100010101010,0b0000100011000010,0b0001000011100010,0b0000100010000011,0b0000100010101010,0b0000100011100000,0b0000100010000010,
- 0b0000100010101010,0b0000100011000011,0b0000010011100011,0b0000010011101000,0b0001100011101010,0b0000100011010000,0b0001111011010010,0b0000001010000000,0b0000011010000011,0b0000001010000000,
- 0b0000100010000100,0b0000100010011011,0b0000100010000101,0b0000100010011100,0b0001000010000101,0b0000100010000011,0b0000100010000011,0b0000100010000100,0b0000100010011011,0b0000100010000100,
- 0b0000100010011100,0b0000100010000100,0b0000100010011011,0b0000100010000010,0b0100000010000010
- ,0
- };
- //948bytes
- const PROGMEM uint16_t sheet2[] = {
- 0
- ,0b0100000001100000,0b0001111001100101,0b0000001000100000,0b0001111000100110,0b0000001001001000,0b0010000001001110,0b0001111000111110,0b0000001001110000,0b0010000001110101,
- 0b0001110000111111,0b0000010001100000,0b0011010001100110,0b0000110001100000,0b0001110001100100,0b0000010000100000,0b0010000000100101,0b0001111001001101,0b0000001000111000,0b0001111000111111,
- 0b0000001001110000,0b0100000001110101,0b0011110000111111,0b0000010001100000,0b0001111001100101,0b0000001000100000,0b0010000000100110,0b0001111001001110,0b0000001000111000,0b0010000000111111,
- 0b0010000001110101,0b0001110000111111,0b0000010001100000,0b0011110001100110,0b0000010000100000,0b0100000000100110,0b0010000001001110,0b0001111000111110,0b0000001000101000,0b0011100000101110,
- 0b0000100000111000,0b0011110000111111,0b0000010001100000,0b0001110001100110,0b0000010001011000,0b0001110001011010,0b0000010001001000,0b0010000001001110,0b0010000000111110,0b0100100001110110,
- 0b0011100001110011,0b0001110001100101,0b0000010000100000,0b0010000000100101,0b0010000001001110,0b0001111000111110,0b0000001001110000,0b0010000001110110,0b0010000000111110,0b0100000001100110,
- 0b0001100001100100,0b0000100000100000,0b0010000000100101,0b0001111001001101,0b0000001000111000,0b0001111000111111,0b0000001001110000,0b0100011001110101,0b0000001001110000,0b0001000001110010,
- 0b0010100001110011,0b0001111001100101,0b0000001000100000,0b0010000000100110,0b0001111001001110,0b0000001000111000,0b0010000000111111,0b0010000001110101,0b0001110000111111,0b0000010001100000,
- 0b0011110001100110,0b0000010000100000,0b0100000000100111,0b0010000001001110,0b0001111000111110,0b0000001000101000,0b0011100000101110,0b0000100000111000,0b0000100000111111,0b0001000001110010,
- 0b0001000001110010,0b0001000001110011,0b0000100001100000,0b0001110001100111,0b0000010001011000,0b0001110001011010,0b0000010001001000,0b0010000001001110,0b0010000000111110,0b0100100001110110,
- 0b0011100001110011,0b0001110001100110,0b0000010001011000,0b0010000001011100,0b0010000001001110,0b0001111000111110,0b0000001001110000,0b0010000001110110,0b0010000000111110,0b0100000001100110,
- 0b0001011001100101,0b0000101000100000,0b0001111000100110,0b0000001001001000,0b0010000001001110,0b0001111000111110,0b0000001001110000,0b0010000001110101,0b0001110000111111,0b0000010001100000,
- 0b0011010001100110,0b0000110001100000,0b0001110001100100,0b0000010000100000,0b0010000000100101,0b0001111001001101,0b0000001000111000,0b0001111000111111,0b0000001001110000,0b0100011001110101,
- 0b0000001001110000,0b0001000001110010,0b0010100001110011,0b0001111001100101,0b0000001000100000,0b0010000000100110,0b0001111001001110,0b0000001000111000,0b0010000000111111,0b0010000001110101,
- 0b0001110000111111,0b0000010001100000,0b0011110001100110,0b0000010001011000,0b0011111001011010,0b0000001001001000,0b0010000001001110,0b0001111000111110,0b0000001000101000,0b0011100000101110,
- 0b0001000001110000,0b0001000001110010,0b0001000001110010,0b0001000001110010,0b0000100001100000,0b0001110001100110,0b0000010001011000,0b0001110001011010,0b0000010001001000,0b0010000001001110,
- 0b0010000000111110,0b0100000001110110,0b0011101000111101,0b0000011001100000,0b0001110001100101,0b0000010000100000,0b0010000000100101,0b0010000001001110,0b0001111000111110,0b0000001001110000,
- 0b0010000001110110,0b0010000000111110,0b0010000001100110,0b0001111001100110,0b0001111001011000,0b0010000001011101,0b0001111001001110,0b0010000000111111,0b0001111001100000,0b0010000001100100,
- 0b0000100001100101,0b0000100011000000,0b0001000011000100,0b0000011011000011,0b0000100011000000,0b0001111011000100,0b0001000011000001,0b0000011011000011,0b0000100011000000,0b0000011011000010,
- 0b0000100011100000,0b0011111011100011
- ,0
- };
- //382bytes
- const PROGMEM uint16_t sheet3[] = {0,0,0,0};
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement