示例#1
0
//#=================================================================================================
//#
//#-------------------------------------------------------------------------------------------------
void mOLED_scrolldiagRight(int start, int stop){
	mOLED_SSD1306_cmd(SSD1306_SET_VERTICAL_SCROLL_AREA);
	mOLED_SSD1306_cmd(0X00);
	mOLED_SSD1306_cmd(SSD1306_LCDHEIGHT);
	mOLED_SSD1306_cmd(SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL);
	mOLED_SSD1306_cmd(0X00);
	mOLED_SSD1306_cmd(start);
	mOLED_SSD1306_cmd(0X00);
	mOLED_SSD1306_cmd(stop);
	mOLED_SSD1306_cmd(0X01);
	mOLED_SSD1306_cmd(SSD1306_ACTIVATE_SCROLL);
}
示例#2
0
//#=================================================================================================
//#
//#-------------------------------------------------------------------------------------------------
void mOLED_startscrollright(int start, int stop){
	mOLED_SSD1306_cmd(SSD1306_RIGHT_HORIZONTAL_SCROLL);
	mOLED_SSD1306_cmd(0X00);
	mOLED_SSD1306_cmd(start);
	mOLED_SSD1306_cmd(0X00);
	mOLED_SSD1306_cmd(stop);
	mOLED_SSD1306_cmd(0X01);
	mOLED_SSD1306_cmd(0XFF);
	mOLED_SSD1306_cmd(SSD1306_ACTIVATE_SCROLL);
}
示例#3
0
//#=================================================================================================
//#
//#-------------------------------------------------------------------------------------------------
void mOLED_UnSet_Pixel(int x, int y)
{
    mOLED_SSD1306_cmd(SSD1306_COLUMNADDR);
    mOLED_SSD1306_cmd(x);   // Column start address (0 = reset)
    mOLED_SSD1306_cmd(x+1); // Column end address (127 = reset)

    mOLED_SSD1306_cmd(SSD1306_PAGEADDR);
    mOLED_SSD1306_cmd(y); // Page start address (0 = reset)
    mOLED_SSD1306_cmd(y+1); // Page end addres

    cs_high;
    //nop;
    dc_high;
    nop;
    cs_low;
    SPI1_Write_8(0);
    nop;
    cs_high;
}
示例#4
0
//#=================================================================================================
//#
//#-------------------------------------------------------------------------------------------------
void mOLED_Refresh( void )
{
unsigned int i;

    mOLED_SSD1306_cmd(SSD1306_COLUMNADDR);
    mOLED_SSD1306_cmd(0);   // Column start address (0 = reset)
    mOLED_SSD1306_cmd(127); // Column end address (127 = reset)

    mOLED_SSD1306_cmd(SSD1306_PAGEADDR);
    mOLED_SSD1306_cmd(0); // Page start address (0 = reset)
    mOLED_SSD1306_cmd(3); // Page end addres

    for (i=0; i<512; i++)
    {
        cs_high;
        dc_high;
        nop;
        cs_low;
        SPI1_Write_8(mOLED_Screen_Mem[i]);
        nop;
        cs_high;
    }
}
示例#5
0
//#=================================================================================================
//#
//#-------------------------------------------------------------------------------------------------
void mOLED_Clear(void)
{
unsigned short i;

    mOLED_SSD1306_cmd(SSD1306_COLUMNADDR);
    mOLED_SSD1306_cmd(0);   // Column start address (0 = reset)
    mOLED_SSD1306_cmd(127); // Column end address (127 = reset)

    mOLED_SSD1306_cmd(SSD1306_PAGEADDR);
    mOLED_SSD1306_cmd(0); // Page start address (0 = reset)
    mOLED_SSD1306_cmd(3); // Page end addres
   
    for (i=0; i<(SSD1306_LCDWIDTH*SSD1306_LCDHEIGHT/8); i++)
    {
        cs_high;
        dc_high;
        nop; nop;
        cs_low;
        SPI1_Write_8(0x00);
        mOLED_Screen_Mem[i] = 0;
        cs_high;
    }
}
示例#6
0
//#=================================================================================================
//#
//#-------------------------------------------------------------------------------------------------
void mOLED_Init( void )
{
    _TRISA4 = 0;
    _TRISA0 = 0;
    _TRISB4 = 0;
    _TRISB1 = 0;
    SPI1_Init();

    rst_high;
    // VDD (3.3V) goes high at start, lets just chill for a ms
    Delayms(10);
    rst_low;
    // wait 10ms
    Delayms(20);
    rst_high;

    // Init sequence for 128x32 OLED module
    mOLED_SSD1306_cmd(SSD1306_DISPLAYOFF);                    // 0xAE
    mOLED_SSD1306_cmd(SSD1306_SETDISPLAYCLOCKDIV);            // 0xD5
    mOLED_SSD1306_cmd(0x80);                                  // the suggested ratio 0x80
    mOLED_SSD1306_cmd(SSD1306_SETMULTIPLEX);                  // 0xA8
    mOLED_SSD1306_cmd(0x1F);
    mOLED_SSD1306_cmd(SSD1306_SETDISPLAYOFFSET);              // 0xD3
    mOLED_SSD1306_cmd(0x0);                                   // no offset
    mOLED_SSD1306_cmd(SSD1306_SETSTARTLINE | 0x0);            // line #0
    mOLED_SSD1306_cmd(SSD1306_CHARGEPUMP);                    // 0x8D

    //mOLED_SSD1306_cmd(0x10);    //SSD1306_EXTERNALVCC 0x1
    mOLED_SSD1306_cmd(0x14);    //SSD1306_SWITCHCAPVCC 0x2

    mOLED_SSD1306_cmd(SSD1306_MEMORYMODE);                    // 0x20
    mOLED_SSD1306_cmd(0x00);                                  // 0x0 act like ks0108
    mOLED_SSD1306_cmd(SSD1306_SEGREMAP | 0x1);
    mOLED_SSD1306_cmd(SSD1306_COMSCANDEC);
    mOLED_SSD1306_cmd(SSD1306_SETCOMPINS);                    // 0xDA
    mOLED_SSD1306_cmd(0x02);
    mOLED_SSD1306_cmd(SSD1306_SETCONTRAST);                   // 0x81
    mOLED_SSD1306_cmd(0x8F);
    mOLED_SSD1306_cmd(SSD1306_SETPRECHARGE);                  // 0xd9

    //mOLED_SSD1306_cmd(0x22);    //SSD1306_EXTERNALVCC 0x1
    mOLED_SSD1306_cmd(0xF1);    //SSD1306_SWITCHCAPVCC 0x2


    mOLED_SSD1306_cmd(SSD1306_SETVCOMDETECT);                 // 0xDB
    mOLED_SSD1306_cmd(0x40);
    mOLED_SSD1306_cmd(SSD1306_DISPLAYALLON_RESUME);           // 0xA4
    mOLED_SSD1306_cmd(SSD1306_NORMALDISPLAY);                 // 0xA6

    mOLED_SSD1306_cmd(SSD1306_DISPLAYON);//--turn on oled panel

    mOLED_Pen_Colour = 1;
}