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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-12-27T00:25:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=23&amp;t=13971&amp;mode</id>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-12-27T00:25:19+01:00</updated>
<published>2015-12-27T00:25:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148935#p148935</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148935#p148935"/>
<title type="html"><![CDATA[Re: Wyświetlacz 128x160 Nokia C1-01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148935#p148935"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />żeby ta biblioteka miała duże możliwości i sam już nie za bardzo wiem jakie do niej wrzucić funkcje<br /></div><br />Pooglądaj Mirkowe poradniki o OLEDach. Pokazuje tam co powinno być w takiej bibliotece i do czego można to użyć.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 27 gru 2015, o 00:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gentoo]]></name></author>
<updated>2015-12-26T17:28:14+01:00</updated>
<published>2015-12-26T17:28:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148909#p148909</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148909#p148909"/>
<title type="html"><![CDATA[Re: Wyświetlacz 128x160 Nokia C1-01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148909#p148909"><![CDATA[
Witam.<br />Jestem w trakcie pisania tej biblioteki i jakoś to idzie (wyświetliłem nawet obrazek, jednak widać to jak się wczytuje <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ).<br />Proszę jednak o pomoc, bo chciałbym, żeby ta biblioteka miała duże możliwości i sam już nie za bardzo wiem jakie do niej wrzucić funkcje (wzoruje się na podobnej bibliotece z arduino i potężnej bibliotece glcd do lcd z noki 3310).<br />Będzie na pewno:<br />-wyświetlanie: obrazków, znaków, stringów, linii, prostokątów, okręgów<br />-pozycjonowanie wskaźnika xy<br />-wybór pola pracy lcd<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11967">gentoo</a> — 26 gru 2015, o 17:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gentoo]]></name></author>
<updated>2015-12-25T11:49:47+01:00</updated>
<published>2015-12-25T11:49:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148845#p148845</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148845#p148845"/>
<title type="html"><![CDATA[Re: Wyświetlacz 128x160 Nokia C1-01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148845#p148845"><![CDATA[
Witam.<br />Udało się, wyświetliłem cokolwiek. Błędem była literówka:<br />[syntax=c]#define RST_High()   PORTC.OUTSET = PIN3_bm<br />#define RST_Low()    PORTC.OUTCLR = PIN3_bm<br />#define CS_High()    PORTC.OUTSET = PIN4_bm<br />#define CS_Low()     PORTC.OUTCLR = PIN3_bm[/syntax]<br /><br />Dla CS_Low(), powinno być PIN4_bm, a nie PIN3_bm. Nie wybierało w ogóle układu do pracy.<br />Kod trochę edytowałem i zrobiłem programowe SPI i troche pozmieniałem te definiecje, ale gdy skończę to udostępnię bibliotekę.<br />Do atmegi wystarczy tylko przeportować <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=11967">gentoo</a> — 25 gru 2015, o 11:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2015-12-24T01:36:42+01:00</updated>
<published>2015-12-24T01:36:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148800#p148800</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148800#p148800"/>
<title type="html"><![CDATA[Re: Wyświetlacz 128x160 Nokia C1-01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148800#p148800"><![CDATA[
Nie wiem dokładnie jak to wygląda w Xmegach, ale w zwykłych avr był taki problem, że gdy linia cs była ustawiona jako wejście i panował na niej stan niski to program zawieszał się na tej właśnie instrukcji. Ale jak mówiłem xmegami się nigdy nie zajmowałem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 24 gru 2015, o 01:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gentoo]]></name></author>
<updated>2015-12-23T10:31:01+01:00</updated>
<published>2015-12-23T10:31:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148757#p148757</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148757#p148757"/>
<title type="html"><![CDATA[Re: Wyświetlacz 128x160 Nokia C1-01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148757#p148757"><![CDATA[
Witam.<br />Z tego co udało mi się dzisiaj ustalić, to program zawiesza się i pozostaje w pętli sprawdzającej status SPI.<br />Ponadto popełniłem błąd przy wysyłaniu danych SPI, dzieląc je, a więc ta linijka jest niepotrzebna:<br /><br />[syntax=c]SPIC.DATA       =    cmd&gt;&gt;4;                        // wysyłanie danych<br />while(SPIC.STATUS == 0);[/syntax]<br /><br />Oraz ta:<br />[syntax=c]SPIC.DATA       =    data&gt;&gt;4;                        // wysyłanie danych<br />while(SPIC.STATUS == 0);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11967">gentoo</a> — 23 gru 2015, o 10:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gentoo]]></name></author>
<updated>2015-12-22T22:02:37+01:00</updated>
<published>2015-12-22T22:02:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148744#p148744</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148744#p148744"/>
<title type="html"><![CDATA[Wyświetlacz 128x160 Nokia C1-01]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13971&amp;p=148744#p148744"><![CDATA[
Witam.<br />Ostatnio przesiadłem się z ATmegi32 na ATxmege128 zafascynowany nowymi rozwiązaniami Atmela. Z racji tego iż znalazłem w swoich zbiorach kolorowy wyświetlacz z noki c1-01, postanowiłem podjąć się napisania biblioteki do jego sterowania, gdyż nie znalazłem takowej w internecie, tym bardziej na Xmege.<br />Po długich poszukiwaniach znalazłem wyprowadzenia wyświetlacza (<!-- m --><a class="postlink" href="http://www.amobbs.com/thread-5099383-1-1.html" >http://www.amobbs.com/thread-5099383-1-1.html</a><!-- m -->), zrobiłem przejściówkę na goldpiny i kierując się biblioteką zrobioną dla stm32, zacząłem pisać swoją bibliotekę. Ustaliłem, że sterownikiem jest SPFD54124 (<!-- m --><a class="postlink" href="http://www.elektroda.pl/rtvforum/download.php?id=400910" >http://www.elektroda.pl/rtvforum/download.php?id=400910</a><!-- m -->), a raczej jest on kompatybilnym odpowiednikiem zastosowanego (tak twierdzi google tłumacz chińsko-polski xd), natomiast sterowanie odbywa się przez 9-bitowe SPI (pierwszy bit to C/D - C=0, D=1; kolejne 8 to dane). <br />Niestety po wielu próbach nie jestem w stanie wyświetlić czegokolwiek na wyświetlaczu i nawet nie wiem czy następuje inicjalizacja. (Płytkę-przejściówkę sprawdziłem pod względem zwarć - brak jakichkolwiek, natomiast wszystkie piny łączą jak powinny; wyświetlacz nowy, nieużywany toteż powinien teoretycznie działać).<br />Oto mój kod programu i biblioteki:<br /><br />spfd_lcd.h<br />[syntax=c]#ifndef SPFD_LCD_H_<br />#define SPFD_LCD_H_<br /><br />#define RST_High()   PORTC.OUTSET = PIN3_bm<br />#define RST_Low()    PORTC.OUTCLR = PIN3_bm<br />#define CS_High()    PORTC.OUTSET = PIN4_bm<br />#define CS_Low()     PORTC.OUTCLR = PIN3_bm<br />#define SDA_High()   PORTC.OUTSET = PIN5_bm<br />#define SDA_Low()    PORTC.OUTCLR = PIN5_bm<br />#define SCK_High()   PORTC.OUTSET = PIN7_bm<br />#define SCK_Low()    PORTC.OUTCLR = PIN7_bm<br /><br /><br /><br />void PORTcfg (void);<br />void LCD_Write_Cmd (unsigned char cmd);<br />void LCD_Write_Data (unsigned char data);<br />void LCD_Clear(void);<br />void LCD_Init(void);<br />void LCD_SET_XY(unsigned char x, unsigned char y);<br />void LCD_Show_Char8(unsigned char c,unsigned char x, unsigned char y);<br />void LCD_Show_String8 (unsigned char *String,unsigned char x,unsigned char y);<br /><br />#endif /* SPFD_LCD_H_ */[/syntax]<br /><br />spfd_lcd.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;spfd_lcd.h&quot;<br />#include &quot;Font8x16.h&quot;<br /><br /><br />void PORTcfg (void){<br /><br />PORTC.DIRSET    =    PIN4_bm | PIN5_bm | PIN7_bm;   // wyjścia SPI (CS, SDA, SCK)<br />PORTC.DIRSET    = PIN3_bm;// RST<br />PORTC.DIRCLR    =    PIN6_bm;// wejścia SPI (MISO)<br /><br />SPIC.CTRL       =    SPI_ENABLE_bm |                // włączenie SPI<br />                     SPI_MASTER_bm |                // tryb master<br />                     SPI_MODE_0_gc |                // tryb 3<br />                     SPI_PRESCALER_DIV64_gc;// prescaler<br /><br />}<br /><br />void LCD_Write_Cmd (unsigned char cmd)<br />{<br />SPIC.CTRL       =    !SPI_ENABLE_bm;<br />SCK_Low();<br />CS_Low();<br />SDA_Low();<br />SCK_High();<br />SCK_Low();<br />SPIC.CTRL       =    SPI_ENABLE_bm;<br />SPIC.DATA       =    cmd&gt;&gt;4;                        // wysyłanie danych<br />while(SPIC.STATUS == 0);<br />SPIC.DATA       =    cmd;                        // wysyłanie danych<br />while(SPIC.STATUS == 0);<br />CS_High();<br />}<br /><br />void LCD_Write_Data (unsigned char data)<br />{<br />SPIC.CTRL       =    !SPI_ENABLE_bm;<br />SCK_Low();<br />CS_Low();<br />SDA_High();<br />SCK_High();<br />SCK_Low();<br />SPIC.CTRL       =    SPI_ENABLE_bm;<br />SPIC.DATA       =    data&gt;&gt;4;                        // wysyłanie danych<br />while(SPIC.STATUS == 0);<br />SPIC.DATA       =    data;                        // wysyłanie danych<br />while(SPIC.STATUS == 0);<br />CS_High();<br />}<br /><br />void LCD_Clear(void)<br />{<br />    unsigned int i;<br />LCD_Write_Cmd(0x2a);     // x-addres 0to0x83<br />LCD_Write_Data(0x00); //xsta:BIT0-7<br />LCD_Write_Data(0x00); //xend:BIT0-7<br />    LCD_Write_Data(0x00); //xsta:BIT0-7<br />LCD_Write_Data(0x83); //xend:BIT0-7<br /><br />LCD_Write_Cmd(0x2b);     // y-address 0to0xa1<br />LCD_Write_Data(0x00); //Ysta:BIT0-7<br />LCD_Write_Data(0x00); //xend:BIT0-7<br />LCD_Write_Data(0x00); //xsta:BIT0-7<br />LCD_Write_Data(0xa1); //xend:BIT0-7<br /><br />LCD_Write_Cmd(0x2c);     //RAMWR<br />for(i=0;i&lt;21384;i++)<br />{<br />    LCD_Write_Data(0x00);<br />LCD_Write_Data(0x00);<br />}<br />}<br /><br />void LCD_Init(void)<br />{<br />RST_Low();<br />_delay_ms(10);<br />RST_High();<br />_delay_ms(10);<br />//LCD_Write_Cmd(0x01);      //Software Reset<br />//_delay_ms(10);<br /><br />LCD_Write_Cmd(0x11);<br />_delay_ms(10);<br /><br /><br />    LCD_Write_Cmd(0x3a);          //Interface pixel format:bit1,2,3<br />LCD_Write_Data(0x05);        //<br />//LCD_Write_Cmd(0x36);        //MEMORY DATA ACCESS CONTROL<br />//LCD_Write_Data(0xc0);      //MEMORY DATA ACCESS CONTROL<br /><br />LCD_Write_Cmd(0x29);          //Display on,0x29=ON,0x28=OFF<br />}<br /><br />void LCD_SET_XY(unsigned char x, unsigned char y)<br />{<br />LCD_Write_Cmd(0x2a);     // x-addres<br />LCD_Write_Data(0x00); //xsta:BIT0-7<br />LCD_Write_Data(x+2); //xsta:BIT0-7<br />LCD_Write_Data(0x00); //xend:BIT0-7<br />LCD_Write_Data(0x83); //xend:BIT0-7<br /><br />    LCD_Write_Cmd(0x2b);     // y-address<br />LCD_Write_Data(0x00); //xend:BIT0-7<br />LCD_Write_Data(y);     //Ysta:BIT0-7<br />LCD_Write_Data(0x00); //xend:BIT0-7<br />LCD_Write_Data(0xA1); //xend:BIT0-7<br /><br />LCD_Write_Cmd(0x2c); //RAMWR<br />}<br /><br />void LCD_Show_Char8(unsigned char c,unsigned char x, unsigned char y)<br />{<br />    unsigned char k,Mline,Ctemp;<br />    LCD_SET_XY(x,y);<br />    c -= 0x20;<br /><br />    for (Mline=0; Mline&lt;16; Mline++)<br />    {<br />        Ctemp=font8x16&#91;c&#93;&#91;Mline&#93;;<br />        for(k=0;k&lt;8;k++)<br />        {<br />            if(Ctemp&amp;0x01)<br />            {<br />                LCD_Write_Data(0x07);<br />LCD_Write_Data(0xe0);<br />}<br />            else<br />            {<br />                LCD_Write_Data(0x00);<br />LCD_Write_Data(0x00);<br />}<br />           Ctemp=Ctemp&gt;&gt;1;<br />        }<br />        LCD_SET_XY(x,++y);<br />    }<br />}<br /><br />void LCD_Show_String8 (unsigned char *String,unsigned char x,unsigned char y)<br />{<br />while ( * String )<br />{<br />LCD_Show_Char8( *String++,x,y);<br />        x+=8;<br />}<br />}[/syntax]<br /><br />main.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;lcd/spfd_lcd.h&quot;<br /><br /><br />int main(){<br /><br />PORTcfg();<br />LCD_Init();<br />LCD_Show_Char8 (0x67,10,10);<br />LCD_Show_Char8 (0x67,10,20);<br />LCD_Show_Char8 (0x67,20,10);<br />LCD_Show_Char8 (0x67,20,20);<br /><br />while(1){<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11967">gentoo</a> — 22 gru 2015, o 22:02</p><hr />
]]></content>
</entry>
</feed>