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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-09-08T18:46:38+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=23331&amp;mode</id>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2020-09-08T18:46:38+01:00</updated>
<published>2020-09-08T18:46:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23331&amp;p=228931#p228931</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23331&amp;p=228931#p228931"/>
<title type="html"><![CDATA[Re: SSD1306 c.d]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23331&amp;p=228931#p228931"><![CDATA[
Tak, powinno być CS_LO; Poprawione <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Ale, niestety dalej cisza na wyświetlaczu :/<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 41 minutach ]</span></strong><br /><br />Ok, znalazłem babola w inicjalizacji SPI <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=3441">Rafal9018</a> — 8 wrz 2020, o 18:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jez2000]]></name></author>
<updated>2020-09-08T01:38:53+01:00</updated>
<published>2020-09-08T01:38:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23331&amp;p=228929#p228929</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23331&amp;p=228929#p228929"/>
<title type="html"><![CDATA[Re: SSD1306 c.d]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23331&amp;p=228929#p228929"><![CDATA[
W funkcji ssd1306_cmd nie powinno być przypadkiem cs_lo?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11828">jez2000</a> — 8 wrz 2020, o 01:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2020-09-07T20:09:42+01:00</updated>
<published>2020-09-07T20:09:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23331&amp;p=228927#p228927</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23331&amp;p=228927#p228927"/>
<title type="html"><![CDATA[SSD1306 c.d]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23331&amp;p=228927#p228927"><![CDATA[
Cześć,<br /><br />próbuję uruchomić mój wyświetlacz OLED ze sterownikiem SSD1306. Po przeczytaniu całego stosu informacji w internecie zdecydowałem studiować poradniki Pana Mirka. W zasadzie słucham i przepisuję sobie poradnik. Chciałbym zrobić inicjalizację, ale niestety wyświetlacz nie reaguje po wgraniu programu. Zastanawiam się czy w ogóle mój wyświetlacz jest kompatybilny z samym poradnikiem. Ponieważ Pan Mirek podaje, że wyświetlacz może być z pinem CS albo RST. A ja mam oba te piny  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br />Chociaż próbowałem już wszystkich konfiguracji. <br /><br />Wyświetlacz jaki posiadam:<br /><!-- m --><a class="postlink" href="https://kamami.pl/wyswietlacze-oled-graficzne/559799-wyswietlacz-oled-waveshare-096-cala-b.html" >https://kamami.pl/wyswietlacze-oled-gra ... ala-b.html</a><!-- m --><br /><br />Macie pomysł dlaczego wyświetlacz może się nie inicjalizować ?<br /><br />[syntax=c]#define SSD1306_128_64<br /><br /><br />#define USE_CS1<br />#define USE_RST1<br /><br /><br /><br />#define SCK(1&lt;&lt;7)<br />#define MOSI  (1&lt;&lt;6)<br /><br />#define RST(1&lt;&lt;5)<br /><br />#defineDC(1&lt;&lt;4)<br />#define CS(1&lt;&lt;3)<br /><br /><br /><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 /><br /><br />#define SCK_HISCK_PORT |= SCK;<br />#define SCK_LOSCK_PORT &amp;= ~SCK;<br /><br />#define MOSI_HIMOSI_PORT |= MOSI;<br />#define MOSI_LOMOSI_PORT &amp;= ~MOSI;<br /><br />#define RST_HIRST_PORT |= RST;<br />#define RST_LORST_PORT &amp;= ~RST;<br /><br />#define DC_HIDC_PORT |= DC;<br />#define DC_LODC_PORT &amp;= ~DC;<br /><br />#define CS_HICS_PORT |= CS;<br />#define CS_LOCS_PORT &amp;= ~ CS;<br /><br /><br />#define SSD1306_WIDTH128<br /><br />#if defined SSD1306_128_64<br />#define SSD1306_HEIGHT 64<br />#endif<br /><br /><br />#define REFRESH_MIN0x80<br />#define REFRESH_MID0xB0<br />#define REFRESH_MAX0xF0<br /><br /><br /><br />/// komendy przesyłane do wyświetlacza<br /><br />#define SSD1306_SETCONTRAST  0x81<br />#define SSD1306_DISPLAYALLON_RESUME0xA4<br />#define SSD1306_DISPALYALLON0xA5<br />#define SSD1306_NORMALDISPALY0xA6<br />#define SSD1306_INVERTDISPLAY0xA7<br />#define SSD1306_DISPLAYOFF0xAE<br />#define SSD1306_DISPLAYON0xAF<br />#define SSD1306_SETDISPALYOFFSET0xD3<br />#define SSD1306_SETCOMPINS0xDA<br />#define SSD1306_SETVCOMDETECT0xDB<br />#define SSD1306_SETDISPALYLOCKDIV0xD5<br />#define SSD1306_SETPRECHARGE0xD9<br />#define SSD1306_SETMULTIPLEX0xA8<br />#define SSD1306_SETLOWCOLUMN0x00<br />#define SSD1306_SETHIGHCOLUMN0x10<br />#define SSD1306_SETSTARTLINE 0x40<br />#define SSD1306_MEMORYMODE0x20<br />#define SSD1306_COMSCANINC0xC0<br />#define SSD1306_COMSCANDEC0xC8<br />#define SSD1306_SEGREMAP0xA0<br />#define SSD1306_CHARGEPUMP0x8D<br />#define SSD1306_EXTERNALVCC0x1<br />#define SSD1306_SWITCHCAVCC0x2<br /><br />#define SSD1306_ACTIVATE_SCROLL0x2F<br />#define SSD1306_DEACTIVATE_SCROLL0x2E<br />#define SSD1306_SETVERTICALSCROLLAREA0xA3<br />#define SSD1306_RIGHT_HORIZONTAL_SCROLL0x26<br />#define SSD1306_LEFT_HORIZONTAL_SCROLL0x27<br />#define SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL0x29<br />#define SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL0x2A<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />// deklaracje funkcji<br /><br /><br />//static void SPIwrite (uint8_t dat);<br />void ssd1306_cmd (uint8_t cmd);<br />void ssd1306_data (uint8_t dat);<br />void ssd1306_init (uint8_t vcc, uint8_t refresh );<br />void ssd1306_init (uint8_t vcc, uint8_t refresh );[/syntax]<br /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;SSD1306.h&quot;<br /><br /><br /><br /><br /><br /><br />uint8_t ssd1306_buf &#91;1024&#93; = {};<br /><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 /><br /><br />SCK_LO;<br />if (dat &amp; i){ MOSI_HI;<br />}<br />else  MOSI_LO;<br />SCK_HI;<br /><br /><br />}<br />}<br /><br /><br />void 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_HI;<br />#endif<br /><br /><br /><br />SPIwrite (cmd);<br /><br />#if USE_CS==1<br />CS_HI;<br />#endif<br /><br />}<br /><br />void ssd1306_data (uint8_t dat) {<br /><br /><br />#if USE_CS==1<br />CS_HI;<br />#endif<br /><br />DC_HI;<br /><br /><br />#if USE_CS==1<br />CS_LO;<br />#endif<br /><br /><br />SPIwrite(dat);<br /><br />#if USE_CS==1<br />CS_HI;<br />#endif<br /><br /><br />}<br /><br /><br />void InitSpi (void){// Inicjalizacja sprzetowego SPI<br /><br />MOSI_DDR |= MOSI;<br /><br />SCK_DDR |= SCK;<br /><br />#if USE_RST==1<br />RST_DDR |= RST;<br />RST_PORT |= RST;<br />#endif<br /><br />DC_DDR |= DC;<br /><br />#if USE_CS==1<br />CS_DDR |= CS;<br />CS_PORT |= CS;<br />#endif<br /><br /><br />}<br /><br /><br /><br /><br />void ssd1306_init (uint8_t vcc, uint8_t refresh ) {<br /><br /><br />void 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 /><br /><br />#endif<br /><br />#if USE_CS == 1<br />CS_HI;<br />_delay_ms(25);<br />CS_LO;<br />_delay_ms(25);<br />CS_HI;<br />#endif<br /><br /><br /><br />ssd1306_cmd ( SSD1306_DISPLAYOFF );<br />ssd1306_cmd ( SSD1306_SETDISPALYLOCKDIV );<br />ssd1306_cmd ( refresh );<br /><br /><br />ssd1306_cmd ( SSD1306_SETDISPALYOFFSET );<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 ( 0x0 );<br />ssd1306_cmd ( SSD1306_SEGREMAP | 0x1 );<br />ssd1306_cmd ( SSD1306_COMSCANDEC );<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 />ssd1306_cmd ( SSD1306_SETCOMPINS );<br /><br />#if defined SSD1306_128_64<br /><br />ssd1306_cmd ( SSD1306_SETMULTIPLEX );<br />ssd1306_cmd ( 0x3F );<br /><br />ssd1306_cmd ( SSD1306_SETCOMPINS );<br />ssd1306_cmd ( 0x12 );<br /><br /><br /><br />#endif<br /><br />ssd1306_cmd ( SSD1306_DISPLAYALLON_RESUME );<br />ssd1306_cmd ( SSD1306_NORMALDISPALY );<br />ssd1306_cmd ( SSD1306_DISPLAYON );<br /><br /><br /><br /><br /><br /><br /><br /><br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3441">Rafal9018</a> — 7 wrz 2020, o 20:09</p><hr />
]]></content>
</entry>
</feed>