<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=58&amp;t=17796&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-05T16:11:03+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=17796&amp;mode</id>
<entry>
<author><name><![CDATA[Pegre]]></name></author>
<updated>2017-03-05T16:11:03+01:00</updated>
<published>2017-03-05T16:11:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17796&amp;p=184107#p184107</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17796&amp;p=184107#p184107"/>
<title type="html"><![CDATA[OLED SSD1306 - problem z uruchomieniem.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17796&amp;p=184107#p184107"><![CDATA[
W związku z tym, że jest to mój pierwszy post, chciałbym podziękować panu Mirkowi za ultra ciekawą serię poradników o SSD1306. <br /><br />Od dłuższego czasu próbuję uporać się z dość dziwnym problemem z wyświetlaniem. Podczas przesyłania zawartości buforu do wyświetlacza, obraz przesuwa się według nie zrozumiałej dla mnie reguły. <br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br />Dodam, że wcześniej z pustym buforem wyświetlacz potrafił nie &quot;wymazać&quot; się do końca. <br />Wyświetlacz podłączony mam do Arduino. Niestety nie jest to wyświetlacz, ze sklepu Atnel (kupiony na allegro przy okazji innego zakupu). <br />Czy powodu problemu spodziewać się po stronie sprzętowej, czy jednak programowej. <br />Poniżej załączam aktualny kod.<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 5 mar 2017<br /> *      Author: P<br /> *Podziękowania dla Mirekk36<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />#include &quot;OLED/ssd1306.h&quot;<br />int main(void){<br />_delay_ms(200);<br />ssd1306_init( SSD1306_SWITCHCAPVCC, REFRESH_MID );<br /><br />ssd1306_setPixel(40,20,1);<br />ssd1306_display();<br /><br />while(1){<br /><br />}<br />}[/syntax]<br />[syntax=c]/*<br /> * ssd1306.c<br /> *<br /> *  Created on: 5 mar 2017<br /> *      Author: P<br /> *Podziękowania dla Mirekk36<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />#include &quot;ssd1306.h&quot;<br /><br />uint8_t ssd1306_buf&#91;1024&#93; = {<br /><br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0x70, 0x78, 0x38, 0x38, 0x38,<br />0x38, 0x18, 0x18, 0x38, 0x38, 0x38, 0x38, 0x78, 0x70, 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xF8, 0x18, 0x18, 0x18,<br />0x38, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0xC0,<br />0xC0, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80,<br />0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0xFC, 0xFC,<br />0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0xC0,<br />0xC0, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0xF0, 0xFC, 0xFE, 0x1F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x1F, 0xFE, 0xFC,<br />0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x06, 0x06, 0x06,<br />0x07, 0x03, 0x01, 0x00, 0x00, 0x1F, 0x3F, 0x71, 0x60, 0x60, 0x71, 0x3F, 0x1F, 0x00, 0x00, 0x7F,<br />0x7F, 0x01, 0x00, 0x00, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x1F, 0x3F,<br />0x71, 0x60, 0x60, 0x71, 0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x3F, 0x71, 0x60, 0x60, 0x31, 0x7F, 0x7F,<br />0x00, 0x00, 0x1F, 0x3F, 0x71, 0x60, 0x60, 0x71, 0x3F, 0x1F, 0x00, 0x00, 0x7F, 0x7F, 0x01, 0x00,<br />0x00, 0x00, 0x00, 0x1F, 0x3F, 0x71, 0x60, 0x60, 0x71, 0x3F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF9, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x07, 0x0F, 0x1F, 0x3D, 0x78, 0x78, 0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF,<br />0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xC6, 0xFE,<br />0xFE, 0x3E, 0x06, 0x06, 0x06, 0xC6, 0xF8, 0xFE, 0x3E, 0x06, 0xC0, 0xF8, 0x3E, 0xFE, 0xFE, 0xE0,<br />0x30, 0xDC, 0xFE, 0x3E, 0x06, 0xC0, 0xF8, 0xFE, 0x3E, 0x36, 0x36, 0x36, 0x36, 0x06, 0xC0, 0xF8,<br />0xFE, 0x3E, 0xF6, 0xFE, 0xDE, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0F, 0x1E, 0x3C, 0x78, 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0xC0,<br />0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xE1, 0xE0, 0xF0, 0x78, 0x3C, 0x1E, 0x0F, 0x07, 0x03,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x03, 0x03,<br />0x01, 0x00, 0x00, 0x00, 0x02, 0x03, 0x03, 0x01, 0x00, 0x02, 0x03, 0x01, 0x00, 0x03, 0x03, 0x00,<br />0x02, 0x03, 0x01, 0x00, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x02, 0x03, 0x03,<br />0x01, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,<br />0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00<br /><br />};<br /><br />static void SPIwrite( uint8_t dat) {<br /><br />uint8_t i;<br />for (i = 0x80; i; i &gt;&gt;= 1){<br />SCK_LO;<br />if (dat &amp; i)<br />MOSI_HI;<br />else<br />MOSI_LO;<br />SCK_HI;<br />}<br />}<br /><br />void ssd1306_cmd(uint8_t cmd) {<br />#if USE_CS == 1<br />CS_HI;<br />#endif<br /><br />DC_LO;<br /><br />#if USE_CS == 1<br />CS_LO;<br />#endif<br /><br />SPIwrite( cmd );<br /><br />#if USE_CS == 1<br />CS_HI;<br />#endif<br />}<br /><br />void ssd1306_data( uint8_t dat) {<br />#if USE_CS == 1<br />CS_HI;<br />#endif<br /><br />DC_HI;<br /><br />#if USE_CS == 1<br />CS_LO;<br />#endif<br /><br />SPIwrite( dat );<br /><br />#if USE_CS == 1<br />CS_HI;<br />#endif<br />}<br /><br />void ssd1306_display( void ){<br />ssd1306_cmd( SSD1306_SETLOWCOLUMN  | 0x0);<br />ssd1306_cmd( SSD1306_SETHIGHCOLUMN | 0x0);<br />ssd1306_cmd( SSD1306_SETSTARTLINE  | 0x0);<br /><br />#if USE_CS == 1<br />CS_HI;<br />#endif<br /><br />DC_HI;<br /><br />#if USE_CS == 1<br />CS_LO;<br />#endif<br /><br />for (uint16_t i=0; i&lt;(SSD1306_WIDTH*SSD1306_HEIGHT/8); i++) {<br />SPIwrite( ssd1306_buf&#91;i&#93; ) ;<br />}<br />#if USE_CS == 1<br />CS_HI;<br />#endif<br />}<br /><br />void ssd1306_InitSpi(void){<br /><br />MOSI_DDR |= MOSI;<br /><br />SCK_DDR |= SCK;<br />SCK_PORT |= SCK;<br /><br />#if USE_RST == 1<br />RST_DDR |= RST;<br />RST_PORT |= RST;<br />#endif<br /><br />SCK_DDR |= DC;<br /><br />#if USE_CS == 1<br />CS_DDR |= CS;<br />CS_PORT |= CS;<br />#endif<br />}<br /><br />void ssd1306_setPixel(int x, int y, uint8_t bw) {<br />if ((x &lt; 0) || (x &gt;= SSD1306_WIDTH ) || (y &lt; 0) || (y &gt;= SSD1306_HEIGHT ))<br />return;<br /><br />if (bw) ssd1306_buf&#91;x+ (y/8)*SSD1306_WIDTH&#93; |= (1&lt;&lt;(y%8));<br />else    ssd1306_buf&#91;x+ (y/8)*SSD1306_WIDTH&#93; &amp;= ~(1&lt;&lt;(y%8));<br />}<br /><br />void ssd1306_init( uint8_t vcc, uint8_t refresh) {<br /><br />ssd1306_InitSpi();<br /><br />#if USE_RST == 1<br />RST_HI;<br />_delay_ms(25);<br />RST_LO;<br />_delay_ms(25);<br />RST_HI;<br />#else<br />CS_HI;<br />_delay_ms(25);<br />CS_LO;<br />_delay_ms(25);<br />CS_HI;<br />#endif<br /><br />ssd1306_cmd( SSD1306_DISPLAYOFF );<br />ssd1306_cmd( SSD1306_SETDISPLAYCLOCKDIV );<br />ssd1306_cmd( refresh );<br /><br />ssd1306_cmd( SSD1306_SETDISPLAYOFFSET );<br />ssd1306_cmd( 0x0 );<br />ssd1306_cmd( SSD1306_SETSTARTLINE | 0x0 );<br />ssd1306_cmd( SSD1306_CHARGEPUMP );<br /><br />if (vcc == SSD1306_EXTERNALVCC) ssd1306_cmd( 0x10 );<br />else ssd1306_cmd( 0x14 );<br /><br />ssd1306_cmd( SSD1306_MEMORYMODE );<br />ssd1306_cmd( 0x00);<br />ssd1306_cmd( SSD1306_SEGREMAP | 0x1 );<br />ssd1306_cmd( SSD1306_COMSCANDEC );<br /><br />ssd1306_cmd( SSD1306_SETCONTRAST );<br /><br />if (vcc == SSD1306_EXTERNALVCC) ssd1306_cmd( 0x9F );<br />else ssd1306_cmd( 0xCF );<br /><br />ssd1306_cmd( SSD1306_SETPRECHARGE );<br /><br />//128x32<br />#if defined SSD1306_128_32<br />ssd1306_cmd( SSD1306_SETMULTIPLEX );<br />ssd1306_cmd( 0x1F );<br /><br />ssd1306_cmd( SSD1306_SETCOMPINS );<br />ssd1306_cmd( 0x02);<br />#endif<br />//128x64<br />#if defined SSD1306_128_64<br />ssd1306_cmd( SSD1306_SETMULTIPLEX );<br />ssd1306_cmd( 0x3F );<br /><br />ssd1306_cmd( SSD1306_SETCOMPINS );<br />ssd1306_cmd( 0x12 );<br />#endif<br />ssd1306_cmd( SSD1306_DISPLAYALLON_RESUME);<br />ssd1306_cmd( SSD1306_NORMALDISPLAY );<br /><br />ssd1306_cmd( SSD1306_DISPLAYON );<br /><br />ssd1306_display();<br />}[/syntax]<br />[syntax=c]/*<br /> * ssd1306.h<br /> *<br /> *  Created on: 5 mar 2017<br /> *      Author: P<br /> *Podziękowania dla Mirekk36<br /> */<br /><br />#ifndef OLED_SSD1306_H_<br />#define OLED_SSD1306_H_<br /><br />// rozdzielczosc OLED<br />#define SSD1306_128_64<br />//#define SSD1306_128_64<br /><br />#define USE_CS0<br />#define USE_RST1<br /><br />#define SCK (1&lt;&lt;5)<br />#define MOSI (1&lt;&lt;4)<br />#define RST (1&lt;&lt;3)<br />#define DC (1&lt;&lt;2)<br /><br /><br />#define CS (1&lt;&lt;1)<br /><br />//makra<br /><br />#define SCK_PORT PORTC<br />#define SCK_DDR  DDRC<br /><br />#define MOSI_PORT PORTC<br />#define MOSI_DDR  DDRC<br /><br />#define RST_PORT PORTC<br />#define RST_DDR  DDRC<br /><br />#define DC_PORT PORTC<br />#define DC_DDR  DDRC<br /><br />#define CS_PORT PORTC<br />#define CS_DDR  DDRC<br /><br /><br />#define RST_LO RST_PORT &amp;= ~RST<br />#define RST_HI RST_PORT |= RST<br /><br />#define CS_LO CS_PORT &amp;= ~CS<br />#define CS_HI CS_PORT |= CS<br /><br />#define DC_LO DC_PORT &amp;= ~DC<br />#define DC_HI DC_PORT |= DC<br /><br />#define SCK_LO SCK_PORT &amp;= ~SCK<br />#define SCK_HI SCK_PORT |= SCK<br /><br />#define MOSI_LO MOSI_PORT &amp;= ~MOSI<br />#define MOSI_HI MOSI_PORT |= MOSI<br /><br />#define SSD1306_WIDTH 128<br /><br />#if defined SSD1306_128_64<br />#define SSD1306_HEIGHT64<br />#endif<br />#if defined SSD1306_128_32<br />#define SSD1306_HEIGHT32<br />#endif<br /><br />#define REFRESH_MIN 0x80<br />#define REFRESH_MID 0xB0<br />#define REFRESH_MAX 0xF0<br /><br />//STAŁE ADAFRUIT<br /><br />#define SSD1306_SETCONTRAST 0x81<br />#define SSD1306_DISPLAYALLON_RESUME 0xA4<br />#define SSD1306_DISPLAYALLON 0xA5<br />#define SSD1306_NORMALDISPLAY 0xA6<br />#define SSD1306_INVERTDISPLAY 0xA7<br />#define SSD1306_DISPLAYOFF 0xAE<br />#define SSD1306_DISPLAYON 0xAF<br /><br />#define SSD1306_SETDISPLAYOFFSET 0xD3<br />#define SSD1306_SETCOMPINS 0xDA<br /><br />#define SSD1306_SETVCOMDETECT 0xDB<br /><br />#define SSD1306_SETDISPLAYCLOCKDIV 0xD5<br />#define SSD1306_SETPRECHARGE 0xD9<br /><br />#define SSD1306_SETMULTIPLEX 0xA8<br /><br />#define SSD1306_SETLOWCOLUMN 0x00<br />#define SSD1306_SETHIGHCOLUMN 0x10<br /><br />#define SSD1306_SETSTARTLINE 0x40<br /><br />#define SSD1306_MEMORYMODE 0x20<br />#define SSD1306_COLUMNADDR 0x21<br />#define SSD1306_PAGEADDR   0x22<br /><br />#define SSD1306_COMSCANINC 0xC0<br />#define SSD1306_COMSCANDEC 0xC8<br /><br />#define SSD1306_SEGREMAP 0xA0<br /><br />#define SSD1306_CHARGEPUMP 0x8D<br /><br />#define SSD1306_EXTERNALVCC 0x1<br />#define SSD1306_SWITCHCAPVCC 0x2<br /><br />// Scrolling #defines<br />#define SSD1306_ACTIVATE_SCROLL 0x2F<br />#define SSD1306_DEACTIVATE_SCROLL 0x2E<br />#define SSD1306_SET_VERTICAL_SCROLL_AREA 0xA3<br />#define SSD1306_RIGHT_HORIZONTAL_SCROLL 0x26<br />#define SSD1306_LEFT_HORIZONTAL_SCROLL 0x27<br />#define SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL 0x29<br />#define SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL 0x2A<br /><br />//deklaracje funkcji<br />void ssd1306_init( uint8_t vcc, uint8_t refresh );<br />void ssd1306_cmd( uint8_t cmd );<br />void ssd1306_data( uint8_t dat );<br />void ssd1306_display( void );<br />void ssd1306_setPixel(int x, int y, uint8_t bw);<br /><br />#endif /* OLED_SSD1306_H_ */[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 35 minutach ]</span></strong><br /><br />Problem rozwiązany. Nie wiem jak mogłem wcześniej nie pomyśleć, że jeśli producent wyprowadził RST i CS to obydwa muszą być na 1. <br />#define USE_CS 1<br />#define USE_RST1<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16014">Pegre</a> — 5 mar 2017, o 16:11</p><hr />
]]></content>
</entry>
</feed>