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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=16460&amp;mode</id>
<entry>
<author><name><![CDATA[paul_K]]></name></author>
<updated>2016-10-25T06:02:00+01:00</updated>
<published>2016-10-25T06:02:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16460&amp;p=172719#p172719</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16460&amp;p=172719#p172719"/>
<title type="html"><![CDATA[Re: problem z bilblioteką OLED I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16460&amp;p=172719#p172719"><![CDATA[
ok czeski błąd w funkcji wysyłania bitmapy oto poprawna procedura <br /><br />[syntax=c]void SSD1306_drawBitmap_P(int x,int y , const uint8_t *bitmap , uint8_t w, uint8_t h,uint8_t color ){<br />int i,j,byteWidth = (w + 7) / 8;<br /><br />for(j=0;j&lt;h;j++){<br />for (i=0;i&lt;w;i++){<br />if (pgm_read_byte(bitmap + j * byteWidth + i / 8 ) &amp; ( 128 &gt;&gt; ( i &amp; 7 )) ){<br />SSD1306_setPixel(x+i, y+j, color);<br />}<br />}<br />}<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 9 minutach ]</span></strong><br /><br />oraz funkcja rysowania znaku <br />[syntax=c]void SSD1306_drawChar(int x, int y, char c , uint8_t color, uint8_t bg, uint8_t size){<br /><br /> if ((x &gt;= SSD1306_WIDTH)|| (y &gt;= SSD1306_HEIGHT) || ((x + 6 * size-1 ) &lt; 0) || ((y + 8 * size - 1)&lt;0))return;<br /><br /><br />for (int8_t i = 0; i&lt;6 ;i++){<br /> uint8_t line;<br /><br />if (i == 5)<br />line = 0x0;<br />else<br />line =  pgm_read_byte(font + ( c * 5) +i);<br /><br />for(int8_t j = 0 ;j&lt;8; j++){<br />if(line &amp; 0x1){<br />if(size==1)<br />SSD1306_setPixel(x+i, y+j, color);<br />else {<br />SSD1306_fillRect(x+(i*size), y+(j*size), size, size, color);<br />     }<br /><br />}else if (bg != color){<br />if (size == 1)<br />SSD1306_setPixel(x+i, y+j ,bg);<br />else {<br />SSD1306_fillRect(x + i * size, y+j*size, size, size, bg);<br />}<br /><br />}<br />line &gt;&gt;= 1;<br />}<br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10166">paul_K</a> — 25 paź 2016, o 06:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-10-12T10:12:16+01:00</updated>
<published>2016-10-12T10:12:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16460&amp;p=171294#p171294</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16460&amp;p=171294#p171294"/>
<title type="html"><![CDATA[Re: problem z bilblioteką OLED I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16460&amp;p=171294#p171294"><![CDATA[
<span style="color: #FF0000">A kolega to przypadkiem tego: <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><br /><br />nie widział ? .... proszę poprawić - jeśli wątek ma pozostać nie usunięty.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 12 paź 2016, o 10:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[paul_K]]></name></author>
<updated>2016-10-12T11:12:46+01:00</updated>
<published>2016-10-12T10:10:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16460&amp;p=171293#p171293</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16460&amp;p=171293#p171293"/>
<title type="html"><![CDATA[problem z bilblioteką OLED I2C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16460&amp;p=171293#p171293"><![CDATA[
Witam wszystkich <br />zaczynam zabawę z oprogramowaniem wyświetlacza Oled<br /><br /><br /><br />sprzęt:<br />atb1.05 + oled na i2c  128x64<br /><br />co działa :<br />rysowanie pixela <br />rysowanie linii<br />rysowanie prostokąta<br />kasowanie oled<br /><br /><br />nie działa :<br />rysowanie bitmapy<br />rysowanie fontu <br /><br /><br />Proszę o sprawdzenie kodu i sugestie co może być źle<br />z góry dziękuje <br /><br />dorzucam pliki biblioteki:<br /><br /><br />plik main.c<br /><br />[syntax=c]#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;ssd1306/ssd1306.h&quot;<br /><br /><br />const uint8_t bitmap1&#91;&#93; PROGMEM = {<br />// obrazek<br />};<br /><br />    int main( void )<br />    {<br />            DDRB |= (1&lt;&lt;PB0);<br /><br />            SSD1306_init( SSD1306_SWITCHCAPVCC, REFRESH_MID );<br />          <br />            SSD1306_cls(); // czyszczenie zawertosci bufora<br />           <br />           // SSD1306_drawLine(0,64,128,0,1);//rysuj linie<br />            //SSD1306_fillRect(10,1,20,20,1);// rysuj prostokąt<br />            <br />            SSD1306_drawBitmap_P(0,0,bitmap1,128,64,1); // rysuj bitmape<br />            //SSD1306_drawChar(29,0,'A',1,0,1);// rysuj litere<br />                    SSD1306_display();//wyswietl<br />                 <br />            while(1)<br />            {<br />            }<br />    }[/syntax]<br /><br />plik ssd1306.c<br /><br /><br />[syntax=c]#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 />#include &quot;ssd1306.h&quot;<br /><br /><br />uint8_t ssd1306_buf&#91;1024&#93;={// bufor <br /><br /><br />};<br /><br />void i2cSetBitrate(uint16_t bitrateKHz) {<br />uint8_t bitrate_div;<br /><br />bitrate_div = ((F_CPU/1000UL)/bitrateKHz);<br />if(bitrate_div &gt;= 16)<br />bitrate_div = (bitrate_div-16)/2;<br /><br />TWBR = bitrate_div;<br />}<br /><br />void TWI_start(void) {<br />TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTA);<br />while (!(TWCR&amp;(1&lt;&lt;TWINT)));<br />}<br /><br />void TWI_stop(void) {<br />TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTO);<br />while ( !(TWCR&amp;(1&lt;&lt;TWSTO)) );<br />}<br /><br />void TWI_write(uint8_t bajt) {<br />TWDR = bajt;<br />TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN);<br />while ( !(TWCR&amp;(1&lt;&lt;TWINT)));<br />}<br /><br />uint8_t TWI_read(uint8_t ack) {<br />TWCR = (1&lt;&lt;TWINT)|(ack&lt;&lt;TWEA)|(1&lt;&lt;TWEN);<br /><br />while ( !(TWCR &amp; (1&lt;&lt;TWINT)) );<br /><br />return TWDR;<br />}<br /><br /><br />void TWI_write_buf( uint8_t SLA, uint8_t adr, uint16_t len, uint8_t *buf) {<br /><br />TWI_start();<br />TWI_write(SLA);<br />TWI_write(adr);<br />while (len--) TWI_write(*buf++);<br />TWI_stop();<br />}<br /><br /><br />//***************************** wysyłanie komend na i2C<br /><br />void SSD1306_cmd(uint8_t cmd){<br /><br /><br />// funkcja wysyłania rozkazu po i2c<br />uint8_t control = 0x00;<br />            TWI_start();<br />            TWI_write( SSD1306_I2C_ADDRESS );<br />            TWI_write( control );<br />            TWI_write( cmd );<br />            TWI_stop();<br /><br />}<br />//*******************************************************************<br /><br />//**********************************wysyłanie danych<br />void SSD1306_data(uint8_t dat){ // procedura tysłania danych na spi<br /><br /><br />// funkja wysyłania danych na spi<br />            uint8_t control = 0x40;<br />            TWI_start();<br />            TWI_write( SSD1306_I2C_ADDRESS );<br />            TWI_write( control );<br />            TWI_write( dat );<br />            TWI_stop();<br /><br />}<br /><br />//*********************************************************************<br /><br />void SSD1306_cls(void){<br />        memset(ssd1306_buf,0x00,(1024));<br />}<br /><br />// *****************************przeniesienie bufora na lcd<br />void SSD1306_display( void )<br />    {<br />            SSD1306_cmd( SSD1306_SETLOWCOLUMN       | 0x0 );<br />            SSD1306_cmd( SSD1306_SETHIGHCOLUMN      | 0x0 );<br />            SSD1306_cmd( SSD1306_SETSTARTLINE       | 0x0 );<br /><br /><br />            //Funkcje od TWI są takie same jak w BB. Jedyna modyfikacja:<br />               // void TWI_write_buf( uint8_t SLA, uint8_t adr, &#91;b&#93;uint8_t&#91;/b&#93; len, uint8_t *buf )<br />              //  na<br />             //   void TWI_write_buf( uint8_t SLA, uint8_t adr, &#91;b&#93;uint16_t&#91;/b&#93; len, uint8_t *buf )<br /><br />            TWI_write_buf( SSD1306_I2C_ADDRESS, 0x40, 1024, ssd1306_buf );<br /><br />    }<br />//***********************************************************************************<br /><br />/**<br />  * FUNKCJA ZAPISUJĄCA STAN PIXALA W BUFORZE<br />  */<br />//*************************************************************<br />void SSD1306_setPixel(int x, int y, uint8_t bw )<br /> {<br />         if( (x &lt; 0) || (x &gt;= SSD1306_WIDTH) || (y &lt; 0) || (y &gt;= SSD1306_HEIGHT) )<br />                 return;<br /><br />         if(bw )     ssd1306_buf&#91;x + (y/8) * SSD1306_WIDTH&#93; |=   (1&lt;&lt;(y%8));<br />         else            ssd1306_buf&#91;x + (y/8) * SSD1306_WIDTH&#93; &amp;=  ~(1&lt;&lt;(y%8));<br /><br /> }<br />//*****************************************************************<br /><br />// inicjacja  wyswietlacza<br />void SSD1306_init(uint8_t vcc, uint8_t refresh){<br /><br />i2cSetBitrate(400);<br />I2C_DIR |= (1&lt;&lt;SCL)|(1&lt;&lt;SDA);<br />_delay_ms(50);<br /><br /><br />SSD1306_cmd(SSD1306_DISPLAYOFF);<br />SSD1306_cmd(SSD1306_SETDISPLAYCLOCKDIV);<br />SSD1306_cmd(refresh);<br /><br />SSD1306_cmd(SSD1306_SETDISPLAYOFFSET);<br />SSD1306_cmd(0x00);<br /><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 /><br />SSD1306_cmd(SSD1306_MEMORYMODE);<br />SSD1306_cmd(0x00);<br />SSD1306_cmd(SSD1306_SEGREMAP|0x1);<br />SSD1306_cmd(SSD1306_COMSCANDEC);<br /><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 /><br /><br />#if defined SSD1306_128_32<br /><br />SSD1306_cmd(SSD1306_SETMULTIPLEX);<br />SSD1306_cmd(0x1F);<br />SSD1306_cmd(SSD1306_SETCOMPINS);<br />SSD1306_cmd(0x02);<br /><br />#endif<br /><br />#if defined SSD1306_128_64<br /><br />SSD1306_cmd(SSD1306_SETMULTIPLEX);<br />SSD1306_cmd(0x3F);<br />SSD1306_cmd(SSD1306_SETCOMPINS);<br />SSD1306_cmd(0x12);<br /><br />#endif<br /><br />SSD1306_cmd(SSD1306_DISPLAYALLON_RESUME);<br />SSD1306_cmd(SSD1306_NORMALDISPLAY);<br />SSD1306_cmd(SSD1306_DISPLAYON);<br /><br />}<br /><br />//**********************************************************************************************[/syntax]<br /><br />plik ssd1306.h<br /><br />[syntax=c]#ifndef SSD1306_H_<br />#define SSD1306_H_<br /><br /><br />#define SSD1306_128_64//definicja wielkosci wyswietlacza gdy nie uzywany to w komentarz<br />//#define SSD1306_128_32//definicja wielkosci wyswietlacza<br /><br />#define USE_CS 0// jak używam to 1<br />#define USE_RST1<br /><br />//#define USE_SPI_OR_I2C0// 1-SPI ,0-I2C<br /><br />  /**<br />     * KONFIGURACJA SPRZĘTOWEGO I2C<br /><br />     */<br />//#if USE_SPI_OR_I2C==0<br />    // NA ARDUINO WYŚWIETLACZ PRACUJE POD ADRESEM 0x3C mimo iż na obudowie jest napisane 0x78<br />    #define SSD1306_I2C_ADDRESS 0x78<br />    //#define SSD1306_I2C_ADDRESS 0x3D<br />    //#define SSD1306_I2C_ADDRESS 0x7A<br />    //#define SSD1306_I2C_ADDRESS 0x78<br /><br />    #define I2C_DIR DDRC<br />    #define SCL             PC0<br />    #define SDA             PC1<br />//#endif<br /><br /><br />#define SSD1306_WIDTH   128// szerokosc wyswietlacza<br /><br /><br />#if defined SSD1306_128_64// wysokosc jeśli wybieramy<br />#define SSD1306_HEIGHT  64<br />#endif<br /><br /><br />#if defined SSD1306_128_32<br />#define SSD1306_HEIGHT  32<br />#endif<br /><br />    /**<br />     * DEFINICJE SZYBKOŚCI ODŚWIEŻANIA<br />     */<br />    #define REFRESH_MIN     0x80<br />    #define REFRESH_MID     0xB0<br />    #define REFRESH_MAX 0xF0<br /><br /><br />    /**<br />     * DEFINICJE KOMENDY STEROWNIKA<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 />    #define SSD1306_SETDISPLAYOFFSET        0xD3<br />    #define SSD1306_SETCOMPINS                      0xDA<br />    #define SSD1306_SETVCOMDETECT           0xDB<br />    #define SSD1306_SETDISPLAYCLOCKDIV      0xD5<br />    #define SSD1306_SETPRECHARGE           0xD9<br />    #define SSD1306_SETMULTIPLEX            0xA8<br />    #define SSD1306_SETLOWCOLUMN            0x00<br />    #define SSD1306_SETHIGHCOLUMN           0x10<br />    #define SSD1306_SETSTARTLINE            0x40<br />    #define SSD1306_MEMORYMODE                      0x20<br />    #define SSD1306_COLUMNADDR                      0x21<br />    #define SSD1306_PAGEADDR                        0x22<br />    #define SSD1306_COMSCANINC                      0xC0<br />    #define SSD1306_COMSCANDEC                      0xC8<br />    #define SSD1306_SEGREMAP                        0xA0<br />    #define SSD1306_CHARGEPUMP                      0x8D<br />    #define SSD1306_EXTERNALVCC             0x1<br />    #define SSD1306_SWITCHCAPVCC            0x2<br />    #define SSD1306_ACTIVATE_SCROLL         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                                  0x27<br />    #define SSD1306_VERTICAL_AND_RIGHT_HORIZONTAL_SCROLL    0x29<br />    #define SSD1306_VERTICAL_AND_LEFT_HORIZONTAL_SCROLL     0x2A<br /><br /><br />#define swap(a,b) {int16_t t = a ; a = b ; b = t; }<br /><br /><br />/*********************deklaracja zmiennych<br />  */<br /> extern const uint8_t font&#91;&#93;;<br /> extern int cursor_x,cursor_y;<br />    /**<br />     * DEKLARACJE FUNKCJI<br />     */<br /><br /><br />void SSd1306_init( uint8_t vcc, uint8_t refresh );<br />void SS1306_cmd(uint8_t cmd );<br /> void SSD1306_data( uint8_t data );<br /><br />    void SSD1306_display( void );// wyslij na ekran z bufor<br />    void SSD1306_setPixel(int x, int y, uint8_t color );// zapal pizel w buforze<br />    void SSD1306_cls(void);// czyszczenie zawartosci bufora<br /><br />   //funkcje graficzne<br />    void SSD1306_drawBitmap_P(int x,int y , const uint8_t *bitmap, uint8_t w, uint8_t h,uint8_t color ); // rysowanie bitmapy<br />    void SSD1306_drawChar(int x, int y, char c , uint8_t color, uint8_t bg, uint8_t size); // wysowanie litery y lewy gorny róg litery kod asci litery 'A', kolor =1 , tło= 0 , rozmiar standard 1<br />    void SSD1306_fillRect(int x , int y , int w , int h , uint8_t color); // rysowanie prostokata x,y górny lewy róg prostokata, w szerokosc , h wysokosc<br />    void SSD1306_drawFastVLine(int x, int y,int h,uint8_t color);<br />    void SSD1306_drawLine(int x0 , int y0 ,int x1, int y1, uint8_t color );// rysowanie linii<br /><br /><br /><br />#endif /* SSD1306_H_ */[/syntax]<br /> <br />plik ssd_graphic.c<br /><br />[syntax=c]#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;ssd1306.h&quot;<br /><br />int cursor_x,cursor_y;<br /><br /> void SSD1306_drawLine(int x0 , int y0 ,int x1, int y1, uint8_t color );<br /> void SSD1306_drawFastVLine(int x, int y,int h,uint8_t color);<br /> void SSD1306_fillRect(int x, int y, int w,int h, uint8_t color);<br /><br /><br />void SSD1306_drawBitmap_P(int x,int y , const uint8_t *bitmap , uint8_t w, uint8_t h,uint8_t color ){<br />int i,j,byteWidth = (w + 7) / 8;<br /><br />for(j=0;j&lt;h;j++){<br />for (i=0;j&lt;w;i++){<br />if (pgm_read_byte(bitmap + j * byteWidth + 1 / 8 ) &amp; ( 128 &gt;&gt; ( i &amp; 7 )) ){<br />SSD1306_setPixel(x+i, y+j, color);<br />    }<br /> }<br /><br />}<br />}<br /><br />void SSD1306_drawChar(int x, int y, char c , uint8_t color, uint8_t bg, uint8_t size){<br /><br /> if ((x&gt;=SSD1306_WIDTH)|| (y&gt;=SSD1306_HEIGHT)||((x + 6 * size-1)&lt;0)||((y+8*size-1)&lt;0))return;<br /> uint8_t line;<br /><br />for (int8_t i=0;i&lt;6;i++){<br /><br /><br />if (i==5)<br />line=0x0;<br />else<br /><br />line =  pgm_read_byte(font+(c*5)+i);<br /><br />for(int8_t j=0 ;j&lt;0;j++){<br />if(size &amp; 0x1){<br />if(size==1)<br />SSD1306_setPixel(x+i,y+j,color);<br />else {SSD1306_fillRect(x+(i*size),y+(j*size),size,size,color);<br />}<br /><br />}else if (bg != color){<br />if (size==1)<br />SSD1306_setPixel(x=i,y+j,bg);<br />else {<br />SSD1306_fillRect(x+i * size, y+j* size,size,size, bg);<br />}<br /><br />}<br />line&gt;&gt;=1;<br />}<br />}<br />}<br /><br />void SSD1306_fillRect(int x, int y, int w,int h, uint8_t color){<br />for (int16_t i=x;i&lt;x+w;i++){<br />SSD1306_drawFastVLine(i,y,h,color);<br />}<br />}<br /> void SSD1306_drawFastVLine(int x, int y,int h,uint8_t color){<br /><br /> SSD1306_drawLine(x,y,x,y+h-1,color);<br /> }<br /><br />void SSD1306_drawLine(int x0 , int y0 ,int x1, int y1, uint8_t color ){<br />int steep =abs(y1-y0)&gt;abs(x1-x0);<br /><br />if (steep) {<br />swap(x0,y0);<br />swap(x1,y1);<br />}<br /><br />if(x0&gt;x1) {<br />swap(x0,x1);<br />swap(y0,y1);<br />};<br /><br />int dx,dy;<br />dx=x1-x0;<br />dy=abs(y1-y0);<br /><br />int err = dx/2;<br />int ystep;<br /><br />if(y0&lt;y1){<br />ystep=1;<br />}else{ystep=-1;}<br /><br />for(;x0&lt;=x1;x0++){<br />if(steep){<br />SSD1306_setPixel(y0,x0,color);<br />}else{<br />SSD1306_setPixel(x0,y0,color);<br />}<br />err -=dy;<br />if (err&lt;0){<br />y0+=ystep;<br />err+=dx;<br />}<br />}<br /><br />}[/syntax]<br /><br />oraz plik oled_font1.c<br /><br />[syntax=c]// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.<br />// See gfxfont.h for newer custom bitmap font info.<br /><br />#ifndef FONT5X7_H<br />#define FONT5X7_H<br /><br />//#ifdef __AVR__<br /> #include &lt;avr/io.h&gt;<br /> #include &lt;avr/pgmspace.h&gt;<br /><br />// Standard ASCII 5x7 font<br /><br />const uint8_t font&#91;&#93; PROGMEM = {<br />0x00, 0x00, 0x00, 0x00, 0x00,<br />0x3E, 0x5B, 0x4F, 0x5B, 0x3E,<br />0x3E, 0x6B, 0x4F, 0x6B, 0x3E,<br />0x1C, 0x3E, 0x7C, 0x3E, 0x1C,<br />0x18, 0x3C, 0x7E, 0x3C, 0x18,<br />0x1C, 0x57, 0x7D, 0x57, 0x1C,<br />0x1C, 0x5E, 0x7F, 0x5E, 0x1C,<br />0x00, 0x18, 0x3C, 0x18, 0x00,<br />0xFF, 0xE7, 0xC3, 0xE7, 0xFF,<br />0x00, 0x18, 0x24, 0x18, 0x00,<br />0xFF, 0xE7, 0xDB, 0xE7, 0xFF,<br />0x30, 0x48, 0x3A, 0x06, 0x0E,<br />0x26, 0x29, 0x79, 0x29, 0x26,<br />0x40, 0x7F, 0x05, 0x05, 0x07,<br />0x40, 0x7F, 0x05, 0x25, 0x3F,<br />0x5A, 0x3C, 0xE7, 0x3C, 0x5A,<br />0x7F, 0x3E, 0x1C, 0x1C, 0x08,<br />0x08, 0x1C, 0x1C, 0x3E, 0x7F,<br />0x14, 0x22, 0x7F, 0x22, 0x14,<br />0x5F, 0x5F, 0x00, 0x5F, 0x5F,<br />0x06, 0x09, 0x7F, 0x01, 0x7F,<br />0x00, 0x66, 0x89, 0x95, 0x6A,<br />0x60, 0x60, 0x60, 0x60, 0x60,<br />0x94, 0xA2, 0xFF, 0xA2, 0x94,<br />0x08, 0x04, 0x7E, 0x04, 0x08,<br />0x10, 0x20, 0x7E, 0x20, 0x10,<br />0x08, 0x08, 0x2A, 0x1C, 0x08,<br />0x08, 0x1C, 0x2A, 0x08, 0x08,<br />0x1E, 0x10, 0x10, 0x10, 0x10,<br />0x0C, 0x1E, 0x0C, 0x1E, 0x0C,<br />0x30, 0x38, 0x3E, 0x38, 0x30,<br />0x06, 0x0E, 0x3E, 0x0E, 0x06,<br />0x00, 0x00, 0x00, 0x00, 0x00,<br />0x00, 0x00, 0x5F, 0x00, 0x00,<br />0x00, 0x07, 0x00, 0x07, 0x00,<br />0x14, 0x7F, 0x14, 0x7F, 0x14,<br />0x24, 0x2A, 0x7F, 0x2A, 0x12,<br />0x23, 0x13, 0x08, 0x64, 0x62,<br />0x36, 0x49, 0x56, 0x20, 0x50,<br />0x00, 0x08, 0x07, 0x03, 0x00,<br />0x00, 0x1C, 0x22, 0x41, 0x00,<br />0x00, 0x41, 0x22, 0x1C, 0x00,<br />0x2A, 0x1C, 0x7F, 0x1C, 0x2A,<br />0x08, 0x08, 0x3E, 0x08, 0x08,<br />0x00, 0x80, 0x70, 0x30, 0x00,<br />0x08, 0x08, 0x08, 0x08, 0x08,<br />0x00, 0x00, 0x60, 0x60, 0x00,<br />0x20, 0x10, 0x08, 0x04, 0x02,<br />0x3E, 0x51, 0x49, 0x45, 0x3E,<br />0x00, 0x42, 0x7F, 0x40, 0x00,<br />0x72, 0x49, 0x49, 0x49, 0x46,<br />0x21, 0x41, 0x49, 0x4D, 0x33,<br />0x18, 0x14, 0x12, 0x7F, 0x10,<br />0x27, 0x45, 0x45, 0x45, 0x39,<br />0x3C, 0x4A, 0x49, 0x49, 0x31,<br />0x41, 0x21, 0x11, 0x09, 0x07,<br />0x36, 0x49, 0x49, 0x49, 0x36,<br />0x46, 0x49, 0x49, 0x29, 0x1E,<br />0x00, 0x00, 0x14, 0x00, 0x00,<br />0x00, 0x40, 0x34, 0x00, 0x00,<br />0x00, 0x08, 0x14, 0x22, 0x41,<br />0x14, 0x14, 0x14, 0x14, 0x14,<br />0x00, 0x41, 0x22, 0x14, 0x08,<br />0x02, 0x01, 0x59, 0x09, 0x06,<br />0x3E, 0x41, 0x5D, 0x59, 0x4E,<br />0x7C, 0x12, 0x11, 0x12, 0x7C,<br />0x7F, 0x49, 0x49, 0x49, 0x36,<br />0x3E, 0x41, 0x41, 0x41, 0x22,<br />0x7F, 0x41, 0x41, 0x41, 0x3E,<br />0x7F, 0x49, 0x49, 0x49, 0x41,<br />0x7F, 0x09, 0x09, 0x09, 0x01,<br />0x3E, 0x41, 0x41, 0x51, 0x73,<br />0x7F, 0x08, 0x08, 0x08, 0x7F,<br />0x00, 0x41, 0x7F, 0x41, 0x00,<br />0x20, 0x40, 0x41, 0x3F, 0x01,<br />0x7F, 0x08, 0x14, 0x22, 0x41,<br />0x7F, 0x40, 0x40, 0x40, 0x40,<br />0x7F, 0x02, 0x1C, 0x02, 0x7F,<br />0x7F, 0x04, 0x08, 0x10, 0x7F,<br />0x3E, 0x41, 0x41, 0x41, 0x3E,<br />0x7F, 0x09, 0x09, 0x09, 0x06,<br />0x3E, 0x41, 0x51, 0x21, 0x5E,<br />0x7F, 0x09, 0x19, 0x29, 0x46,<br />0x26, 0x49, 0x49, 0x49, 0x32,<br />0x03, 0x01, 0x7F, 0x01, 0x03,<br />0x3F, 0x40, 0x40, 0x40, 0x3F,<br />0x1F, 0x20, 0x40, 0x20, 0x1F,<br />0x3F, 0x40, 0x38, 0x40, 0x3F,<br />0x63, 0x14, 0x08, 0x14, 0x63,<br />0x03, 0x04, 0x78, 0x04, 0x03,<br />0x61, 0x59, 0x49, 0x4D, 0x43,<br />0x00, 0x7F, 0x41, 0x41, 0x41,<br />0x02, 0x04, 0x08, 0x10, 0x20,<br />0x00, 0x41, 0x41, 0x41, 0x7F,<br />0x04, 0x02, 0x01, 0x02, 0x04,<br />0x40, 0x40, 0x40, 0x40, 0x40,<br />0x00, 0x03, 0x07, 0x08, 0x00,<br />0x20, 0x54, 0x54, 0x78, 0x40,<br />0x7F, 0x28, 0x44, 0x44, 0x38,<br />0x38, 0x44, 0x44, 0x44, 0x28,<br />0x38, 0x44, 0x44, 0x28, 0x7F,<br />0x38, 0x54, 0x54, 0x54, 0x18,<br />0x00, 0x08, 0x7E, 0x09, 0x02,<br />0x18, 0xA4, 0xA4, 0x9C, 0x78,<br />0x7F, 0x08, 0x04, 0x04, 0x78,<br />0x00, 0x44, 0x7D, 0x40, 0x00,<br />0x20, 0x40, 0x40, 0x3D, 0x00,<br />0x7F, 0x10, 0x28, 0x44, 0x00,<br />0x00, 0x41, 0x7F, 0x40, 0x00,<br />0x7C, 0x04, 0x78, 0x04, 0x78,<br />0x7C, 0x08, 0x04, 0x04, 0x78,<br />0x38, 0x44, 0x44, 0x44, 0x38,<br />0xFC, 0x18, 0x24, 0x24, 0x18,<br />0x18, 0x24, 0x24, 0x18, 0xFC,<br />0x7C, 0x08, 0x04, 0x04, 0x08,<br />0x48, 0x54, 0x54, 0x54, 0x24,<br />0x04, 0x04, 0x3F, 0x44, 0x24,<br />0x3C, 0x40, 0x40, 0x20, 0x7C,<br />0x1C, 0x20, 0x40, 0x20, 0x1C,<br />0x3C, 0x40, 0x30, 0x40, 0x3C,<br />0x44, 0x28, 0x10, 0x28, 0x44,<br />0x4C, 0x90, 0x90, 0x90, 0x7C,<br />0x44, 0x64, 0x54, 0x4C, 0x44,<br />0x00, 0x08, 0x36, 0x41, 0x00,<br />0x00, 0x00, 0x77, 0x00, 0x00,<br />0x00, 0x41, 0x36, 0x08, 0x00,<br />0x02, 0x01, 0x02, 0x04, 0x02,<br />0x3C, 0x26, 0x23, 0x26, 0x3C,<br />0x1E, 0xA1, 0xA1, 0x61, 0x12,<br />0x3A, 0x40, 0x40, 0x20, 0x7A,<br />0x38, 0x54, 0x54, 0x55, 0x59,<br />0x21, 0x55, 0x55, 0x79, 0x41,<br />0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut<br />0x21, 0x55, 0x54, 0x78, 0x40,<br />0x20, 0x54, 0x55, 0x79, 0x40,<br />0x0C, 0x1E, 0x52, 0x72, 0x12,<br />0x39, 0x55, 0x55, 0x55, 0x59,<br />0x39, 0x54, 0x54, 0x54, 0x59,<br />0x39, 0x55, 0x54, 0x54, 0x58,<br />0x00, 0x00, 0x45, 0x7C, 0x41,<br />0x00, 0x02, 0x45, 0x7D, 0x42,<br />0x00, 0x01, 0x45, 0x7C, 0x40,<br />0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut<br />0xF0, 0x28, 0x25, 0x28, 0xF0,<br />0x7C, 0x54, 0x55, 0x45, 0x00,<br />0x20, 0x54, 0x54, 0x7C, 0x54,<br />0x7C, 0x0A, 0x09, 0x7F, 0x49,<br />0x32, 0x49, 0x49, 0x49, 0x32,<br />0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut<br />0x32, 0x4A, 0x48, 0x48, 0x30,<br />0x3A, 0x41, 0x41, 0x21, 0x7A,<br />0x3A, 0x42, 0x40, 0x20, 0x78,<br />0x00, 0x9D, 0xA0, 0xA0, 0x7D,<br />0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut<br />0x3D, 0x40, 0x40, 0x40, 0x3D,<br />0x3C, 0x24, 0xFF, 0x24, 0x24,<br />0x48, 0x7E, 0x49, 0x43, 0x66,<br />0x2B, 0x2F, 0xFC, 0x2F, 0x2B,<br />0xFF, 0x09, 0x29, 0xF6, 0x20,<br />0xC0, 0x88, 0x7E, 0x09, 0x03,<br />0x20, 0x54, 0x54, 0x79, 0x41,<br />0x00, 0x00, 0x44, 0x7D, 0x41,<br />0x30, 0x48, 0x48, 0x4A, 0x32,<br />0x38, 0x40, 0x40, 0x22, 0x7A,<br />0x00, 0x7A, 0x0A, 0x0A, 0x72,<br />0x7D, 0x0D, 0x19, 0x31, 0x7D,<br />0x26, 0x29, 0x29, 0x2F, 0x28,<br />0x26, 0x29, 0x29, 0x29, 0x26,<br />0x30, 0x48, 0x4D, 0x40, 0x20,<br />0x38, 0x08, 0x08, 0x08, 0x08,<br />0x08, 0x08, 0x08, 0x08, 0x38,<br />0x2F, 0x10, 0xC8, 0xAC, 0xBA,<br />0x2F, 0x10, 0x28, 0x34, 0xFA,<br />0x00, 0x00, 0x7B, 0x00, 0x00,<br />0x08, 0x14, 0x2A, 0x14, 0x22,<br />0x22, 0x14, 0x2A, 0x14, 0x08,<br />0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code<br />0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block<br />0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block<br />0x00, 0x00, 0x00, 0xFF, 0x00,<br />0x10, 0x10, 0x10, 0xFF, 0x00,<br />0x14, 0x14, 0x14, 0xFF, 0x00,<br />0x10, 0x10, 0xFF, 0x00, 0xFF,<br />0x10, 0x10, 0xF0, 0x10, 0xF0,<br />0x14, 0x14, 0x14, 0xFC, 0x00,<br />0x14, 0x14, 0xF7, 0x00, 0xFF,<br />0x00, 0x00, 0xFF, 0x00, 0xFF,<br />0x14, 0x14, 0xF4, 0x04, 0xFC,<br />0x14, 0x14, 0x17, 0x10, 0x1F,<br />0x10, 0x10, 0x1F, 0x10, 0x1F,<br />0x14, 0x14, 0x14, 0x1F, 0x00,<br />0x10, 0x10, 0x10, 0xF0, 0x00,<br />0x00, 0x00, 0x00, 0x1F, 0x10,<br />0x10, 0x10, 0x10, 0x1F, 0x10,<br />0x10, 0x10, 0x10, 0xF0, 0x10,<br />0x00, 0x00, 0x00, 0xFF, 0x10,<br />0x10, 0x10, 0x10, 0x10, 0x10,<br />0x10, 0x10, 0x10, 0xFF, 0x10,<br />0x00, 0x00, 0x00, 0xFF, 0x14,<br />0x00, 0x00, 0xFF, 0x00, 0xFF,<br />0x00, 0x00, 0x1F, 0x10, 0x17,<br />0x00, 0x00, 0xFC, 0x04, 0xF4,<br />0x14, 0x14, 0x17, 0x10, 0x17,<br />0x14, 0x14, 0xF4, 0x04, 0xF4,<br />0x00, 0x00, 0xFF, 0x00, 0xF7,<br />0x14, 0x14, 0x14, 0x14, 0x14,<br />0x14, 0x14, 0xF7, 0x00, 0xF7,<br />0x14, 0x14, 0x14, 0x17, 0x14,<br />0x10, 0x10, 0x1F, 0x10, 0x1F,<br />0x14, 0x14, 0x14, 0xF4, 0x14,<br />0x10, 0x10, 0xF0, 0x10, 0xF0,<br />0x00, 0x00, 0x1F, 0x10, 0x1F,<br />0x00, 0x00, 0x00, 0x1F, 0x14,<br />0x00, 0x00, 0x00, 0xFC, 0x14,<br />0x00, 0x00, 0xF0, 0x10, 0xF0,<br />0x10, 0x10, 0xFF, 0x10, 0xFF,<br />0x14, 0x14, 0x14, 0xFF, 0x14,<br />0x10, 0x10, 0x10, 0x1F, 0x00,<br />0x00, 0x00, 0x00, 0xF0, 0x10,<br />0xFF, 0xFF, 0xFF, 0xFF, 0xFF,<br />0xF0, 0xF0, 0xF0, 0xF0, 0xF0,<br />0xFF, 0xFF, 0xFF, 0x00, 0x00,<br />0x00, 0x00, 0x00, 0xFF, 0xFF,<br />0x0F, 0x0F, 0x0F, 0x0F, 0x0F,<br />0x38, 0x44, 0x44, 0x38, 0x44,<br />0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta<br />0x7E, 0x02, 0x02, 0x06, 0x06,<br />0x02, 0x7E, 0x02, 0x7E, 0x02,<br />0x63, 0x55, 0x49, 0x41, 0x63,<br />0x38, 0x44, 0x44, 0x3C, 0x04,<br />0x40, 0x7E, 0x20, 0x1E, 0x20,<br />0x06, 0x02, 0x7E, 0x02, 0x02,<br />0x99, 0xA5, 0xE7, 0xA5, 0x99,<br />0x1C, 0x2A, 0x49, 0x2A, 0x1C,<br />0x4C, 0x72, 0x01, 0x72, 0x4C,<br />0x30, 0x4A, 0x4D, 0x4D, 0x30,<br />0x30, 0x48, 0x78, 0x48, 0x30,<br />0xBC, 0x62, 0x5A, 0x46, 0x3D,<br />0x3E, 0x49, 0x49, 0x49, 0x00,<br />0x7E, 0x01, 0x01, 0x01, 0x7E,<br />0x2A, 0x2A, 0x2A, 0x2A, 0x2A,<br />0x44, 0x44, 0x5F, 0x44, 0x44,<br />0x40, 0x51, 0x4A, 0x44, 0x40,<br />0x40, 0x44, 0x4A, 0x51, 0x40,<br />0x00, 0x00, 0xFF, 0x01, 0x03,<br />0xE0, 0x80, 0xFF, 0x00, 0x00,<br />0x08, 0x08, 0x6B, 0x6B, 0x08,<br />0x36, 0x12, 0x36, 0x24, 0x36,<br />0x06, 0x0F, 0x09, 0x0F, 0x06,<br />0x00, 0x00, 0x18, 0x18, 0x00,<br />0x00, 0x00, 0x10, 0x10, 0x00,<br />0x30, 0x40, 0xFF, 0x01, 0x01,<br />0x00, 0x1F, 0x01, 0x01, 0x1E,<br />0x00, 0x19, 0x1D, 0x17, 0x12,<br />0x00, 0x3C, 0x3C, 0x3C, 0x3C,<br />0x00, 0x00, 0x00, 0x00, 0x00  // #255 NBSP<br />};<br />#endif // FONT5X7_H[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10166">paul_K</a> — 12 paź 2016, o 10:10</p><hr />
]]></content>
</entry>
</feed>