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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-02-01T19:24:43+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=14328&amp;mode</id>
<entry>
<author><name><![CDATA[mkk13]]></name></author>
<updated>2016-02-01T19:24:43+01:00</updated>
<published>2016-02-01T19:24:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=152341#p152341</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=152341#p152341"/>
<title type="html"><![CDATA[Re: ATmega88PA-PU Projekt termostatu - problem z PCD8544]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=152341#p152341"><![CDATA[
Jeden popsuty element RFM12b, który uważałem za odłączony - odłączyłem go od linii zasilania, ściągał w dół linie z SPI (zamiast poziomów 0-3v3, były 0-1V).<br /><br />Bo pełnym wylutowaniu zepsutego modułu wszystko zaczęło hulać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11698">mkk13</a> — 1 lut 2016, o 19:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mkk13]]></name></author>
<updated>2016-01-29T14:05:17+01:00</updated>
<published>2016-01-29T14:05:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=152052#p152052</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=152052#p152052"/>
<title type="html"><![CDATA[Re: ATmega88PA-PU Projekt termostatu - problem z PCD8544]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=152052#p152052"><![CDATA[
Ekrany zostały rozebrane w celu usunięcia brudu z gumek oraz lepszego dociśnięcia ich - niestety nadal nic.<br />Przejrzałem również biblioteki w różnych językach w celu podpatrzenia inicjalizacji - było tego dużo, ale również nie przyniosło efektu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11698">mkk13</a> — 29 sty 2016, o 14:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mkk13]]></name></author>
<updated>2016-01-28T20:29:31+01:00</updated>
<published>2016-01-28T20:29:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=151990#p151990</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=151990#p151990"/>
<title type="html"><![CDATA[Re: ATmega88PA-PU Projekt termostatu - problem z PCD8544]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=151990#p151990"><![CDATA[
Byłem dzisiaj w laboratorium w celu sprawdzenia czy wszystkie nogi wysyłają co powinny, no i czy podłączenie ekranu zmienia cokolwiek w związku z tym.<br /><br />Kod wykorzystałem trochę inny i prostszy <a href="http://hobby.abxyz.bplaced.net/index.php?pid=3&amp;aid=10"  class="postlink">*stąd*</a>:<br /><strong>main.c:</strong><br />[syntax=c]/*<br />    Plik &quot;main.c&quot;<br /><br />    LCD od nokia 3310 przykład 1.<br />    KURS AVR-GCC www.abxyz.bplaced.net  <br /><br />    testowane na atmega88 (8MHz)<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 &quot;lcd.h&quot;<br /><br />/* Dołącza dane z obrazkiem  */<br />const unsigned char hello_img&#91;&#93; PROGMEM = {<br />#include &quot;hello_img.h&quot;<br />};<br /><br /><br />int main(void)<br />{<br />    /* Inicjuje wyświetlacz */<br />    lcd_init();<br />    _delay_ms(30);<br />    /* pokaże obrazek  */ <br />    lcd_image(hello_img,0,0,84,6);<br /><br />    /* Zatrzymanie programu */    <br />    while(1);<br /><br />    return 0;<br />}[/syntax]<br /><br /><strong>lcd.h:</strong><br />[syntax=c]/*<br />    Plik &quot;lcd.h&quot;<br /><br />    LCD od nokia3310 przykład 1.<br />    KURS AVR-GCC www.abxyz.bplaced.net<br /><br />    testowane na atmega88 (8MHz) <br />*/<br /><br />#ifndef PCD8544_H<br />#define PCD8544_H<br /><br />/* 84 x 6 bajtów */<br />#define LCD_X 84<br />#define LCD_Y 6<br /><br /><br />// Użycie sprzętowego interfejsu SPI <br />#define ATMEGA_SPI 1<br /><br />/* CLK */<br />#define LCD_CLK_SET       PORTB |=  (1&lt;&lt;PB5);<br />#define LCD_CLK_CLR       PORTB &amp;= ~(1&lt;&lt;PB5);<br />#define LCD_CLK_SET_OUT   DDRB  |=  (1&lt;&lt;PB5);<br />/* DATA */<br />#define LCD_DATA_SET      PORTB |=  (1&lt;&lt;PB3);<br />#define LCD_DATA_CLR      PORTB &amp;= ~(1&lt;&lt;PB3);<br />#define LCD_DATA_SET_OUT  DDRB  |=  (1&lt;&lt;PB3);<br />/* DC */<br />#define LCD_DC_SET        PORTB |=  (1&lt;&lt;PB1);<br />#define LCD_DC_CLR        PORTB &amp;= ~(1&lt;&lt;PB1);<br />#define LCD_DC_SET_OUT    DDRB  |=  (1&lt;&lt;PB1);<br />/* CE */<br />#define LCD_CE_SET        PORTD |=  (1&lt;&lt;PD7);<br />#define LCD_CE_CLR        PORTD &amp;= ~(1&lt;&lt;PD7);<br />#define LCD_CE_SET_OUT    DDRD  |=  (1&lt;&lt;PD7);<br />/* RST */<br />#define LCD_RST_SET       PORTB |=  (1&lt;&lt;PB0);<br />#define LCD_RST_CLR       PORTB &amp;= ~(1&lt;&lt;PB0);<br />#define LCD_RST_SET_OUT   DDRB  |=  (1&lt;&lt;PB0);<br /><br /><br />#define LCD_NOP asm volatile(&quot;nop\n\t&quot;&quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; ::);<br /><br />#define LCD_CMD     0<br />#define LCD_DATA    1<br /><br />#define LCD_HOME lcd_write_byte(LCD_CMD, 0x40);lcd_write_byte(LCD_CMD, 0x80);<br />#define LCD_GOTO(x,y) lcd_write_byte(LCD_CMD, 0x40|(y));lcd_write_byte(LCD_CMD, 0x80|(x));<br /><br />void lcd_init(void);<br />void lcd_clear(void);<br />void lcd_write_byte( unsigned char, unsigned char );<br />void lcd_text(char &#91;&#93;, unsigned char , unsigned char );<br />void lcd_image(unsigned char &#91;&#93;,char , char , char , char );<br />#endif[/syntax]<br /><br /><strong>lcd.c:</strong><br />[syntax=c]/*<br />    Plik lcd.c<br /><br />    LCD od nokia 3310 przykład 1.<br />    KURS AVR-GCC www.abxyz.bplaced.net  <br /><br />    testowane na atmega88 (8MHz)<br />*/<br />#include &lt;stdio.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;lcd.h&quot;<br /><br />// Inicjuje wyświetlacz<br />void lcd_init(void)<br />{<br />    LCD_RST_CLR; <br /><br />    LCD_RST_SET_OUT<br />    LCD_CLK_SET_OUT<br />    LCD_DATA_SET_OUT <br />    LCD_DC_SET_OUT<br />    LCD_CE_SET_OUT<br /><br />// SPI_SS na wyjście, żeby SPI działało<br />DDRB |= (1&lt;&lt;PB2);<br /><br />#ifdef ATMEGA_SPI    <br />    // Konfiguracja sprzętowego SPI<br />    SPCR = (1&lt;&lt;SPE)|(1&lt;&lt;MSTR)|(1&lt;&lt;SPR0)|(1&lt;&lt;SPR1);<br />#endif<br />   //   &lt; 30ms<br />    _delay_ms(1000);<br />    <br />    LCD_RST_SET<br />LCD_CE_SET<br /><br />    lcd_write_byte(LCD_CMD, 0x21); // Function set - extended instruction set<br />    _delay_ms(15);<br /><br />    lcd_write_byte(LCD_CMD, 0x13); // Bias - 1:48<br />    _delay_ms(15);<br /><br />    lcd_write_byte(LCD_CMD, 0x06); // Temperature Control<br />    _delay_ms(15);<br /><br />    lcd_write_byte(LCD_CMD, 0xC8); // Set Vop<br />    _delay_ms(15);<br /><br />    lcd_write_byte(LCD_CMD, 0x20); // Function set - basic instruction set, horizontal addressing<br />    _delay_ms(15);<br /><br />    lcd_write_byte(LCD_CMD, 0x0C); // Display control - normal mode <br />}<br /><br /><br /><br /><br />#ifndef ATMEGA_SPI<br />// Wysyła do LCD jeden bajt<br />// c_d: LCD_DATA|LCD_CMD<br />void lcd_write_byte(unsigned char c_d, unsigned char data )<br />{<br />    unsigned char m; <br /><br />    LCD_CE_CLR<br /><br />    if(c_d) LCD_DC_SET else LCD_DC_CLR<br /><br />    for(m=0x80; m; m&gt;&gt;=1)<br />    {<br />       if(data &amp; m)<br />          LCD_DATA_SET <br />       else <br />          LCD_DATA_CLR <br /><br />       LCD_CLK_SET<br />       LCD_NOP<br />       LCD_CLK_CLR<br />    }<br /><br />    LCD_CE_SET<br />}<br /><br />#else<br />// Wysyła jeden bajt do LCD z użyciem sprzętowego SPI<br />// c_d: LCD_DATA|LCD_CMD<br />void lcd_write_byte(unsigned char c_d, unsigned char data )<br />{<br />    LCD_CE_CLR<br />_delay_ms(15);<br /><br />    if(c_d)  <br />       LCD_DC_SET<br />    else <br />       LCD_DC_CLR<br /><br />   _delay_ms(15);<br /><br />    SPDR = data;<br />    while(!(SPSR &amp; (1&lt;&lt;SPIF)));<br /><br />    _delay_ms(15);<br />    LCD_CE_SET<br />}<br />#endif<br /><br />// Wyświetla obrazek<br />// img, x0,y0,width, height/8<br />void lcd_image(unsigned char s&#91;&#93;,char  x, char y, char w, char h)<br />{     <br />   unsigned int i,j,k;<br />    <br />   for(i=0,j=0,k=0; i&lt;h; i++)   <br />   {  <br />      lcd_write_byte(LCD_CMD, 0x40|(i+y));<br />      lcd_write_byte(LCD_CMD, 0x80|(x));<br /><br />     for(j=0; j&lt;w ; j++,k++)<br />       lcd_write_byte(LCD_DATA, pgm_read_byte(&amp;s&#91;k&#93;));<br />   } <br />}[/syntax]<br /><br /><strong>hello_img.h:</strong><br />[syntax=c]0x00,0x00,0x00,0xf0,0xf8,0xfc,0xfc,0xfc,0xfc,0xfc,0xf8,0xf0,0xe0,0xf0,0xf0,0xf8,<br />0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf0,0xf0,0xe0,0xf0,0xf8,0xfc,0xfc,<br />0xfc,0xfc,0xfc,0xf8,0xf0,0x00,0x00,0x00,0x00,0xfc,0xfc,0xfc,0x80,0x80,0x80,0x80,<br />0xfc,0xfc,0x00,0x00,0xc0,0xe0,0xe0,0x20,0x20,0xe0,0xe0,0xc0,0x00,0xfc,0xfe,0xfe,<br />0x00,0xfc,0xfe,0xfe,0x00,0xc0,0xe0,0xe0,0x20,0x20,0xe0,0xe0,0xc0,0x00,0x00,0x00,<br />0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x07,0x0f,0x0f,0xff,0xff,0xff,0xff,<br />0xff,0xbf,0x1f,0xbf,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x3f,0x7f,<br />0xff,0xff,0xff,0xff,0x0f,0x0f,0x07,0x07,0x03,0x00,0x00,0x00,0x00,0x3f,0x3f,0x3f,<br />0x01,0x01,0x01,0x01,0x3f,0x3f,0x00,0x00,0x1f,0x3f,0x3f,0x22,0x22,0x23,0x23,0x1b,<br />0x00,0x3f,0x3f,0x3f,0x00,0x3f,0x3f,0x3f,0x00,0x1f,0x3f,0x3f,0x20,0x20,0x3f,0x3f,<br />0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />0x03,0x1f,0xbf,0xff,0xff,0xff,0xff,0xff,0xc7,0x03,0x31,0x71,0x71,0x31,0x03,0x87,<br />0xff,0xff,0xfe,0xff,0xff,0xbf,0x9f,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />0x00,0xfc,0xfc,0xfc,0x00,0x80,0xe0,0xe0,0x80,0x04,0xfc,0xfc,0xf8,0x00,0xc0,0xe0,<br />0xe0,0x20,0x20,0xe0,0xe0,0xc0,0x00,0xe0,0xc0,0xc0,0x20,0x60,0x00,0x00,0xfc,0xfe,<br />0xfe,0x00,0xc0,0xe0,0xe0,0x20,0x20,0xfc,0xfc,0xfe,0x00,0x00,0x00,0x00,0x70,0xf8,<br />0xfc,0xfc,0xfe,0x7e,0x3f,0x1f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,<br />0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x3f,0x7f,0xfe,0xfe,0xfc,<br />0xfc,0x30,0x00,0x00,0x00,0x03,0x3f,0x3f,0x3c,0x07,0x03,0x03,0x3f,0x3c,0x07,0x07,<br />0x01,0x00,0x1f,0x3f,0x3f,0x20,0x20,0x3f,0x3f,0x1f,0x00,0x3f,0x3f,0x3f,0x00,0x00,<br />0x00,0x00,0x3f,0x3f,0x3f,0x00,0x1f,0x3f,0x3f,0x20,0x20,0x3f,0x3f,0x3f,0x00,0x00,<br />0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,<br />0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,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,0xfc,0xfc,0xfc,0x00,0xfc,0xfc,0xfc,0x00,<br />0xfc,0xfc,0xfc,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,0x60,0x7f,0x7f,<br />0x7f,0x7f,0x7f,0x7f,0x3f,0x1f,0x07,0x00,0x01,0x07,0x1f,0x3f,0x7f,0x7f,0x7f,0x7f,<br />0x7f,0x7f,0x60,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,0x39,0x3b,0x3b,0x00,<br />0x39,0x3b,0x3b,0x00,0x39,0x3b,0x3b,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00[/syntax]<br /><br />Widać powprowadzane opóźnienia - wszystko, żeby lepiej było widać na oscyloskopie.<br />Zakładane parametry SPI:<br /><ul><li>atmega taktowana 8MHz</li><li> SPI włączone</li><li> MSB wysyłany jako pierwszy</li><li> MasterSPI mode</li><li> dane próbkowane na zboczu rosnącym, ustawiane na opadającym</li><li> preskaler SCK 1/128, więc SCK jest taktowane 8M/128 = 62,5kHz</li><li> SCK nisko, kiedy nie wykorzystywane</li></ul><br />Najpierw sprawdziłem poprawne połączenia z nóżkami atmegi - są takie, jak ustawione w pliku <em>lcd.h</em>.<br />Następnie odpaliłem oscyloskop i sprawdzałem sygnały:<br /><ol style="list-style-type: decimal"><li> RST zaczynał z dołu i po ~1s wskakiwał na HIGH</li><li> okres sygnału SCK był ok ~16us =&gt; taktowanie się zgadza</li><li> SCK występował w ładnych równych pikach po 8</li><li> MOSI/DN/DIN było elegancko ustawiane na opadającym zboczu zegara - zaobserwowałem kilka poprawnych komend np. 0x21, 0x20, 0x40</li><li> SCE zawsze wymijał się z zegarem - zawsze przy wysyłaniu był LOW, po zakończonym wysyłaniu obrazka wrócił na HIGH. Na początku widać wyraźne 6 pików, potem były o wiele częściej - zgodne z opóźnieniami w programie.</li><li> DC zawsze miał ustalony stan w trakcie wysyłania, nie zawsze ten sam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /></li><li> Zasilanie dzisiaj już tylko 3.21V - baterie powoli zaczynają mieć dość mojego testowania <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /></li><li> BL zwarte do zasilania się zapala jak złe. W przeciwnym wypadku w obecnym ustawieniu nic magicznego się z nim nie dzieje.</li></ol><br />Wygląda to tak samo niezależnie od tego czy LCD jest podłączony pod te nogi, czy nie. Sprawdziłem oba.<br />Tutaj wrzucam przykładowe zdjęcie z komendy <em>Function set - extended instruction set</em>:<br /><a href="https://obrazkiforum.atnel.pl/11698/d36d37c3b19be5f1e42bfd8181f8c029.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/11698/d36d37c3b19be5f1e42bfd8181f8c029.jpg" alt="Obrazek" /></a><br />Teal - SCK; Yellow - SDIN/MOSI/DIN/DN<br /><br />Niestety poprawy cały czas brak. Trochę zaczynam tracić pomysły co jeszcze sprawdzić lub jak :/<br />Wszelkie propozycję i pomysły z chęcią przyjmę <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=11698">mkk13</a> — 28 sty 2016, o 20:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mkk13]]></name></author>
<updated>2016-01-28T01:21:00+01:00</updated>
<published>2016-01-28T01:21:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=151945#p151945</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=151945#p151945"/>
<title type="html"><![CDATA[ATmega88PA-PU Projekt termostatu - problem z PCD8544]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14328&amp;p=151945#p151945"><![CDATA[
Dzień dobry,<br /><br />Mam taki swój projekcik i niestety napotkałem wielką ścianę w formie odpalenia ekranu LCD (PCD8544).<br />Próbowałem kod Sunrivera i wszystkie możliwe jego modyfikacje, które znalazłem na forum i w internecie. Kupiłem również drugi ekran myśląc, że pierwszy jest zepsuty - również na nic.<br /><br />Problem objawia się tym, że ani razu nie udało mi się dojrzeć czegokolwiek na ekranie.<br /><br />Czytałem następujące źródła:<br /><a href="http://ep.com.pl/files/2844.pdf"  class="postlink">http://ep.com.pl/files/2844.pdf</a><br /><a href="http://hobby.abxyz.bplaced.net/index.php?pid=3&amp;aid=10"  class="postlink">http://hobby.abxyz.bplaced.net/index.php?pid=3&amp;aid=10</a><br /><br />Kod jest SunRivera, ale z takimi 2 zmianami:<br />[syntax=c]// --------------- LCD Port<br />#define LCD_PORT                   PORTB<br />#define LCD_DDR                    DDRB<br />#define LCD_PORT_C                 PORTD<br />#define LCD_DDR_C                  DDRD<br /><br />// --------------- ATMega32 podłaczenie pinów<br /><br />#define LCD_DC_PIN                 PB1  // DC<br />#define LCD_CE_PIN                 PD7  // CE<br />#define SPI_MOSI_PIN               PB3  // MOSI<br />#define LCD_RST_PIN                PB0  // RST<br />#define SPI_CLK_PIN                PB5  // CLK[/syntax]<br /><br />[syntax=c]static void PCD_Snd ( byte data, LcdCmdData cd )<br />{<br />unsigned char m;<br /><br />LCD_PORT_C &amp;= ~( _BV( LCD_CE_PIN ) );<br /><br />if ( cd == LCD_DATA )<br />{<br />LCD_PORT |= _BV( LCD_DC_PIN );<br />}<br />else<br />{<br />LCD_PORT &amp;= ~( _BV( LCD_DC_PIN ) );<br />}<br /><br /><br />for(m=0x80; m; m&gt;&gt;=1)<br />{<br />if(data &amp; m)<br />LCD_PORT |= _BV( SPI_MOSI_PIN );<br />else<br />LCD_PORT &amp;= ~( _BV( SPI_MOSI_PIN ) );<br /><br />LCD_PORT |= _BV( SPI_CLK_PIN );<br />asm volatile(&quot;nop\n\t&quot;&quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; &quot;nop\n\t&quot; ::);<br />LCD_PORT &amp;= ~( _BV( SPI_CLK_PIN) );<br />}<br /><br />LCD_PORT_C |= _BV( LCD_CE_PIN );<br />}[/syntax]<br />Porty trochę inne - wymagało to też zmiany LCD_PORT/DDR na LCD_PORT/DDR_C kiedy CE był ruszany (z 2-3 przypadki w całym kodzie). Ta druga zmiana była w razie niepoprawnego działania SPI z przyczyn dowolnych.<br /><br />uC to atmega88PA-PU taktowana 1MHz - miałem nadzieję, że to załatwi problem f_max=4MHz dla PCD8544.<br />Płytka zasilana z 3 baterii AA, co idzie przez TPS62120 i daje w układzie napięcie ~3,28V.<br />Elektrolit przy wyjściu BL z LCD taki: <a href="http://pl.farnell.com/webapp/wcs/stores/servlet/ProductDisplay?catalogId=15001&amp;langId=-22&amp;urlRequestType=Base&amp;partNumber=9693491&amp;storeId=10170"  class="postlink">*link do konkretnego artykułu*</a><br />Ekrany mam 2: <a href="http://botland.com.pl/wyswietlacze-graficzne/2650-wyswietlacz-lcd-graficzny-84x48-nokia-5110-niebieski.html"  class="postlink">taki niebieski</a> i <a href="https://sklep.avt.pl/modul-wyswietlacz-lcd-nokia-5110.html"  class="postlink">taki czerwony</a><br /><br />Schemat:<br /><a href="https://obrazkiforum.atnel.pl/11698/46d13ceaecd09209a3aa1e4c62367cd6.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/11698/46d13ceaecd09209a3aa1e4c62367cd6.png" alt="Obrazek" /></a><br /><br />Jeśli oczywiście ekran zacznie działać, to będę dawać update'y nt. postępów, obecnego stanu i działania.<br /><br />Widziałem jeszcze pomysły o dolutowaniu CE i BL do masy - nie wiem czy może mieć to jakieś konsekwencje, ale nie wiem też czy ma szansę pomóc :/<br /><br />EDIT:<br />Żeby SunRiverowy Send działał, dodałem linijkę:<br />[syntax=c]DDRB |= (1&lt;&lt;PB2);[/syntax]<br />do inicjalizacji, bo w innym wypadku SS powodował problemy. Still...komendy przechodzą, a ja nadal nic nie widzę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11698">mkk13</a> — 28 sty 2016, o 01:21</p><hr />
]]></content>
</entry>
</feed>