<?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=4&amp;t=8153&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-08-17T11:25:51+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8153&amp;mode</id>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2014-08-17T11:25:51+01:00</updated>
<published>2014-08-17T11:25:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91761#p91761</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91761#p91761"/>
<title type="html"><![CDATA[Re: Problem z wyświetlaczem OLED - I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91761#p91761"><![CDATA[
Na tym form to tylko soczek jabłkowy pijemy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />A tak na całkiem poważnie, to nie ma problemu, uwielbiam grzebać w Eclipsie, przez to się uczę i poznaję tajniki C dla AVR-GCC <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Także cała przyjemność po mojej stronie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 17 sie 2014, o 11:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomTea]]></name></author>
<updated>2014-08-16T21:39:59+01:00</updated>
<published>2014-08-16T21:39:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91740#p91740</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91740#p91740"/>
<title type="html"><![CDATA[Re: Problem z wyświetlaczem OLED - I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91740#p91740"><![CDATA[
Dzięki !! <br /><br />Tak jak pisałeś pkt. 1,2 . Były kluczowe, po ich zmianie wyświetlacz ożył <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> ! Dziękuję za pomoc teraz moge wrócić do zabawy nim i dalszych poradników Mirka. <br />Normalnie bym Ci piwo postawił <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1309">TomTea</a> — 16 sie 2014, o 21:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2014-08-16T18:35:02+01:00</updated>
<published>2014-08-16T18:35:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91720#p91720</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91720#p91720"/>
<title type="html"><![CDATA[Re: Problem z wyświetlaczem OLED - I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91720#p91720"><![CDATA[
Znalazłem 3 uwagi, w tym dwie kluczowe <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />1. Funkcja <strong>TWI_write_buf();</strong> powinna mieć argument <strong>len</strong> jako <strong><span style="color: #008000">uint16_t</span></strong> a nie <strong><span style="color: #FF0000">uint8_t</span></strong>. Przekazujesz tam wielkość bufora = 1024. Była o tym mowa w poradniku, na forum też ktoś o to pytał w wątku z poradnikiem.<br />2. W funkcji <strong>ssd1306_Init();</strong> na samym dole (okolice linii 251) masz <strong><span style="color: #FF0000">ssd1306_cmd(SSD1306_DISPLAYALLON);</span></strong> a powinno być, <strong><span style="color: #008000">ssd1306_cmd(SSD1306_DISPLAYON);</span></strong>.<br />3. W funkcji <strong>TWI_stop();</strong> w pętli while() masz błąd, nie powinno tam być negacji instrukcji warunkowej ! - powinno być: <strong>while ( (TWCR&amp;(1&lt;&lt;TWSTO)));</strong>.<br /><br />Po zmianie pkt 1 i 2 powinno ruszyć, bynajmniej u mnie poszło, pkt 3 jako ciekawostka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 16 sie 2014, o 18:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomTea]]></name></author>
<updated>2014-08-16T08:30:31+01:00</updated>
<published>2014-08-16T08:30:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91668#p91668</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91668#p91668"/>
<title type="html"><![CDATA[Re: Problem z wyświetlaczem OLED - I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91668#p91668"><![CDATA[
Niestety w dalszym ciągu to samo. Myślę że gdzieś musiałem zrobić jakąś literówkę , zostaje mi tylko porównywanie mojej biblioteki z tą z na filmiku. Swoją drogą jest gdzieś możliwość dostania tej biblioteki z poradnika , myślę że takie porównywanie &quot;statyczne&quot; szybciej i sprawniej by przeszło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1309">TomTea</a> — 16 sie 2014, o 08:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2014-08-16T06:35:06+01:00</updated>
<published>2014-08-16T06:35:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91664#p91664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91664#p91664"/>
<title type="html"><![CDATA[Re: Problem z wyświetlaczem OLED - I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91664#p91664"><![CDATA[
A po drugie popraw w deklaracji <br />line 250     TWI_write_buf(OLED_I2C_ADDRESS, 0x40 , 1024 , ssd1306_buf);<br />w pliku .c<br />Bo używasz 1024 która przekracza wartość zadeklarowaną w<br /><br />static void TWI_write_buf( uint8_t SLA, uint8_t adr, uint8_t len, uint8_t *buf )<p>Statystyki: Napisane przez Gość — 16 sie 2014, o 06:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek_P]]></name></author>
<updated>2014-08-15T21:47:07+01:00</updated>
<published>2014-08-15T21:47:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91656#p91656</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91656#p91656"/>
<title type="html"><![CDATA[Re: Problem z wyświetlaczem OLED - I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91656#p91656"><![CDATA[
Na początek popraw formatowanie kodu (syntax C) bo ciężko się czyta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=290">Piotrek_P</a> — 15 sie 2014, o 21:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomTea]]></name></author>
<updated>2014-08-15T21:55:01+01:00</updated>
<published>2014-08-15T21:14:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91652#p91652</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91652#p91652"/>
<title type="html"><![CDATA[Problem z wyświetlaczem OLED - I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8153&amp;p=91652#p91652"><![CDATA[
Witam !<br /><br />Wpadł mi w ręce wyświetlacz OLED z obsługą I2C , ze sklepu Atnel dlatego nawet nie podejrzewam ze to On może być popsuty <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Myślę że błąd leży gdzieś w bibliotekach które pisałem podczas oglądania poradnikami Mirka na ich temat. Po podłączeniu do płytki ATB , SCL-&gt;PC0 , SDA -&gt; PC1 , VCC -&gt;VCC , GND -&gt;GND ( też rozwieram zworki dla SCL / SDA ), wgraniu pierwszego programu , wyświetlacz ani drgnie. <br />Problem w tym że siedzę już nad tą biblioteką długo i nie umiem znaleźć gdzie mam błąd , najgorsze to że kompilator mi też niczego nie wyrzuca. Dlatego chciałbym abyście też rzucili okiem na nie może na pierwsze spojrzenie zobaczycie gdzie się pomyliłem. <br /><br />main.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;OLED_LIB/ssd1306.h&quot;<br /><br />int main (void) {<br /><br />ssd1306_Init(SSD1306_SWITCHCAPVCC, REFRESH_MIN);<br /><br />ssd1306_setPixel(40, 8, 1);<br />ssd1306_setPixel(40, 9, 1);<br />ssd1306_setPixel(41, 8, 1);<br />ssd1306_setPixel(41, 9, 1);<br /><br />ssd1306_display();<br /><br />//sei();<br />while(1)<br />{<br /><br />}<br />}[/syntax]<br /><br />ssd1306.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;string.h&gt;<br /><br />#include &quot;ssd1306.h&quot;<br /><br /><br />//definicja buforu<br /><br />uint8_t ssd1306_buf&#91;1024&#93; = {<br /><br />};<br /><br />//wysyłanie danych po SPI<br />//static - uzywany tylko wewnatrz tego modułu<br />//nie na zewnatrz<br />#if USE_SPI_OR_I2C == 1<br />static void SPIwrite ( uint8_t dat ) {<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 />//inicjalizacja SPI<br />void ssd1306_InitSpi(void){<br />MOSI_DDR |= MOSI;<br /><br />SCK_DDR |= SCK;<br />SCK_PORT |= SCK;<br />#if USE_RST == 1<br />RST_DDR |= RST;<br />RST_PORT |= RST;<br />#endif<br />DC_DDR |= DC;<br />#if USE_CS == 1<br />CS_DDR |= CS;<br />CS_PORT |= CS;<br />#endif<br />}<br />#endif<br /><br /><br />// funkcjie do I2C<br /><br />#if USE_SPI_OR_I2C == 0<br />static void TWI_start(void) {<br />TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTA);<br />while (!(TWCR&amp;(1&lt;&lt;TWINT)));<br />}<br /><br />static void TWI_stop(void) {<br />TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTO);<br />while ( !(TWCR&amp;(1&lt;&lt;TWSTO)));<br />}<br /><br />static void TWI_write(uint8_t bajt) {<br />TWDR = bajt;<br />TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN);<br />while ( !(TWCR&amp;(1&lt;&lt;TWINT)));<br />}<br />static void i2cSetBitrate(uint16_t bitrateKHz) {<br />uint8_t bitrate_div;<br /><br />bitrate_div = ((F_CPU/1000l)/bitrateKHz);<br />if(bitrate_div &gt;= 16)<br />bitrate_div = (bitrate_div-16)/2;<br /><br />TWBR = bitrate_div;<br />}<br />static void TWI_write_buf( uint8_t SLA, uint8_t adr, uint8_t len, uint8_t *buf ) {<br /><br />TWI_start();<br />TWI_write(SLA);<br />TWI_write(adr);<br />while (len--) TWI_write(*buf++);<br />TWI_stop();<br />}<br /><br />#endif<br />//wysyłanie komend<br />void ssd1306_cmd (uint8_t cmd){<br /><br />#if USE_SPI_OR_I2C == 1<br /><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 />#else<br />uint8_t control = 0x00;<br />TWI_start();<br />TWI_write(OLED_I2C_ADDRESS);<br />TWI_write(control);<br />TWI_write(cmd);<br />TWI_stop();<br /><br />#endif<br />}<br /><br />//wysyłanie danych<br />void ssd1306_data ( uint8_t dat ){<br /><br />#if USE_SPI_OR_I2C == 1<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 />#else<br />uint8_t control = 0x40;<br />TWI_start();<br />TWI_write(OLED_I2C_ADDRESS);<br />TWI_write(control);<br />TWI_write(dat);<br />TWI_stop();<br /><br />#endif<br />}<br /><br /><br /><br />//ninicjalizacja wywietlacza<br /> void ssd1306_Init ( uint8_t vcc, uint8_t refresh) {<br /><br />#if USE_SPI_OR_I2C == 1<br /> ssd1306_InitSpi();<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 />#else<br /><br /> i2cSetBitrate( 400 );<br /> I2C_DIR |= (1&lt;&lt;SCL) | (1&lt;&lt;SDA);<br /> _delay_ms(50);<br /><br />#endif<br /> //komendy inicjalizujace<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 /> //ssd1306 128 x 32<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 /><br /> //ssd1306 128 x 64<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 /><br /> ssd1306_cmd(SSD1306_DISPLAYALLON_RESUME);<br /> ssd1306_cmd(SSD1306_NORMALDISPLAY);<br /> ssd1306_cmd(SSD1306_DISPLAYALLON);<br /><br /> ssd1306_display(); //czyszczenie wyswietlacza<br /><br /> }<br /><br />//wysyłąnie danych do buforu<br />void ssd1306_display (void){<br /><br />ssd1306_cmd(SSD1306_SETLOWCOLUMN | 0x0);<br />ssd1306_cmd(SSD1306_SETHIGHCOLUMN | 0x0);<br />ssd1306_cmd(SSD1306_SETSTARTLINE | 0x0);<br />#if USE_SPI_OR_I2C == 1<br />#if USE_CS == 1<br />CS_HI;<br />#endif<br />DC_HI;<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 />#else<br />TWI_write_buf(OLED_I2C_ADDRESS, 0x40 , 1024 , ssd1306_buf);<br />#endif<br /><br />}<br /><br />//rysowanie piksela<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 />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 />}[/syntax]<br /><br />ssd1306.h<br /><br />[syntax=c]#ifndef SSD1306_H_<br />#define SSD1306_H_<br /><br />// Rozdzielczoć LCD  / OLED<br /><br />#define SSD1306_128_64<br />//#define SSD1306_128_32<br /><br />// @@@@  I2C   OR   SPI @@@@<br />#define USE_SPI_OR_I2C 0 // 1-SPI  , 0-I2C<br /><br /><br />//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />//Konfiguracja pinów ( programowe SPI)<br />#if USE_SPI_OR_I2C ==1<br />#define USE_CS 1//jakich pinów używamy<br />#define USE_RST 0<br /><br />#define SCK (1&lt;&lt;7) // SCl<br />#define MOSI (1&lt;&lt;6)// SDA<br />#define RST (1&lt;&lt;5)// RST<br />#define DC (1&lt;&lt;4)// D/C<br /><br />#define CS (1&lt;&lt;5)// CS<br /><br />//Ustawienia portów , możliwoć ustwainia pinów<br />//na róznych pinach<br /><br />#define SCK_PORTPORTC<br />#define SCK_DDRDDRC<br /><br />#define MOSI_PORTPORTC<br />#define MOSI_DDRDDRC<br /><br />#define RST_PORTPORTC<br />#define RST_DDRDDRC<br /><br />#define DC_PORTPORTC<br />#define DC_DDRDDRC<br /><br />#define CS_PORTPORTC<br />#define CS_DDRDDRC<br /><br />//szybka obsługa pinów<br /><br />#define RST_LORST_PORT &amp;= ~RST<br />#define RST_HIRST_PORT |= RST<br /><br />#define CS_LOCS_PORT &amp;= ~CS<br />#define CS_HICS_PORT |= CS<br /><br />#define DC_LOCS_PORT &amp;= ~DC<br />#define DC_HICS_PORT |= DC<br /><br />#define SCK_LOSCK_PORT &amp;= ~SCK<br />#define SCK_HISCK_PORT |= SCK<br /><br />#define MOSI_LOMOSI_PORT &amp;= ~MOSI<br />#define MOSI_HIMOSI_PORT |= MOSI<br />#endif<br />//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br /><br />//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />//Konfiguracja pinów I2C<br />#if USE_SPI_OR_I2C == 0<br />#define OLED_I2C_ADDRESS 0x78// lub 0x7A<br /><br />#define I2C_DIRDDRC<br />#define SCLPC0<br />#define SDA PC1<br />#endif<br /><br />//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br /><br />//definicej wysokoci wywietlaczy<br /><br />#define SSD1306_WIDTH128<br /><br />#if defined SSD1306_128_64<br />#define SSD1306_HEIGHT 64<br />#endif<br /><br />#if defined SSD1306_128_32<br />#define SSD1306_HEIGHT 32<br />#endif<br /><br />//szybkoci odswieżania<br /><br />#define REFRESH_MIN 0x80<br />#define REFRESH_MID 0xB0<br />#define REFRESH_MAX 0xF0<br /><br />//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />// DEFINICJE KOMNEND<br />//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<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 />//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />// KONIEC DEFINICJI KOMEND<br />//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br /><br />//deklaracje zmiennych<br /><br />//deklaracje funkcji<br /><br />void ssd1306_Init ( uint8_t vcc, uint8_t refresh); //inicjalizacja wyswietlacza<br />void ssd1306_cmd (uint8_t cmd); //wysyłanie komend<br />void ssd1306_data ( uint8_t dat );//wysyłanie danych<br />void ssd1306_display (void);//wysyłanie danych do bufora<br />void ssd1306_setPixel( int x , int y , uint8_t bw); //zapalenie pixela<br /><br />#endif /* SSD1306_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1309">TomTea</a> — 15 sie 2014, o 21:14</p><hr />
]]></content>
</entry>
</feed>