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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2021-05-10T21:58:05+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=23766&amp;mode</id>
<entry>
<author><name><![CDATA[wojtas14136]]></name></author>
<updated>2021-05-10T21:58:05+01:00</updated>
<published>2021-05-10T21:58:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23766&amp;p=232254#p232254</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23766&amp;p=232254#p232254"/>
<title type="html"><![CDATA[Re: OLED Wyświetlanie znaków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23766&amp;p=232254#p232254"><![CDATA[
Udało się rozwiązać problem była to literówka w pliku graficznym w funkcji do rysowania znaku <br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21357">wojtas14136</a> — 10 maja 2021, o 21:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojtas14136]]></name></author>
<updated>2021-05-10T14:29:46+01:00</updated>
<published>2021-05-10T14:29:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23766&amp;p=232248#p232248</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23766&amp;p=232248#p232248"/>
<title type="html"><![CDATA[OLED Wyświetlanie znaków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23766&amp;p=232248#p232248"><![CDATA[
Witam , mam kłopot z wyświetleniem litery w wyświetlaczu OLED  , biblioteki i kody bazują na greenbook'u i na poradnikach OLED na yt, rysowanie figur i linii działa  bez zarzutu problem się pojawia przy wyświetlaniu znaków otóż cały czas nie swiaca sie dwa pionowe paski na miejscu mającej się pojawić litery H przy innych literach jest podobnie <a href="https://obrazkiforum.atnel.pl/21357/f97916af1de392a0c4940a6918e8e08a.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/21357/f97916af1de392a0c4940a6918e8e08a.jpg" alt="Obrazek" /></a><br />Fragment kody dla pliku graficznego :<br />[syntax=c]/*<br /> * WH_grafic.c    atmega32    F_CPU = 11059200 Hz<br /> * <br /> * Created on: 2021-05-10<br /> *     Author: admin<br />*/<br />#include &lt;avr/io.h&gt;            <br />#include&lt;avr/pgmspace.h&gt;  <br />#include&lt;util/delay.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;string.h&gt;<br />#include&lt;stdlib.h&gt;      <br />#include &lt;avr/pgmspace.h&gt;<br />                            <br />#include &quot;HW_OLED.h&quot;<br />      <br /><br />void drawbitmap_P (int x , int y , const uint8_t *bitmap, uint8_t w, uint8_t h , uint8_t color)  <br />{<br />    int i,j , byteWidth = (w+7)/8;                              <br />                                 <br />    for(j=0;j&lt;h;j++)       <br />    {                                                                               <br />       for(i=0;i&lt;w;i++)<br />       {<br />            if(pgm_read_byte(bitmap +j * byteWidth + i /8) &amp; (128&gt;&gt;(i&amp;7)))   <br />            {           <br />                set_px(x+i , y+j , color);        <br />            }                                             <br />       }                                                  <br />    }                                                     <br />}                      <br />                                     <br /> void draw_char(int x, int y , char c , uint8_t color , uint8_t bg , uint8_t size)  // wysłanie znaku do OLED  <br /> {                                                                                         <br />                                                                                      <br />    //if ((x&gt;=128) || (y&gt;=64) || ((x+6 * size -1) &lt;0) || ((y+8 * size -1)&lt;0)) return; <br />    <br />     uint8_t line;      <br />       <br />    for(int8_t i=0 ; i&lt;6 ; i++)                <br />    {<br />                               <br />        if (i==5)                   <br />        { <br />           line = 0x0;<br />        }                                 <br />        else                      <br />        {     <br />           line = pgm_read_byte(font+(c*5)+i);<br />        }                                                                                                 <br />                              <br />        <br />        for(int8_t j=0;j&lt;8;j++)               <br />        { <br />            if(line &amp; 0x1)<br />            {                       <br />                 if(size==1)<br />                 {        <br />                    set_px(x+i,y+j,color);             <br />                 }                        <br />                 else                    <br />                 {<br />                    fill_Rect(x+(i*size) ,y+(j*size) ,size ,size , color);             <br />                 }                                        <br />            } <br />                              <br />            else if(bg!=color)<br />            {<br />                if(size==1)             <br />                {<br />                    set_px(x+i,y+j,bg);       <br />                }<br />                                  <br />                else <br />                {<br />                    fill_Rect(x+i*size,y+j*size, size ,size ,bg);        <br />                }  <br />            }<br />          }                       <br />                 line &gt;&gt;=1; <br />      }                <br />              <br />}         <br />      <br />  <br />void fill_Rect(int x , int y , int w , int h , uint8_t color ) <br />{                                                                 <br />        for(int16_t i=x ; i&lt;x+w ; i++)<br />        {                                             <br />           draw_V_line(i,y,h,color);  <br />        }                                                 <br />                                                               <br />}                   <br />                                                                      <br /> void draw_V_line (int x , int y, int h , uint8_t color)     <br />{                                    <br />    draw_line(x, y, x ,y+h-1 , color);   <br />}    <br />                               <br />                                               <br />void draw_line( int x0 , int y0 , int x1 , int y1 , uint8_t color)    <br />{    <br />    int steep = abs (y1 - y0 )  &gt; abs(x1-x0);<br />    if (steep)<br />    {<br />        swap(x0,y0);<br />        swap(x1,y1);    <br />    }                                                     <br /><br />      if (x0&gt;x1)<br />      {<br />        swap(x0,x1);<br />        swap(y0,y1); <br />      } <br />      <br />      int dx , dy;<br />      dx=x1-x0;<br />      dy=abs(y1-y0);<br />      int err =dx/2;<br />      int ystep;<br />      if (y0&lt;y1) <br />      {<br />        ystep= 1;  <br />      } <br />      else<br />      {<br />         ystep= -1; <br />      }         <br />      <br />      for(; x0 &lt;= x1; x0++)<br />      {   <br />      if(steep)          <br />        {                                                 <br />         set_px(y0,x0,color);         <br />        }                                                                                                                                                      <br />      else<br />      {<br />        set_px(x0,y0,color);<br />       <br />      }                                                   <br />       err -= dy;<br />       if(err&lt;0)<br />       {<br />            y0 += ystep;<br />            err+=dx;<br />       }                                                  <br /><br />       }<br /><br /><br /><br /><br /><br />     /*  int dx, dy, p, x, y;<br /> <br />    dx=x1-x0;<br />    dy=y1-y0;<br /> <br />    x=x0;<br />    y=y0;<br /> <br />    p=2*dy-dx;<br />                                    <br />    while(x&lt;x1)<br />    {<br />        if(p&gt;=0)<br />        {<br />            set_px(x,y,color);<br />            y=y+1;<br />            p=p+2*dy-2*dx;<br />        }<br />        else<br />        {<br />            set_px(x,y,color);<br />            p=p+2*dy;<br />        }<br />        x=x+1;<br />    }<br />      */<br />}[/syntax]<br />Plik c do obsługi OLED<br />[syntax=c]/*                                                                <br /> * HW_OLED.c    atmega8    F_CPU = 8000000 Hz<br /> * <br /> * Created on: 2021-04-26<br /> *     Author: admin<br />*/<br />#include &lt;avr/io.h&gt;  <br />#include&lt;avr/pgmspace.h&gt;  <br />#include&lt;util/delay.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;string.h&gt;<br />#include&lt;stdlib.h&gt;      <br />#include &lt;avr/pgmspace.h&gt;      <br />                            <br />#include &quot;HW_OLED.h&quot;    <br />                                                                 <br />uint8_t SPI_OLED_Buf&#91;1024&#93;= {<br />              <br />} ;    <br />                                    <br />                                               <br />                                                        <br /><br />static void SPI_Write(uint8_t dat)  // SPI wysyłanie jedno bajtu <br />{                        <br />    uint8_t i ;               <br />    for(i=0x80 ; i; i&gt;&gt;=1){<br />    SCK_LO ;   // ustawienie zegara na 8 cykli<br />                                                         <br />    if(dat &amp; i) MOSI_HI;<br />    else MOSI_LO ;                <br />              <br />    SCK_HI;  // start sygnału zegarowego<br />    }<br />}                  <br />                             <br />void SPI_CMD(uint8_t cmd) // SPI wysyłanie komendy  <br />{            <br />   DC_LO ;   //    wysyłanie komendy       <br />   SPI_Write(cmd);<br />   <br />}                        <br /><br />void SPI_data(uint8_t dat)  //SPI  wysyłanie danych  <br />{<br />    DC_HI;   // wysyłanie danych <br />    SPI_Write(dat);<br />}                    <br /><br />void SPI_OLED_Display(void) <br />{                                 <br />    SPI_CMD(SSD1306_SETLOWCOLUMN | 0x0); <br />    SPI_CMD(SSD1306_SETHIGHCOLUMN | 0x0);<br />    SPI_CMD(SSD1306_SETSTARTLINE | 0x0); <br />    <br />    DC_HI;<br />    for(uint16_t i=0; i&lt;(128*64/8) ; i++)<br />    {<br />        SPI_Write(SPI_OLED_Buf&#91;i&#93;);<br />    }                                                     <br />                <br />}                                                         <br /><br /><br />   <br />void SPI_OLED_Ini(void)     // inicjalizjacja OLED<br />{      <br />    MOSI_DDR |= MOSI; //   DDRC |= (1&lt;&lt;6)<br />    <br />    SCK_DDR |= SCK;<br />    SCK_DDR |= SCK; <br />     <br />    RST_DDR |= RST;<br />    RST_PORT |= RST;           <br />                           <br />    DC_DDR |= DC;                               <br />                          <br />}  <br /><br />void set_px(int x, int y, uint8_t bw)  // wysyłanie jednogo px<br />{                                        <br />    if((x&lt;0) || (x&gt;=128) ||(y&lt;0) || (y&gt;=64))  <br />      return;    <br />                                                        <br />                                    <br />   if(bw)SPI_OLED_Buf&#91;x+(y/8)*128&#93; |= (1&lt;&lt;(y%8)); <br />   else SPI_OLED_Buf&#91;x+(y/8)*128&#93; &amp;=~(1&lt;&lt;(y%8)); <br />}   <br /><br /><br />                                                       <br />      <br />void SPI_OLED_Init(uint8_t vcc , uint8_t refresh)  // inicjalizjacja OLED<br />{                            <br />   SPI_OLED_Ini();<br />    <br />    RST_HI;                <br />    _delay_ms(50);                                   <br />    RST_LO;     <br />    _delay_ms(50);<br />    RST_HI;             <br />                 <br />    SPI_CMD(SSD1306_DISPLAYOFF);<br />    SPI_CMD(SSD1306_SETDISPLAYCLOCKDIV);<br />    SPI_CMD(refresh);    <br />                         <br />    SPI_CMD(SSD1306_SETDISPLAYOFFSET);       <br />    SPI_CMD(0x0);  <br />    SPI_CMD(SSD1306_SETSTARTLINE | 0x0);<br />    SPI_CMD(SSD1306_CHARGEPUMP);       <br />    <br />    if(vcc == SSD1306_EXTERNALVCC) SPI_CMD(0x10);<br />    else SPI_CMD(0x14);<br />    <br />    SPI_CMD(SSD1306_MEMORYMODE); <br />    SPI_CMD(0x00);  <br />    SPI_CMD(SSD1306_SEGREMAP | 0x1);<br />    SPI_CMD(SSD1306_COMSCANDEC);  <br />    <br />    SPI_CMD(SSD1306_SETCONTRAST); <br />     <br />   if(vcc == SSD1306_EXTERNALVCC) SPI_CMD(0x9F);<br />    else SPI_CMD(0xCF);  <br />                                                                                                                                        <br />    SPI_CMD(SSD1306_SETPRECHARGE);<br />    <br />    // 128x64  <br />    SPI_CMD(SSD1306_SETMULTIPLEX);   <br />    SPI_CMD(0x3F);          <br />                           <br />    SPI_CMD(SSD1306_SETCOMPINS);<br />    SPI_CMD(0x12);     <br />       <br />    SPI_CMD(SSD1306_DISPLAYALLON_RESUME);<br />    SPI_CMD(SSD1306_NORMALDISPLAY);<br />    SPI_CMD(SSD1306_DISPLAYON);   <br />    <br />}[/syntax]<br />i glówna main<br />[syntax=c]/*<br /> * main.c    ATmega8    F_CPU = 8000000 Hz<br /> *                                                   <br /> * Created on: 2021-04-26<br /> *     Author: admin<br />*/<br />#include &lt;avr/io.h&gt;  <br />#include&lt;avr/pgmspace.h&gt;<br />#include&lt;util/delay.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;string.h&gt;<br />#include&lt;stdlib.h&gt;   <br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;HW_OLED/HW_OLED.h&quot;<br />/* const uint8_t testbit&#91;&#93; PROGMEM = {   <br />    // res: 128x64   - 607 bytes<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />    0x3F,0x80,0x00,0xC0,0x00,0x7F,0xE0,0x00,0x30,0x00,0x1F,0xFF,0xF8,0x03,0xFF,0xF8,<br />    0x24,0x80,0x00,0xA0,0x00,0x7F,0xE0,0x00,0x78,0x00,0x1F,0xFF,0xF8,0x02,0x00,0x08,<br />    0x15,0x00,0x02,0x90,0x00,0x66,0x60,0x60,0xFC,0x00,0x17,0xA3,0x18,0x0E,0xEE,0xE8,<br />    0x0E,0x01,0x01,0xA0,0x00,0x66,0x60,0x61,0xFE,0x00,0x13,0x2D,0xE8,0x08,0xEE,0xE8,                                                    <br />    0x04,0x05,0x00,0xC0,0x00,0x66,0x60,0x60,0x30,0x00,0x14,0xAD,0xE8,0x08,0xEE,0xE8,<br />    0x04,0x15,0x01,0xA0,0x00,0x66,0x60,0x60,0x30,0x00,0x17,0xAD,0x98,0x08,0xEE,0xE8,<br />    0x04,0x55,0x02,0x90,0x00,0x66,0x60,0x60,0x30,0x00,0x17,0xA3,0xE8,0x08,0xEE,0xE8,<br />    0x05,0x55,0x00,0xA0,0x00,0x7F,0xE0,0x60,0x30,0x00,0x17,0xAF,0xE8,0x08,0xEE,0xE8,<br />    0x05,0x55,0x00,0xC0,0x00,0x7F,0xE0,0x60,0x30,0x00,0x17,0xAF,0x18,0x0E,0xEE,0xE8,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFC,0x30,0x00,0x1F,0xFF,0xF8,0x02,0x00,0x08,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF8,0x30,0x00,0x1F,0xFF,0xF8,0x03,0xFF,0xF8,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />    0x39,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />    0x22,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />    0x32,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE1,0xE0,0x00,<br />    0x22,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x12,0x01,0xFC,<br />    0x39,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x12,0x01,0xFC,<br />    0x00,0x40,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x12,0x01,0xBC,<br />    0x00,0x00,0x00,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x12,0x01,0x9C,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE1,0x8C,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x11,0x84,<br />    0x00,0x00,0x00,0x07,0xCF,0x80,0x00,0x00,0x00,0x03,0xE0,0x00,0x02,0x10,0x11,0x8C,<br />    0x00,0x00,0x00,0x07,0xCF,0x80,0x00,0x00,0x00,0x03,0xE0,0x00,0x02,0x10,0x11,0x9C,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x10,0x11,0xBC,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE1,0xE1,0xFC,<br />    0x00,0x00,0x03,0xE7,0xCF,0x80,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,0x01,0xFC,<br />    0x00,0x00,0x03,0xE7,0xCF,0x80,0x00,0x00,0x00,0x03,0xE0,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />    0x00,0x01,0xF3,0xE7,0xCF,0x9F,0x3E,0x00,0x01,0xF3,0xE7,0xC0,0x00,0x00,0x00,0x00,<br />    0x00,0x01,0xF3,0xE7,0xCF,0x9F,0x3E,0x00,0x01,0xF3,0xE7,0xC0,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />    0x00,0xF9,0xF3,0xE7,0xCF,0x9F,0x3E,0x7C,0xF9,0xF3,0xE7,0xCF,0x80,0x00,0x00,0x00,<br />    0x00,0xF9,0xF3,0xE7,0xCF,0x9F,0x3E,0x7C,0xF9,0xF3,0xE7,0xCF,0x80,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x20,0xF3,0xC0,0x00,0x00,0x00,0x00,0x00,<br />    0x0F,0xC7,0xF9,0x86,0x7F,0x30,0x00,0x11,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,<br />    0x0F,0xC7,0xF9,0xC6,0x7F,0x30,0x00,0x11,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,<br />    0x18,0x60,0xC1,0xC6,0x60,0x30,0x00,0x11,0x20,0xE2,0x20,0x00,0x00,0x00,0x00,0x00,<br />    0x18,0x60,0xC1,0xE6,0x60,0x30,0x00,0x11,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,<br />    0x18,0x60,0xC1,0xA6,0x60,0x30,0x00,0x11,0x20,0x82,0x20,0x00,0x00,0x00,0x00,0x00,<br />    0x18,0x60,0xC1,0xB6,0x7C,0x30,0x00,0x0E,0x3C,0xF3,0xC3,0xF1,0xF3,0x06,0x3E,0x00,<br />    0x18,0x60,0xC1,0x96,0x7C,0x30,0x00,0x00,0x00,0x00,0x03,0x19,0x83,0x8E,0x63,0x00,<br />    0x1F,0xE0,0xC1,0x9E,0x60,0x30,0x00,0x00,0x00,0x00,0x03,0x19,0x83,0xDE,0x63,0x00,<br />    0x1F,0xE0,0xC1,0x8E,0x60,0x30,0x00,0x00,0x00,0x00,0x03,0x19,0x83,0x76,0x63,0x00,<br />    0x18,0x60,0xC1,0x8E,0x60,0x30,0x00,0x00,0x00,0x00,0x03,0x19,0xE3,0x26,0x63,0x00,<br />    0x18,0x60,0xC1,0x86,0x7F,0x3F,0x80,0x00,0x00,0x00,0x03,0x19,0x83,0x06,0x63,0x00,<br />    0x18,0x60,0xC1,0x86,0x7F,0x3F,0x80,0x00,0x00,0x00,0x03,0x19,0x83,0x06,0x63,0x00,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x19,0x83,0x06,0x63,0x00,<br />    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF1,0xF3,0x06,0x3E,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,<br />};<br />    */                        <br /> <br /><br /><br />                       <br />int main( void ) {           <br />                          <br /> SPI_OLED_Init(SSD1306_SWITCHCAPVCC , REFRESCH_MAX) ;   <br />    <br />  /* drawbitmap_P(0 , 0,testbit, 128, 64 , 1) ;       ***************BITMAPA                             <br />       SPI_OLED_Display(); <br />    */    <br />    //draw_line(0,63,127,0,1); <br />    draw_line(0,0,127,63,1);<br />    //fill_Rect(30,20,20,20,1); <br />   draw_char(29,46,'H',1,0,1);<br />    SPI_OLED_Display(); <br />    while(1) {                  <br />                            <br />    }                      <br /><br />}[/syntax]<br /><br />i znaki ascii :<br />[syntax=c]/*<br /> * OLED_FONT_1.c    atmega32    F_CPU = 11059200 Hz<br /> * <br /> * Created on: 2021-05-10<br /> *     Author: admin<br />*/             <br />#ifndef FONT5X7_H<br />#define FONT5X7_H<br />#include &lt;avr/io.h&gt;  <br />#include &lt;avr/pgmspace.h&gt;<br />                                     <br /><br />const uint8_t  font&#91;&#93; PROGMEM = {<br />   0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x3E, 0x6B,<br />    0x4F, 0x6B, 0x3E, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x18, 0x3C, 0x7E, 0x3C,<br />    0x18, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,<br />    0x18, 0x3C, 0x18, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x18, 0x24,<br />    0x18, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x30, 0x48, 0x3A, 0x06, 0x0E,<br />    0x26, 0x29, 0x79, 0x29, 0x26, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x40, 0x7F,<br />    0x05, 0x25, 0x3F, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x7F, 0x3E, 0x1C, 0x1C,<br />    0x08, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x5F,<br />    0x5F, 0x00, 0x5F, 0x5F, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x66, 0x89,<br />    0x95, 0x6A, 0x60, 0x60, 0x60, 0x60, 0x60, 0x94, 0xA2, 0xFF, 0xA2, 0x94,<br />    0x08, 0x04, 0x7E, 0x04, 0x08, 0x10, 0x20, 0x7E, 0x20, 0x10, 0x08, 0x08,<br />    0x2A, 0x1C, 0x08, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x1E, 0x10, 0x10, 0x10,<br />    0x10, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x06,<br />    0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F,<br />    0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14,<br />    0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x23, 0x13, 0x08, 0x64, 0x62, 0x36, 0x49,<br />    0x56, 0x20, 0x50, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x1C, 0x22, 0x41,<br />    0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08,<br />    0x08, 0x3E, 0x08, 0x08, 0x00, 0x80, 0x70, 0x30, 0x00, 0x08, 0x08, 0x08,<br />    0x08, 0x08, 0x00, 0x00, 0x60, 0x60, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02,<br />    0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x72, 0x49,<br />    0x49, 0x49, 0x46, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x18, 0x14, 0x12, 0x7F,<br />    0x10, 0x27, 0x45, 0x45, 0x45, 0x39, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x41,<br />    0x21, 0x11, 0x09, 0x07, 0x36, 0x49, 0x49, 0x49, 0x36, 0x46, 0x49, 0x49,<br />    0x29, 0x1E, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00,<br />    0x00, 0x08, 0x14, 0x22, 0x41, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x41,<br />    0x22, 0x14, 0x08, 0x02, 0x01, 0x59, 0x09, 0x06, 0x3E, 0x41, 0x5D, 0x59,<br />    0x4E, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x3E,<br />    0x41, 0x41, 0x41, 0x22, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x49, 0x49,<br />    0x49, 0x41, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x3E, 0x41, 0x41, 0x51, 0x73,<br />    0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x20, 0x40,<br />    0x41, 0x3F, 0x01, 0x7F, 0x08, 0x14, 0x22, 0x41, 0x7F, 0x40, 0x40, 0x40,<br />    0x40, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x3E,<br />    0x41, 0x41, 0x41, 0x3E, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x3E, 0x41, 0x51,<br />    0x21, 0x5E, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x26, 0x49, 0x49, 0x49, 0x32,<br />    0x03, 0x01, 0x7F, 0x01, 0x03, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x1F, 0x20,<br />    0x40, 0x20, 0x1F, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x63, 0x14, 0x08, 0x14,<br />    0x63, 0x03, 0x04, 0x78, 0x04, 0x03, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,<br />    0x7F, 0x41, 0x41, 0x41, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x41, 0x41,<br />    0x41, 0x7F, 0x04, 0x02, 0x01, 0x02, 0x04, 0x40, 0x40, 0x40, 0x40, 0x40,<br />    0x00, 0x03, 0x07, 0x08, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x7F, 0x28,<br />    0x44, 0x44, 0x38, 0x38, 0x44, 0x44, 0x44, 0x28, 0x38, 0x44, 0x44, 0x28,<br />    0x7F, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x18,<br />    0xA4, 0xA4, 0x9C, 0x78, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x44, 0x7D,<br />    0x40, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,<br />    0x00, 0x41, 0x7F, 0x40, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x7C, 0x08,<br />    0x04, 0x04, 0x78, 0x38, 0x44, 0x44, 0x44, 0x38, 0xFC, 0x18, 0x24, 0x24,<br />    0x18, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x48,<br />    0x54, 0x54, 0x54, 0x24, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x3C, 0x40, 0x40,<br />    0x20, 0x7C, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x3C, 0x40, 0x30, 0x40, 0x3C,<br />    0x44, 0x28, 0x10, 0x28, 0x44, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x44, 0x64,<br />    0x54, 0x4C, 0x44, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x77, 0x00,<br />    0x00, 0x00, 0x41, 0x36, 0x08, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x3C,<br />    0x26, 0x23, 0x26, 0x3C, 0x1E, 0xA1, 0xA1, 0x61, 0x12, 0x3A, 0x40, 0x40,<br />    0x20, 0x7A, 0x38, 0x54, 0x54, 0x55, 0x59, 0x21, 0x55, 0x55, 0x79, 0x41,<br />    0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut<br />    0x21, 0x55, 0x54, 0x78, 0x40, 0x20, 0x54, 0x55, 0x79, 0x40, 0x0C, 0x1E,<br />    0x52, 0x72, 0x12, 0x39, 0x55, 0x55, 0x55, 0x59, 0x39, 0x54, 0x54, 0x54,<br />    0x59, 0x39, 0x55, 0x54, 0x54, 0x58, 0x00, 0x00, 0x45, 0x7C, 0x41, 0x00,<br />    0x02, 0x45, 0x7D, 0x42, 0x00, 0x01, 0x45, 0x7C, 0x40, 0x7D, 0x12, 0x11,<br />    0x12, 0x7D, // A-umlaut<br />    0xF0, 0x28, 0x25, 0x28, 0xF0, 0x7C, 0x54, 0x55, 0x45, 0x00, 0x20, 0x54,<br />    0x54, 0x7C, 0x54, 0x7C, 0x0A, 0x09, 0x7F, 0x49, 0x32, 0x49, 0x49, 0x49,<br />    0x32, 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut<br />    0x32, 0x4A, 0x48, 0x48, 0x30, 0x3A, 0x41, 0x41, 0x21, 0x7A, 0x3A, 0x42,<br />    0x40, 0x20, 0x78, 0x00, 0x9D, 0xA0, 0xA0, 0x7D, 0x3D, 0x42, 0x42, 0x42,<br />    0x3D, // O-umlaut<br />    0x3D, 0x40, 0x40, 0x40, 0x3D, 0x3C, 0x24, 0xFF, 0x24, 0x24, 0x48, 0x7E,<br />    0x49, 0x43, 0x66, 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, 0xFF, 0x09, 0x29, 0xF6,<br />    0x20, 0xC0, 0x88, 0x7E, 0x09, 0x03, 0x20, 0x54, 0x54, 0x79, 0x41, 0x00,<br />    0x00, 0x44, 0x7D, 0x41, 0x30, 0x48, 0x48, 0x4A, 0x32, 0x38, 0x40, 0x40,<br />    0x22, 0x7A, 0x00, 0x7A, 0x0A, 0x0A, 0x72, 0x7D, 0x0D, 0x19, 0x31, 0x7D,<br />    0x26, 0x29, 0x29, 0x2F, 0x28, 0x26, 0x29, 0x29, 0x29, 0x26, 0x30, 0x48,<br />    0x4D, 0x40, 0x20, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,<br />    0x38, 0x2F, 0x10, 0xC8, 0xAC, 0xBA, 0x2F, 0x10, 0x28, 0x34, 0xFA, 0x00,<br />    0x00, 0x7B, 0x00, 0x00, 0x08, 0x14, 0x2A, 0x14, 0x22, 0x22, 0x14, 0x2A,<br />    0x14, 0x08, 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old<br />                                              // code<br />    0xAA, 0x55, 0xAA, 0x55, 0xAA,             // 50% block<br />    0xFF, 0x55, 0xFF, 0x55, 0xFF,             // 75% block<br />    0x00, 0x00, 0x00, 0xFF, 0x00, 0x10, 0x10, 0x10, 0xFF, 0x00, 0x14, 0x14,<br />    0x14, 0xFF, 0x00, 0x10, 0x10, 0xFF, 0x00, 0xFF, 0x10, 0x10, 0xF0, 0x10,<br />    0xF0, 0x14, 0x14, 0x14, 0xFC, 0x00, 0x14, 0x14, 0xF7, 0x00, 0xFF, 0x00,<br />    0x00, 0xFF, 0x00, 0xFF, 0x14, 0x14, 0xF4, 0x04, 0xFC, 0x14, 0x14, 0x17,<br />    0x10, 0x1F, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x14, 0x14, 0x14, 0x1F, 0x00,<br />    0x10, 0x10, 0x10, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10,<br />    0x10, 0x1F, 0x10, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x00, 0x00, 0x00, 0xFF,<br />    0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x00,<br />    0x00, 0x00, 0xFF, 0x14, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x1F,<br />    0x10, 0x17, 0x00, 0x00, 0xFC, 0x04, 0xF4, 0x14, 0x14, 0x17, 0x10, 0x17,<br />    0x14, 0x14, 0xF4, 0x04, 0xF4, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x14, 0x14,<br />    0x14, 0x14, 0x14, 0x14, 0x14, 0xF7, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x17,<br />    0x14, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x14, 0x14, 0x14, 0xF4, 0x14, 0x10,<br />    0x10, 0xF0, 0x10, 0xF0, 0x00, 0x00, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00,<br />    0x1F, 0x14, 0x00, 0x00, 0x00, 0xFC, 0x14, 0x00, 0x00, 0xF0, 0x10, 0xF0,<br />    0x10, 0x10, 0xFF, 0x10, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x14, 0x10, 0x10,<br />    0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF,<br />    0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,<br />    0x00, 0x00, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x38, 0x44, 0x44,<br />    0x38, 0x44, 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta<br />    0x7E, 0x02, 0x02, 0x06, 0x06, 0x02, 0x7E, 0x02, 0x7E, 0x02, 0x63, 0x55,<br />    0x49, 0x41, 0x63, 0x38, 0x44, 0x44, 0x3C, 0x04, 0x40, 0x7E, 0x20, 0x1E,<br />    0x20, 0x06, 0x02, 0x7E, 0x02, 0x02, 0x99, 0xA5, 0xE7, 0xA5, 0x99, 0x1C,<br />    0x2A, 0x49, 0x2A, 0x1C, 0x4C, 0x72, 0x01, 0x72, 0x4C, 0x30, 0x4A, 0x4D,<br />    0x4D, 0x30, 0x30, 0x48, 0x78, 0x48, 0x30, 0xBC, 0x62, 0x5A, 0x46, 0x3D,<br />    0x3E, 0x49, 0x49, 0x49, 0x00, 0x7E, 0x01, 0x01, 0x01, 0x7E, 0x2A, 0x2A,<br />    0x2A, 0x2A, 0x2A, 0x44, 0x44, 0x5F, 0x44, 0x44, 0x40, 0x51, 0x4A, 0x44,<br />    0x40, 0x40, 0x44, 0x4A, 0x51, 0x40, 0x00, 0x00, 0xFF, 0x01, 0x03, 0xE0,<br />    0x80, 0xFF, 0x00, 0x00, 0x08, 0x08, 0x6B, 0x6B, 0x08, 0x36, 0x12, 0x36,<br />    0x24, 0x36, 0x06, 0x0F, 0x09, 0x0F, 0x06, 0x00, 0x00, 0x18, 0x18, 0x00,<br />    0x00, 0x00, 0x10, 0x10, 0x00, 0x30, 0x40, 0xFF, 0x01, 0x01, 0x00, 0x1F,<br />    0x01, 0x01, 0x1E, 0x00, 0x19, 0x1D, 0x17, 0x12, 0x00, 0x3C, 0x3C, 0x3C,<br />    0x3C, 0x00, 0x00, 0x00, 0x00, 0x00                   <br />                            <br />};                                <br /><br />#endif // FONT5X7_H[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21357">wojtas14136</a> — 10 maja 2021, o 14:29</p><hr />
]]></content>
</entry>
</feed>