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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2021-09-21T20:53:58+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=23925&amp;mode</id>
<entry>
<author><name><![CDATA[Bystrzacha]]></name></author>
<updated>2021-09-21T20:53:58+01:00</updated>
<published>2021-09-21T20:53:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23925&amp;p=233628#p233628</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23925&amp;p=233628#p233628"/>
<title type="html"><![CDATA[Re: Funkcja biblioteczna nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23925&amp;p=233628#p233628"><![CDATA[
Faktycznie teraz już wszystko śmiga jak trzeba. Dziękuję bardzo za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17681">Bystrzacha</a> — 21 wrz 2021, o 20:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-09-21T08:55:30+01:00</updated>
<published>2021-09-21T08:55:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23925&amp;p=233616#p233616</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23925&amp;p=233616#p233616"/>
<title type="html"><![CDATA[Re: Funkcja biblioteczna nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23925&amp;p=233616#p233616"><![CDATA[
A gdzie masz pętlę główną programu w main ? Nie dziwota że wydaje ci się, że ta funkcja nie działa - bo działa ale tak krótko że nawet nie zauważysz jej działania. Zrozum i zajrzyj do Bluebooka do NAJPROSTSZEJ wersji pliku main w pierwszym rozdziale o języku C i poczytaj dlaczego musi być pętla główna programu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 wrz 2021, o 08:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bystrzacha]]></name></author>
<updated>2021-09-21T08:17:53+01:00</updated>
<published>2021-09-21T08:17:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23925&amp;p=233614#p233614</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23925&amp;p=233614#p233614"/>
<title type="html"><![CDATA[Funkcja biblioteczna nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23925&amp;p=233614#p233614"><![CDATA[
Witam,<br />ostatnio zacząłem pisać bibliotekę do sterownika ILI9341 i mam jeden problem. Wszystkie funkcje tej biblioteki poza jedną działają, nie działa tylko funkcja napisana na potrzeby sprawdzenia czy pozostałe funkcje biblioteczne działają. Ta funkcja to: void test( void ). <br />Sytuacja wygląda tak, że kiedy tą funkcję podpiną w kod innej funkcji tej biblioteki to normalne jej program się wykonuje. Jednak kiedy zamieszcza ją w pliku main.c nie wykonuje się. Nie mam pomysłu co może być nie tak, tylko ta jedna funkcja nie chce się wykonać. Jeśli ktoś wie co może być tego przyczyną to proszę o pomoc. Poniżej zamieszczam cały kod:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;TFT_ILI9341_lib/TFT_ILI9341.h&quot;<br /><br />int main( void ) {<br /><br /><br />    ILI9341_init();<br /><br />    fillScreen( BLACK );<br />    Write( 50, 20, 0, &quot;jakq masz temperaturw?&quot;, GREEN );<br /><br />    test();<br />}[/syntax]<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;math.h&gt;<br /><br />#include &quot;TFT_ILI9341.h&quot;<br /><br /><br />//===================================================Ustawienie typu DDR(x)========================================================//<br />void TFT_ILI9341_DDR_init( void )                                                                                                  //<br />{                                                                                                                                  //<br />    TFT_DDR_CONF |= (( 1 &lt;&lt; TFT_RST ) | ( 1 &lt;&lt; TFT_CS ) | ( 1 &lt;&lt; TFT_RS ) | ( 1 &lt;&lt; TFT_WR ) | ( 1 &lt;&lt; TFT_RD ) );                   //<br />    TFT_DDR_DATA1 |= (( 1 &lt;&lt; TFT_D0 ) | ( 1 &lt;&lt; TFT_D1 ) | ( 1 &lt;&lt; PB5 ) );                                                                    //<br />    TFT_DDR_DATA2 |= (( 1 &lt;&lt; TFT_D2 ) | ( 1 &lt;&lt; TFT_D3 ) | ( 1 &lt;&lt; TFT_D4 ) | ( 1 &lt;&lt; TFT_D5 ) | ( 1 &lt;&lt; TFT_D6 ) | ( 1 &lt;&lt; TFT_D7 ) ); //<br />    //<br />}                                                                                                                                  //<br />//=================================================================================================================================//<br />void test( void) {<br />    PORTB |= ( 1 &lt;&lt; PB5 );<br />    _delay_ms( 5000 );<br />    PORTB &amp;= ~( 1 &lt;&lt; PB5 );<br />    _delay_ms( 2000 );<br />}<br /><br /><br /><br />//---Zatrzask---//<br />void WR_STROBE( void ) {<br />    TFT_PORT_CONF |= ( 1 &lt;&lt; TFT_WR );<br />    _delay_ms( 10 );                               //dane na próbę!!!!!<br />    TFT_PORT_CONF &amp;= ~( 1 &lt;&lt; TFT_WR );<br />}<br /><br />//---Funkcja zapisu 8 bitów---//<br />void write8( uint8_t a ) {<br />    TFT_PORT_DATA1 |= (( 0b00000011 ) &amp; ( a ) );<br />    TFT_PORT_DATA2 |= (( 0b11111100 ) &amp; ( a ) );<br />    WR_STROBE();<br />}<br /><br />//---Funkcja zapisu 8 bitów do wskazanego rejestru sterownika---//<br />void writeRegister8( uint8_t cmd, uint16_t data ) {<br />    CMD_MASK;<br />    write8( cmd );<br />    DATA_MASK;<br />    write8( data );<br />    TFT_PORT_CONF |= ( 1 &lt;&lt; TFT_WR );<br /><br />}<br /><br />//---Funkcja zapisu 16 bitów do wskazanego rejestru sterownika---//<br />void writeRegister16( uint8_t cmd, uint16_t data ) {<br />    uint8_t hi, lo;<br />    hi = ( cmd ) &gt;&gt; 8;<br />    lo = ( cmd );<br />    CMD_MASK;<br />    write8( hi );<br />    write8( lo );<br />    hi = ( data ) &gt;&gt; 8;<br />    lo = ( data );<br />    DATA_MASK;<br />    write8( hi );<br />    write8( lo );<br />    TFT_PORT_CONF |= ( 1 &gt;&gt; TFT_WR );<br /><br />}<br /><br />///---Funkcja zapisu 32 bitów do wskazanego rejestru sterownika---//<br />void writeRegister32( uint8_t cmd, uint32_t data ) {<br />    TFT_PORT_CONF &amp;= ~( 1 &lt;&lt; TFT_CS );<br />    CMD_MASK;<br />    write8( cmd );<br />    DATA_MASK;<br />    _delay_us( 10 );<br />    write8( data &gt;&gt; 24 );<br />    _delay_us( 10 );<br />    write8( data &gt;&gt; 16 );<br />    _delay_us( 10 );<br />    write8( data &gt;&gt; 8 );<br />    _delay_us( 10 );<br />    write8( data );<br />    TFT_PORT_CONF |= (( 1 &lt;&lt; TFT_CS ) | ( 1 &lt;&lt; TFT_WR ) );<br /><br />}<br /><br />//---Ustawienie kursora---//<br />void setAddrWindow( int x1, int y1, int x2, int y2 ) {<br />    TFT_PORT_CONF &amp;= ~( 1 &lt;&lt; TFT_CS );<br /><br />    uint32_t t;<br /><br />    t = x1;<br />    t &lt;&lt;= 16;<br />    t |= x2;<br />    writeRegister32( ILI9341_COLADDRSET, t );<br />    t = y1;<br />    t &lt;&lt;= 16;<br />    t |= y2;<br />    writeRegister32( ILI9341_PAGEADDRSET, t );<br />    TFT_PORT_CONF |= ( 1 &lt;&lt; TFT_CS );<br /><br />}<br /><br />//---Inicjalizacja wyświetlacza---//<br />void ILI9341_init() {<br /><br />    TFT_ILI9341_DDR_init();<br /><br />    RESET;<br />    _delay_ms( 320 );    // 200ms + 120ms = 320ms<br />    TFT_PORT_CONF &amp;= ~( 1 &lt;&lt; TFT_CS );<br />    writeRegister8( ILI9341_SOFTRESET, 0 );<br />    _delay_ms( 50 );<br />    writeRegister8( ILI9341_DISPLAYOFF, 0 );<br /><br />    writeRegister8( ILI9341_POWERCONTROL1, 0x23 );<br />    writeRegister8( ILI9341_POWERCONTROL2, 0x10 );<br />    writeRegister16( ILI9341_VCOMCONTROL1, 0x2B2B );<br />    writeRegister8( ILI9341_VCOMCONTROL2, 0xC0 );<br />    writeRegister8( ILI9341_MEMCONTROL, ILI9341_MADCTL_MY | ILI9341_MADCTL_BGR );<br />    writeRegister8( ILI9341_PIXELFORMAT, 0x55 );<br />    writeRegister16( ILI9341_FRAMECONTROL, 0x001B );<br /><br />    writeRegister8( ILI9341_ENTRYMODE, 0x07 );<br /><br />    writeRegister8( ILI9341_SLEEPOUT, 0 );<br />    _delay_ms( 150 );<br />    writeRegister8( ILI9341_DISPLAYON, 0 );<br />    _delay_ms( 500 );<br />    setAddrWindow( 0, 0, TFTWIDTH - 1, TFTHEIGHT - 1 );<br /><br />}<br /><br />//---Funkcja kolorująca ekran - pomocnicza dla fillScreen<br />void flood( uint16_t color, uint32_t len ) {<br />    uint8_t i, hi = color &gt;&gt; 8, lo = color;<br /><br />    TFT_PORT_CONF &amp;= ~( 1 &lt;&lt; TFT_CS );<br />    CMD_MASK;<br />    write8( 0x2c );<br />    DATA_MASK;<br />    write8( hi );<br />    write8( lo );<br />    len--;<br />    uint32_t blocks = ( uint16_t )( len / 64 ); // 64 pixels/block<br />    if ( hi == lo ) {<br />        // High and low bytes are identical.  Leave prior data<br />        // on the port(s) and just toggle the write strobe.<br />        while ( blocks-- ) {<br />            i = 16; // 64 pixels/block / 4 pixels/pass<br />            do {<br />                WR_STROBE();<br />                WR_STROBE();<br />                WR_STROBE();<br />                WR_STROBE(); // 2 bytes/pixel<br />                WR_STROBE();<br />                WR_STROBE();<br />                WR_STROBE();<br />                WR_STROBE(); // x 4 pixels<br />            } while ( --i );<br />        }<br />        // Fill any remaining pixels (1 to 64)<br />        for ( i = ( uint8_t )len &amp; 63; i--; ) {<br />            WR_STROBE();<br />            WR_STROBE();<br />        }<br />    } else {<br />        while ( blocks-- ) {<br />            i = 16; // 64 pixels/block / 4 pixels/pass<br />            do {<br />                write8( hi );<br />                write8( lo );<br />                write8( hi );<br />                write8( lo );<br />                write8( hi );<br />                write8( lo );<br />                write8( hi );<br />                write8( lo );<br />            } while ( --i );<br />        }<br />        for ( i = ( uint8_t )len &amp; 63; i--; ) {<br />            write8( hi );<br />            write8( lo );<br />        }<br />    }<br />    TFT_PORT_CONF |= ( 1 &lt;&lt; TFT_CS );<br /><br />}<br /><br />//---Funkcja wypełniająca ekran---//<br />void fillScreen( uint16_t color ) {<br />    setAddrWindow( 0, 0, TFTWIDTH - 1, TFTHEIGHT - 1 );<br />    flood( color, ( long )TFTWIDTH * ( long )TFTHEIGHT );<br /><br />}<br /><br />//---Funkcja rysująca pixel---//<br />void drawPixel( uint16_t color, int x, int y ) {<br /><br />    setAddrWindow( x, y, TFTWIDTH - 1, TFTHEIGHT - 1 );<br /><br />    uint8_t hi = color &gt;&gt; 8, lo = color;<br /><br />    TFT_PORT_CONF &amp;= ~( 1 &lt;&lt; TFT_CS );<br />    CMD_MASK;<br />    write8( 0x2c );<br />    DATA_MASK;<br />    write8( hi );<br />    write8( lo );<br />    WR_STROBE();<br />    TFT_PORT_CONF |= ( 1 &lt;&lt; TFT_CS );<br /><br />}<br /><br /><br />//---Funkcja wypisująca pojedynczy znak---//<br />void Sign( int x, int y, uint16_t color, char znak ) {<br /><br />    int xn = x;<br /><br />#define font_width 9<br />#define font_height 11<br /><br /><br /><br />    uint16_t font&#91;&#93; = {<br />        // @0   &#91;?&#93;   (5 px wide)<br />        0x70,  //   .###.    //<br />        0x88,  //   #...#    //<br />        0x88,  //   #...#    //<br />        0x08,  //   ....#    //<br />        0x10,  //   ...#.    //<br />        0x20,  //   ..#..    //<br />        0x20,  //   ..#..    //<br />        0x00,  //   .....    //<br />        0x20,  //   ..#..    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br /><br />        // @11   &#91;a&#93;   (5 px wide)<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x70,  //   .###.    //<br />        0x88,  //   #...#    //<br />        0x08,  //   ....#    //<br />        0x78,  //   .####    //<br />        0x88,  //   #...#    //<br />        0x98,  //   #..##    //<br />        0x68,  //   .##.#    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br /><br />        // @22   &#91;e&#93;   (5 px wide)<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x70,  //   .###.    //<br />        0x88,  //   #...#    //<br />        0x88,  //   #...#    //<br />        0xF8,  //   #####    //<br />        0x80,  //   #....    //<br />        0x88,  //   #...#    //<br />        0x70,  //   .###.    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br /><br />        // @33   &#91;j&#93;   (2 px wide)<br />        0x02,  //   ....#.    //<br />        0x02,  //   ....#.    //<br />        0x02,  //   ....#.    //<br />        0x02,  //   ....#.    //<br />        0x02,  //   ....#.    //<br />        0x02,  //   ....#.    //<br />        0x02,  //   ....#.    //<br />        0x02,  //   ....#.    //<br />        0x02,  //   ....#.    //<br />        0x02,  //   ....#.    //<br />        0x1C,  //   ####..    //<br /><br />        // @44   &#91;k&#93;   (5 px wide)<br />        0x80,  //   #....    //<br />        0x80,  //   #....    //<br />        0x88,  //   #...#    //<br />        0x90,  //   #..#.    //<br />        0xA0,  //   #.#..    //<br />        0xE0,  //   ###..    //<br />        0x90,  //   #..#.    //<br />        0x90,  //   #..#.    //<br />        0x88,  //   #...#    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br /><br />        // @55   &#91;m&#93;   (9 px wide)<br />        0x0000,  //   .........    //<br />        0x0000,  //   .........    //<br />        0x0166,  //   #.##..##.    //<br />        0x0199,  //   ##..##..#    //<br />        0x0111,  //   #...#...#    //<br />        0x0111,  //   #...#...#    //<br />        0x0111,  //   #...#...#    //<br />        0x0111,  //   #...#...#    //<br />        0x0111,  //   #...#...#    //<br />        0x0000,  //   .........    //<br />        0x0000,  //   .........    //<br /><br />        // @77   &#91;p&#93;   (5 px wide)<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0xB0,  //   #.##.    //<br />        0xC8,  //   ##..#    //<br />        0x88,  //   #...#    //<br />        0x88,  //   #...#    //<br />        0x88,  //   #...#    //<br />        0xC8,  //   ##..#    //<br />        0xB0,  //   #.##.    //<br />        0x80,  //   #....    //<br />        0x80,  //   #....    //<br /><br />        // @88   &#91;r&#93;   (3 px wide)<br />        0x00,  //   ...    //<br />        0x00,  //   ...    //<br />        0xA0,  //   #.#    //<br />        0xC0,  //   ##.    //<br />        0x80,  //   #..    //<br />        0x80,  //   #..    //<br />        0x80,  //   #..    //<br />        0x80,  //   #..    //<br />        0x80,  //   #..    //<br />        0x00,  //   ...    //<br />        0x00,  //   ...    //<br /><br />        // @99   &#91;s&#93;   (5 px wide)<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x70,  //   .###.    //<br />        0x88,  //   #...#    //<br />        0x80,  //   #....    //<br />        0x70,  //   .###.    //<br />        0x08,  //   ....#    //<br />        0x88,  //   #...#    //<br />        0x70,  //   .###.    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br /><br />        // @110   &#91;t&#93;   (3 px wide)<br />        0x40,  //   .#.    //<br />        0x40,  //   .#.    //<br />        0xE0,  //   ###    //<br />        0x40,  //   .#.    //<br />        0x40,  //   .#.    //<br />        0x40,  //   .#.    //<br />        0x40,  //   .#.    //<br />        0x40,  //   .#.    //<br />        0x60,  //   .##    //<br />        0x00,  //   ...    //<br />        0x00,  //   ...    //<br /><br />        // @121   &#91;u&#93;   (5 px wide)<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x88,  //   #...#    //<br />        0x88,  //   #...#    //<br />        0x88,  //   #...#    //<br />        0x88,  //   #...#    //<br />        0x88,  //   #...#    //<br />        0x88,  //   #...#    //<br />        0x78,  //   .####    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br /><br />        // @132   &#91;z&#93;   (5 px wide)<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0xF8,  //   #####    //<br />        0x10,  //   ...#.    //<br />        0x10,  //   ...#.    //<br />        0x20,  //   ..#..    //<br />        0x40,  //   .#...    //<br />        0x40,  //   .#...    //<br />        0xF8,  //   #####    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br /><br />        // @143   &#91;ą&#93;   (5 px wide)<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x70,  //   .###.    //<br />        0x88,  //   #...#    //<br />        0x08,  //   ....#    //<br />        0x78,  //   .####    //<br />        0x88,  //   #...#    //<br />        0x98,  //   #..##    //<br />        0x68,  //   .##.#    //<br />        0x10,  //   ...#.    //<br />        0x18,  //   ...##    //<br /><br />        // @154   &#91;ę&#93;   (5 px wide)<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x70,  //   .###.    //<br />        0x88,  //   #...#    //<br />        0x88,  //   #...#    //<br />        0xF8,  //   #####    //<br />        0x80,  //   #....    //<br />        0x88,  //   #...#    //<br />        0x70,  //   .###.    //<br />        0x20,  //   ..#..    //<br />        0x30,  //   ..##.    //<br /><br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x00,  //   .ooo.    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />        0x00,  //   .....    //<br />    };<br /><br />    char znak_info&#91;&#93; = {<br />        '?',<br />        'a',<br />        'e',<br />        'j',<br />        'k',<br />        'm',<br />        'p',<br />        'r',<br />        's',<br />        't',<br />        'u',<br />        'z',<br />        'q',<br />        'w',<br />        ' ',<br />    };<br /><br />    int font_info&#91;&#93; = {<br />        0,<br />        11,<br />        22,<br />        33,<br />        44,<br />        55,<br />        66,<br />        77,<br />        88,<br />        99,<br />        110,<br />        121,<br />        132,<br />        143,<br />        154,<br />        165,<br />    };<br /><br />    for ( uint8_t i = 0;i &lt; font_height;i++ ) {<br />        for ( uint8_t a = 0;a &lt; font_width;a++ ) {<br />            uint8_t wiersz = 0;<br /><br />            int zwrot = 0;<br />            int z = 0;<br />            int k = 1;<br />            while ( k ) {<br />                if ( znak == znak_info&#91;z&#93; ) {<br />                    zwrot = z;<br />                    k = 0;<br />                } else {<br />                    k = 1;<br />                    z++;<br />                }<br />            }<br /><br />            //wiersz = ((( font&#91;i+font_info&#91;zwrot&#93;&#93; ) &gt;&gt; font_width-1 - a ) &amp; ( 0x0001 ) ); //0011 1000 dla i=0<br />            wiersz = ((( font&#91;i+font_info&#91;zwrot&#93;&#93; ) &gt;&gt; a ) &amp; ( 0x0001 ) ); //0011 1000 dla i=0<br /><br />            //Serial.print(wiersz);<br /><br /><br />            if ( wiersz == 0 ) {<br />                drawPixel( BLACK, xn, y + a );<br />            } else {<br />                drawPixel( color, xn, y + a );<br />            }<br />        }<br />        xn++;<br />    }<br /><br />}<br /><br />//---Funkcja wypisująca ciąg znaków---//<br />void Write( int x, int y, int space, char znaki&#91;&#93;, uint16_t color ) {<br />    int odstep = 0;<br />    int spr = 1;<br />    int index = 0;<br />    int wielkosc = 0;<br /><br />    while ( spr ) { //funkcja podająca dlugość ciągu znaków<br />        if ( znaki&#91;index&#93; &gt; 0 ) {<br />            wielkosc++;<br />            index++;<br />        } else {<br />            spr = 0;<br />        }<br />    }<br /><br />    for ( int i = 0;i &lt;= wielkosc - 1;i++ ) {<br />        //Sign(x,y+odstep,color,znaki&#91;i&#93;);<br />        Sign( x, y + odstep, color, znaki&#91;wielkosc-1-i&#93; );<br />        //odstep = odstep+font_width+space-1; // -1 jest dlatego, że między znakami są odstępy wynikające z ich bitmapy i chodzi o to, żeby pomimo tego, kiedy dam space=0 znaki były przy sobie<br />        odstep = odstep + font_width + space;<br />    }<br /><br />}[/syntax]<br /><br />[syntax=c]#ifndef TFT_ILI9341_LIB_TFT_ILI9341_H_<br />#define TFT_ILI9341_LIB_TFT_ILI9341_H_<br /><br />#define TFTWIDTH 240<br />#define TFTHEIGHT 320<br /><br />//=========Konfiguracja sterowania==========//<br />#define TFT_DDR_CONF DDRC                   //<br />#define TFT_DDR_DATA1 DDRB                  //<br />#define TFT_DDR_DATA2 DDRD                  //<br />                                            //<br />#define TFT_PORT_CONF PORTC                 //<br />#define TFT_PORT_DATA1 PORTB                //   !!!!UWAGA!!!!<br />#define TFT_PORT_DATA2 PORTD                //   Przy zmianie:<br />                                            //  TFT_PORT_DATA1<br />#define TFT_RST PC0                         //      lub<br />#define TFT_CS  PC1                         //  TFT_PORT_DATA2<br />#define TFT_RS  PC2                         //      lub<br />#define TFT_WR  PC3                         //  Wyjść D0 - D7<br />#define TFT_RD  PC4                         //        |<br />                                            //        |<br />#define TFT_D0 PB0                          //      należy<br />#define TFT_D1 PB1                          //   uwzględnić te<br />#define TFT_D2 PD2                          //  zmiany także w<br />#define TFT_D3 PD3                          //  funkcji &quot;write8&quot;<br />#define TFT_D4 PD4                          //     w pliku<br />#define TFT_D5 PD5                          //   TFT_ILI9341.c<br />#define TFT_D6 PD6                          //<br />#define TFT_D7 PD7                          //<br />//==========================================//<br />//---Zestaw masek i zatrzask--//<br />#define CMD_MASK TFT_PORT_CONF |=  0b00010001//((1&lt;&lt;TFT_RST) | (1&lt;&lt;TFT_RD))<br />#define DATA_MASK TFT_PORT_CONF |= 0b00010101//((1&lt;&lt;TFT_RST) | (1&lt;&lt;TFT_RS) | (1&lt;&lt;TFT_RD))<br /><br />//---Ręczny reset--//<br />//--WAŻNE!!! Po użyciu tej definicji należy odczekać 120ms--//<br />#define RESET TFT_PORT_CONF |= ((1&lt;&lt;TFT_CS) | (1&lt;&lt;TFT_WR) | (1&lt;&lt;TFT_RD) | (1&lt;&lt;TFT_RST) | (1&lt;&lt;TFT_RS))<br /><br />//----Rejestry sterownika-----//<br />#define ILI9341_SOFTRESET 0x01<br />#define ILI9341_SLEEPIN 0x10<br />#define ILI9341_SLEEPOUT 0x11<br />#define ILI9341_NORMALDISP 0x13<br />#define ILI9341_INVERTOFF 0x20<br />#define ILI9341_INVERTON 0x21<br />#define ILI9341_GAMMASET 0x26<br />#define ILI9341_DISPLAYOFF 0x28<br />#define ILI9341_DISPLAYON 0x29<br />#define ILI9341_COLADDRSET 0x2A<br />#define ILI9341_PAGEADDRSET 0x2B<br />#define ILI9341_MEMORYWRITE 0x2C<br />#define ILI9341_PIXELFORMAT 0x3A<br />#define ILI9341_FRAMECONTROL 0xB1<br />#define ILI9341_DISPLAYFUNC 0xB6<br />#define ILI9341_ENTRYMODE 0xB7<br />#define ILI9341_POWERCONTROL1 0xC0<br />#define ILI9341_POWERCONTROL2 0xC1<br />#define ILI9341_VCOMCONTROL1 0xC5<br />#define ILI9341_VCOMCONTROL2 0xC7<br />#define ILI9341_MEMCONTROL 0x36<br />#define ILI9341_MADCTL 0x36<br /><br />#define ILI9341_MADCTL_MY 0x80<br />#define ILI9341_MADCTL_MX 0x40<br />#define ILI9341_MADCTL_MV 0x20<br />#define ILI9341_MADCTL_ML 0x10<br />#define ILI9341_MADCTL_RGB 0x00<br />#define ILI9341_MADCTL_BGR 0x08<br />#define ILI9341_MADCTL_MH 0x04<br /><br />//---Wybrane kolory----//<br />#define BLACK   0x0000<br />#define BLUE    0x001F<br />#define RED     0xF800<br />#define GREEN   0x07E0<br />#define CYAN    0x07FF<br />#define MAGENTA 0xF81F<br />#define YELLOW  0xFFE0<br />#define WHITE   0xFFFF<br /><br />//---Funkcje---//<br />void test(void);<br />void TFT_ILI9341_DDR_init( void );<br />void write8( uint8_t a );<br />void writeRegister8( uint8_t cmd, uint16_t data );<br />void writeRegister16( uint8_t cmd, uint16_t data );<br />void writeRegister32( uint8_t cmd, uint32_t data );<br />void setAddrWindow( int x1, int y1, int x2, int y2 );<br />void ILI9341_init();<br />void flood( uint16_t color, uint32_t len );<br />void fillScreen( uint16_t color );<br />void drawPixel( uint16_t color, int x, int y );<br />void Sign( int x, int y, uint16_t color, char znak );<br />void Write( int x, int y, int space, char znaki&#91;&#93;, uint16_t color );<br /><br /><br />#endif /* TFT_ILI9341_LIB_TFT_ILI9341_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17681">Bystrzacha</a> — 21 wrz 2021, o 08:17</p><hr />
]]></content>
</entry>
</feed>