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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-04-03T13:16:01+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=15006&amp;mode</id>
<entry>
<author><name><![CDATA[kularz]]></name></author>
<updated>2016-04-03T13:16:01+01:00</updated>
<published>2016-04-03T13:16:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157620#p157620</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157620#p157620"/>
<title type="html"><![CDATA[Re: Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157620#p157620"><![CDATA[
Dziękuje bardzo za pomoc, po wgraniu pliku HEX wyświetlacz zadziałał. Jeszcze raz będę próbował prześledzić swoją bibliotekęm bo gdzieś musi się kryć jeszcze jakiś błąd <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=11027">kularz</a> — 3 kwi 2016, o 13:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tmichal24]]></name></author>
<updated>2016-04-03T10:02:58+01:00</updated>
<published>2016-04-03T10:02:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157590#p157590</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157590#p157590"/>
<title type="html"><![CDATA[Re: Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157590#p157590"><![CDATA[
Podłącz do tych pinów co ci wyżej pisałem tylko do portu D. Na mojej m328 ten wsad działa<br />Jak do tego dodać plik hex????<br />Dobra już wiem <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=1651">tmichal24</a> — 3 kwi 2016, o 10:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kularz]]></name></author>
<updated>2016-04-02T21:59:09+01:00</updated>
<published>2016-04-02T21:59:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157571#p157571</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157571#p157571"/>
<title type="html"><![CDATA[Re: Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157571#p157571"><![CDATA[
Podłączyłem piny wyświetlacza do portów D, oglądnąłem ponownie poradnik Pana Mirka i znalazły się jeszcze z dwa błędy, które poprawiłem. Cóż, po tej poprawie dalej wyświetlacz nic nie pokazuje. Jakbym miał jakiś gotowy program, mógłbym sprawdzić czy w ogóle działa ten wyświetlacz działa, bo już sam nie wiem czy przypadkiem jakoś go nie zepsułem, jakimś nieprawidłowym podłączeniem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11027">kularz</a> — 2 kwi 2016, o 21:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tmichal24]]></name></author>
<updated>2016-04-02T19:44:33+01:00</updated>
<published>2016-04-02T19:44:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157555#p157555</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157555#p157555"/>
<title type="html"><![CDATA[Re: Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157555#p157555"><![CDATA[
Nie sprawdziłem wcześniej atm328 jeśli Ci brakuje pinów to spróbuj np. Portów PB lub PD. Nie chce Ci dawać gotowca bo jaka w tym nauka. Ale spróbuj przeanalizować co robisz<br />Jak ci się tego nie uda dopalić to pomogę z moją 328 ale nie dziś.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1651">tmichal24</a> — 2 kwi 2016, o 19:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kularz]]></name></author>
<updated>2016-04-02T19:18:16+01:00</updated>
<published>2016-04-02T19:18:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157549#p157549</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157549#p157549"/>
<title type="html"><![CDATA[Re: Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157549#p157549"><![CDATA[
w dokumentacji atmega328p nie ma na schemacie wyjścia PC7, porty zaczynają się od PC6 do którego jest podpięty reset od programatora ATB-USBasp. Podłączyłem i uruchomiłem wyświetlacz w takiej konfiguracji:<br />[syntax=c]#define USE_CS    0// ustawienie portu CS albo RST<br />#define USE_RST    1//<br /><br /><br />#define SCK (1&lt;&lt;5)   //&lt;---CLK <br />#define MOSI (1&lt;&lt;4)  //&lt;----SDA<br />#define RST (1&lt;&lt;1)   //&lt;----RST<br />#define DC (1&lt;&lt;2)    //<br /><br />#define CS (1&lt;&lt;3)[/syntax]<br /><br />W pliku .c<br /> dodałej funkcji ssd1306_init<br />[syntax=c]mk_ssd1306_init(SSD1306_SWITCHCAPVCC, REFRESH_MIN);[/syntax]<br /><br />ale po zaprogramowaniu żadnej reakcji ze strony wyświetlacza. Jeszcze będę próbował uruchomić ten wyświetlacz za pomocą procesora atmega328p, lecz jak to nie wyjdzie to zakupie atmega32 i wtedy krok po kroku jeszcze raz spróbuje uruchomić wyświetlacz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11027">kularz</a> — 2 kwi 2016, o 19:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tmichal24]]></name></author>
<updated>2016-04-02T16:31:12+01:00</updated>
<published>2016-04-02T16:31:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157535#p157535</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157535#p157535"/>
<title type="html"><![CDATA[Re: Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157535#p157535"><![CDATA[
Skoro masz wyświetlacz SPI to skąd wziąłeś piny SCL i SDA i po co to podciągasz do czegokolwiek. SCL i SDA to magistrala I2C.<br />Podłącz to tak: <br />Vcc i Gnd wiadomo <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br />CLK -&gt; PC7<br />MOSI -&gt; PC6<br />CS -&gt; PC3<br />D/C -&gt; PC4<br />RESET -&gt; PC5<br /><br />W pliku SSD1306.h poustawiaj sobie nazwy pinów tak jak ci podałem podłącz to tak do mikrokontrolera i zgodnie z poradnikami Mirka musi to działać. Reset ma być w inicjalizacji ssd1306_init i nie używaj w inicjacji pinu CS. Natomiast tylko pinu CS używaj w pozostałych funkcjach jak w poradniku musi działać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1651">tmichal24</a> — 2 kwi 2016, o 16:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kularz]]></name></author>
<updated>2016-04-02T11:18:05+01:00</updated>
<published>2016-04-02T11:18:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157527#p157527</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157527#p157527"/>
<title type="html"><![CDATA[Re: Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157527#p157527"><![CDATA[
Podłączyłem pin CS do GND ponieważ używałem pinu RST. Na stronie <a href="https://sklep.atnel.pl/pl/p/Wyswietlacz-OLED/100"  class="postlink">https://sklep.atnel.pl/pl/p/Wyswietlacz-OLED/100</a> w opisie wyświetlacza zaznaczono że jeśli nie korzysta się z wielu podłączonych wyświetlaczy nie trzeba podłączać pinu CS do procesora wystarczy do GND. <br />Nawet jak podpinam wszystkie piny OLED do procesora:<br /><br />#define SCK (1&lt;&lt;5)   //&lt;---SCL //ustawinie pinów portów C działąjący na spi<br />#define MOSI (1&lt;&lt;4)  //&lt;----SDA<br />#define RST (1&lt;&lt;1)   //&lt;----RST<br />#define DC (1&lt;&lt;2)    //<br /><br />#define CS (1&lt;&lt;3)<br /><br />i tak wyswietlacz nie reaguje. Może miałby ktoś jakąś prostą bibliotekę do tego wyswietlacza dla atmegi328p tylko żeby przetstować OLED czy w ogóle działa ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11027">kularz</a> — 2 kwi 2016, o 11:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[skalarro]]></name></author>
<updated>2016-04-01T23:31:12+01:00</updated>
<published>2016-04-01T23:31:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157511#p157511</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157511#p157511"/>
<title type="html"><![CDATA[Re: Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157511#p157511"><![CDATA[
nie wiem dlaczego maszpodłączone:<br /><br />CS ----&gt; GND,<br /><br />a za ccwilę definiujesz <br /><br />#define CS (1&lt;&lt;3)<br />#define DC_PORT         PORTC<br />#define DC_DDR          DDRC<br /><br />i jeszcze RST na tym samym pinie?<br /><br />Zmień reset na inny pin. Dalej się nie zagłębiałem bo na telefonie ciężko<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4850">skalarro</a> — 1 kwi 2016, o 23:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kularz]]></name></author>
<updated>2016-04-01T18:31:56+01:00</updated>
<published>2016-04-01T18:31:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157493#p157493</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157493#p157493"/>
<title type="html"><![CDATA[Re: Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157493#p157493"><![CDATA[
Dziękuje za zainteresowanie tematem. Poprawiłem te błędy oraz dodałem jeszcze rezystory 4,7k podciągające VCC do SCL(CLK) i SDA(MOSI), ale dalej jedynie widać czarny ekran<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11027">kularz</a> — 1 kwi 2016, o 18:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2016-04-01T17:34:53+01:00</updated>
<published>2016-04-01T17:34:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157485#p157485</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157485#p157485"/>
<title type="html"><![CDATA[Re: Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157485#p157485"><![CDATA[
W pliku mk_ssd1306.c masz:<br />[syntax=c]void ssd1306_InitSpi(void) {<br /> <br />        MOSI_DDR |= MOSI;<br /> <br />        SCK_DDR |=SCK;<br />        SCK_DDR |=SCK;[/syntax]<br /><br />a powinno być:<br />[syntax=c]void ssd1306_InitSpi(void) {<br /> <br />        MOSI_DDR |= MOSI;<br /> <br />        SCK_DDR |=SCK;<br />        SCK_PORT |=SCK;[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 8 minutach ]</span></strong><br /><br />W pliku mk_ssd1306.h brakuje znaku tyldy ~:<br />Masz:<br />[syntax=c]#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 DC_PORT &amp;= DC<br />#define SCK_HI DC_PORT |= DC<br /> <br />#define MOSI_LO MOSI_PORT &amp;= MOSI<br />#define MOSI_HI MOSI_PORT |= MOSI[/syntax]<br /><br />powinno być:<br />[syntax=c]#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 DC_PORT &amp;= ~DC<br />#define SCK_HI DC_PORT |= DC<br /> <br />#define MOSI_LO MOSI_PORT &amp;= ~MOSI<br />#define MOSI_HI MOSI_PORT |= MOSI[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 1 kwi 2016, o 17:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kularz]]></name></author>
<updated>2016-04-01T16:54:16+01:00</updated>
<published>2016-04-01T16:54:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157482#p157482</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157482#p157482"/>
<title type="html"><![CDATA[Wyświetlacz oled ssd1306 + Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15006&amp;p=157482#p157482"><![CDATA[
Witam.<br /><br />Zakupiłem ostatnio z sklepu Atnel wyświetlacz oled ssd1306 (Magistrlala SPI), podłączyłem go do Atmegi328p w następujący sposób:<br />VCC ---&gt; VCC<br />GND ---&gt;GND<br />CLK(SCK) ---&gt; PC5<br />MOSI ----&gt; PC4<br />CS ----&gt; GND<br />D/C ----&gt; PC2<br />RST ----&gt; PC3<br /><br />Po podłączeniu, podążałem z pisaniem biblioteki do obsługi wyświetlacza zgodnie z poradnikiem Pana Mirka do momentu aby cokolwiek się na nim wyświetliło tzw &quot;śmieci z pamięci&quot;<br /><br />plik .h<br />[syntax=c]/*<br /> * mk_ssd1306.h<br /> *<br /> *  Created on: 30-03-2016<br /> *      Author:<br /> */<br /><br />#ifndef MK_SSD1306_H_<br />#define MK_SSD1306_H_<br /><br />//rozdzielczosc LCd/OLED<br />#define SSD1306_128_64 //ustawienie rozdzielszczosci<br /><br />#define USE_CS0// ustawienie portu CS albo RST<br />#define USE_RST1//w zaleznosci od OLED<br /><br /><br />#define SCK (1&lt;&lt;5)   //&lt;---SCL //ustawinie pinów portów C działąjący na spi<br />#define MOSI (1&lt;&lt;4)  //&lt;----SDA<br />#define RST (1&lt;&lt;3)   //&lt;----RST<br />#define DC (1&lt;&lt;2)    //<br /><br />#define CS (1&lt;&lt;3)<br /><br />//Makra odnoszczace się do pinów<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 /><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 DC_PORT &amp;= DC<br />#define SCK_HI DC_PORT |= DC<br /><br />#define MOSI_LO MOSI_PORT &amp;= MOSI<br />#define MOSI_HI MOSI_PORT |= MOSI<br /><br />//Koniec makr<br />// definicje stałych odnoszace sie do rozdzielczosci<br /><br />#define SSD1306_WIDTH128<br /><br />#if defined SSD1306_128_64<br />#define SSD1306_HEIGHT64<br />#endif<br />#if defined SSD1306_128_32<br />#defineSSD1306_HEIGHT32<br />#endif<br /><br />// definicje odnoszące się do odwieżania<br /><br />#define REFRESH_MIN 0x80<br />#define REFRESH_MID 0xB0<br />#define REFRESH_MAX 0xF0<br /><br />// stałe opisujące komendy przesyłąne do wyswietlacza<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 /><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 />// Scrollonf #defines<br />#define SSD1306_ACTIVATE_SRCOLL 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 0xA7<br />#define SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL 0x29<br />#define SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL 0x2A<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />//deklaracje funkcji<br />void mk_ssd1306_init(uint8_t vcc, uint8_t refresh);<br />void mk_ssd1306_cmd( uint8_t cmd);<br />void mk_ssd1306_data(uint8_t dat);<br /><br /><br />#endif /* MK_SSD1306_H_ */[/syntax]<br /><br />pliki .c<br />[syntax=c]/*<br /> * mk_ssd1306.c<br /> *<br /> *  Created on: 30-03-2016<br /> *      Author:<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;mk_ssd1306.h&quot;<br /><br />uint8_t ssd1306_buf&#91;1024&#93; = {<br /><br />};<br /><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) MOSI_HI;<br />else MOSI_LO;<br />SCK_HI;<br />}<br />}<br /><br />void mk_ssd1306_cmd( uint8_t cmd ) {<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 />#if USE_CS == 1<br />CS_HI;<br />#endif<br />}<br /><br />void mk_ssd1306_data(uint8_t dat) {<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 />SPIwrite(dat);<br /><br />#if USE_CS == 1<br />CS_HI;<br />#endif<br />}<br /><br /><br />void ssd1306_InitSpi(void) {<br /><br />MOSI_DDR |= MOSI;<br /><br />SCK_DDR |=SCK;<br />SCK_DDR |=SCK;<br /><br />#if USE_RST == 1<br />RST_DDR |= RST;<br />RST_PORT |=RST;<br />#endif<br /><br />#if USE_CS == 1<br />CS_DDR |= CS;<br />CS_PORT |= CS;<br />#endif<br />}<br /><br />void mk_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 /><br />mk_ssd1306_cmd ( SSD1306_DISPLAYOFF );<br />mk_ssd1306_cmd ( SSD1306_SETDISPLAYCLOCKDIV );<br />//mk_ssd1306_cmd ( refresh );<br /><br />mk_ssd1306_cmd ( SSD1306_SETDISPLAYOFFSET );<br />mk_ssd1306_cmd ( 0x0 );<br />mk_ssd1306_cmd ( SSD1306_SETSTARTLINE | 0x0 );<br />mk_ssd1306_cmd ( SSD1306_CHARGEPUMP );<br /><br />if(vcc == SSD1306_EXTERNALVCC) mk_ssd1306_cmd (0x10);<br />else mk_ssd1306_cmd(0x14);<br /><br />mk_ssd1306_cmd ( SSD1306_MEMORYMODE );<br />mk_ssd1306_cmd ( 0x00 );<br />mk_ssd1306_cmd ( SSD1306_SEGREMAP | 0x1 );<br />mk_ssd1306_cmd ( SSD1306_COMSCANDEC );<br /><br />mk_ssd1306_cmd ( SSD1306_SETCONTRAST );<br /><br />if ( vcc == SSD1306_EXTERNALVCC ) mk_ssd1306_cmd( 0x9F );<br />else mk_ssd1306_cmd (0xCF);<br /><br />mk_ssd1306_cmd( SSD1306_SETPRECHARGE );<br /><br />// ssd1306 - 128x 32<br />#if defined SSD1306_128_32<br />mk_ssd1306_cmd (SSD1306_SETMULTIPLEX );<br />mk_ssd1306_cmd ( 0x1F );<br /><br />mk_ssd1306_cmd ( SSD1306_SETCOMPINS );<br />mk_ssd1306_cmd (0x02);<br />#endif<br /><br />// ssd1306 - 128 x 64<br />#if defined SSD1306_128_64<br />mk_ssd1306_cmd( SSD1306_SETMULTIPLEX );<br />mk_ssd1306_cmd( 0x3F);<br /><br />mk_ssd1306_cmd( SSD1306_SETCOMPINS);<br />mk_ssd1306_cmd( 0x12 );<br />#endif<br /><br />mk_ssd1306_cmd ( SSD1306_DISPLAYALLON_RESUME );<br />mk_ssd1306_cmd ( SSD1306_NORMALDISPLAY );<br /><br />mk_ssd1306_cmd ( SSD1306_DISPLAYON );<br /><br /><br /><br />}[/syntax]<br /><br />oraz plik main.c<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 30-03-2016<br /> *      Author: Artur Z<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;MK_OLED/mk_ssd1306.h&quot;<br /><br /><br />int main(void)<br />{<br />mk_ssd1306_init (SSD1306_SWITCHCAPVCC, REFRESH_MIN);<br />//DDRB |= 1&lt;&lt;PB0;<br />// PORTB |= 1&lt;&lt;PB0;<br /><br />while(1)<br />{<br /><br />}<br /><br /><br /><br />}[/syntax]<br /><br />Po zaprogramowaniu procesora nic nie wyświetliło się na wyświetlaczu. więc postanowiłem jeszcze raz oglądnąć poradnik do momentu uruchomienia wyświetlacza, złapałem kilka błędów przy pisaniu kodu, ale po ponownym zaprogramowaniu znowu nić się nie działa. Jakby miałby ktoś jakiś pomysł na rozwiązanie mojego problemu, będę wdzięczny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11027">kularz</a> — 1 kwi 2016, o 16:54</p><hr />
]]></content>
</entry>
</feed>