kopia lustrzana https://github.com/russhughes/st7789py_mpy
Support 320x240, Document font formats.
rodzic
844af1ae4a
commit
955a4e8e40
|
@ -92,7 +92,8 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#ttgo-fonts-py">ttgo_fonts.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#ttgo-scroll-py">ttgo_scroll.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#toasters-py">toasters.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#chango-py">Chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#chango-py">chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#noto-fonts-py">noto_fonts.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../fonts.html">Fonts</a><ul>
|
||||
|
|
|
@ -92,7 +92,8 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#ttgo-fonts-py">ttgo_fonts.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#ttgo-scroll-py">ttgo_scroll.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#toasters-py">toasters.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#chango-py">Chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#chango-py">chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../examples.html#noto-fonts-py">noto_fonts.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../fonts.html">Fonts</a><ul>
|
||||
|
@ -198,13 +199,20 @@
|
|||
<span class="sd">OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</span>
|
||||
<span class="sd">THE SOFTWARE.</span>
|
||||
|
||||
|
||||
<span class="sd">st7789 tft driver in MicroPython based on devbis' st7789py_mpy module from</span>
|
||||
<span class="sd">The driver is based on devbis' st7789py_mpy module from</span>
|
||||
<span class="sd">https://github.com/devbis/st7789py_mpy.</span>
|
||||
|
||||
<span class="sd">I added support for display rotation, scrolling and drawing text using 8 and 16</span>
|
||||
<span class="sd">bit wide bitmap fonts with heights that are multiples of 8. Included are 12</span>
|
||||
<span class="sd">bitmap fonts derived from classic pc text mode fonts.</span>
|
||||
<span class="sd">This driver adds support for:</span>
|
||||
|
||||
<span class="sd">- 320x240, 240x240 and 135x240 pixel displays</span>
|
||||
<span class="sd">- Display rotation</span>
|
||||
<span class="sd">- Hardware based scrolling</span>
|
||||
<span class="sd">- Drawing text using 8 and 16 bit wide bitmap fonts with heights that are</span>
|
||||
<span class="sd"> multiples of 8. Included are 12 bitmap fonts derived from classic pc</span>
|
||||
<span class="sd"> BIOS text mode fonts.</span>
|
||||
<span class="sd">- Drawing text using converted TrueType fonts.</span>
|
||||
<span class="sd">- Drawing converted bitmaps</span>
|
||||
|
||||
<span class="sd">"""</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">time</span>
|
||||
|
@ -282,6 +290,26 @@
|
|||
<span class="n">_BIT1</span> <span class="o">=</span> <span class="n">const</span><span class="p">(</span><span class="mh">0x02</span><span class="p">)</span>
|
||||
<span class="n">_BIT0</span> <span class="o">=</span> <span class="n">const</span><span class="p">(</span><span class="mh">0x01</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># Rotation tables (width, height, xstart, ystart)[rotation % 4]</span>
|
||||
|
||||
<span class="n">WIDTH_320</span> <span class="o">=</span> <span class="p">[(</span><span class="mi">320</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="mi">240</span><span class="p">,</span> <span class="mi">320</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="mi">320</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="mi">240</span><span class="p">,</span> <span class="mi">320</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)]</span>
|
||||
|
||||
<span class="n">WIDTH_240</span> <span class="o">=</span> <span class="p">[(</span><span class="mi">240</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="mi">240</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="mi">240</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">80</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="mi">240</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="mi">80</span><span class="p">,</span> <span class="mi">0</span><span class="p">)]</span>
|
||||
|
||||
<span class="n">WIDTH_135</span> <span class="o">=</span> <span class="p">[(</span><span class="mi">135</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="mi">52</span><span class="p">,</span> <span class="mi">40</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="mi">240</span><span class="p">,</span> <span class="mi">135</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="mi">53</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="mi">135</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="mi">53</span><span class="p">,</span> <span class="mi">40</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="mi">240</span><span class="p">,</span> <span class="mi">135</span><span class="p">,</span> <span class="mi">40</span><span class="p">,</span> <span class="mi">52</span><span class="p">)]</span>
|
||||
|
||||
<span class="c1"># MADCTL ROTATIONS[rotation % 4]</span>
|
||||
<span class="n">ROTATIONS</span> <span class="o">=</span> <span class="p">[</span><span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x60</span><span class="p">,</span> <span class="mh">0xc0</span><span class="p">,</span> <span class="mh">0xa0</span><span class="p">]</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="color565"><a class="viewcode-back" href="../st7789py.html#st7789py.color565">[docs]</a><span class="k">def</span> <span class="nf">color565</span><span class="p">(</span><span class="n">red</span><span class="p">,</span> <span class="n">green</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">blue</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
|
@ -320,18 +348,20 @@
|
|||
<span class="sd"> ystart (int): display ystart offset</span>
|
||||
<span class="sd"> rotation (int): display rotation</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">spi</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">,</span> <span class="n">reset</span><span class="p">,</span> <span class="n">dc</span><span class="p">,</span> <span class="n">cs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">backlight</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span>
|
||||
<span class="n">xstart</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">ystart</span><span class="o">=-</span><span class="mi">1</span><span class="p">,</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
|
||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">spi</span><span class="p">,</span> <span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">,</span> <span class="n">reset</span><span class="p">,</span> <span class="n">dc</span><span class="p">,</span>
|
||||
<span class="n">cs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">backlight</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">rotation</span><span class="o">=</span><span class="mi">0</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Initialize display.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="p">(</span><span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">)</span> <span class="o">!=</span> <span class="p">(</span><span class="mi">240</span><span class="p">,</span> <span class="mi">240</span><span class="p">)</span> <span class="ow">and</span> <span class="p">(</span><span class="n">width</span><span class="p">,</span> <span class="n">height</span><span class="p">)</span> <span class="o">!=</span> <span class="p">(</span><span class="mi">135</span><span class="p">,</span> <span class="mi">240</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">height</span> <span class="o">!=</span> <span class="mi">240</span> <span class="ow">or</span> <span class="n">width</span> <span class="ow">not</span> <span class="ow">in</span><span class="p">[</span><span class="mi">320</span><span class="p">,</span> <span class="mi">240</span><span class="p">,</span> <span class="mi">135</span><span class="p">]:</span>
|
||||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
|
||||
<span class="s2">"Unsupported display. Only 240x240 and 135x240 are supported."</span>
|
||||
<span class="s2">"Unsupported display. 320x240, 240x240 and 135x240 are supported."</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="n">width</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_display_height</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">height</span> <span class="o">=</span> <span class="n">height</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">xstart</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ystart</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">spi</span> <span class="o">=</span> <span class="n">spi</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">reset</span> <span class="o">=</span> <span class="n">reset</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">dc</span> <span class="o">=</span> <span class="n">dc</span>
|
||||
|
@ -437,41 +467,29 @@
|
|||
<span class="sd"> Set display rotation.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> rotation (int): 0-Portrait, 1-Landscape, 2-Inverted Portrait,</span>
|
||||
<span class="sd"> 3-Inverted Landscape</span>
|
||||
<span class="sd"> rotation (int):</span>
|
||||
<span class="sd"> - 0-Portrait</span>
|
||||
<span class="sd"> - 1-Landscape</span>
|
||||
<span class="sd"> - 2-Inverted Portrait</span>
|
||||
<span class="sd"> - 3-Inverted Landscape</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_rotation</span> <span class="o">=</span> <span class="n">rotation</span> <span class="o">%</span> <span class="mi">4</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_rotation</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> <span class="c1"># Portrait</span>
|
||||
<span class="n">madctl</span> <span class="o">=</span> <span class="n">ST7789_MADCTL_RGB</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">height</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_height</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span> <span class="o">==</span> <span class="mi">135</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">xstart</span> <span class="o">=</span> <span class="mi">52</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ystart</span> <span class="o">=</span> <span class="mi">40</span>
|
||||
|
||||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_rotation</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> <span class="c1"># Landscape</span>
|
||||
<span class="n">madctl</span> <span class="o">=</span> <span class="n">ST7789_MADCTL_MX</span> <span class="o">|</span> <span class="n">ST7789_MADCTL_MV</span> <span class="o">|</span> <span class="n">ST7789_MADCTL_RGB</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_height</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">height</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span> <span class="o">==</span> <span class="mi">135</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">xstart</span> <span class="o">=</span> <span class="mi">40</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ystart</span> <span class="o">=</span> <span class="mi">53</span>
|
||||
<span class="n">rotation</span> <span class="o">%=</span> <span class="mi">4</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_rotation</span> <span class="o">=</span> <span class="n">rotation</span>
|
||||
<span class="n">madctl</span> <span class="o">=</span> <span class="n">ROTATIONS</span><span class="p">[</span><span class="n">rotation</span><span class="p">]</span>
|
||||
|
||||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_rotation</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> <span class="c1"># Inverted Portrait</span>
|
||||
<span class="n">madctl</span> <span class="o">=</span> <span class="n">ST7789_MADCTL_MX</span> <span class="o">|</span> <span class="n">ST7789_MADCTL_MY</span> <span class="o">|</span> <span class="n">ST7789_MADCTL_RGB</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">height</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_height</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span> <span class="o">==</span> <span class="mi">135</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">xstart</span> <span class="o">=</span> <span class="mi">53</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ystart</span> <span class="o">=</span> <span class="mi">40</span>
|
||||
<span class="k">else</span><span class="p">:</span> <span class="c1"># Inverted Landscape</span>
|
||||
<span class="n">madctl</span> <span class="o">=</span> <span class="n">ST7789_MADCTL_MV</span> <span class="o">|</span> <span class="n">ST7789_MADCTL_MY</span> <span class="o">|</span> <span class="n">ST7789_MADCTL_RGB</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">width</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_height</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">height</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span> <span class="o">==</span> <span class="mi">135</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">xstart</span> <span class="o">=</span> <span class="mi">40</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">ystart</span> <span class="o">=</span> <span class="mi">52</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span> <span class="o">==</span> <span class="mi">320</span><span class="p">:</span>
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="n">WIDTH_320</span>
|
||||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span> <span class="o">==</span> <span class="mi">240</span><span class="p">:</span>
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="n">WIDTH_240</span>
|
||||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_display_width</span> <span class="o">==</span> <span class="mi">135</span><span class="p">:</span>
|
||||
<span class="n">table</span> <span class="o">=</span> <span class="n">WIDTH_135</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span>
|
||||
<span class="s2">"Unsupported display. 320x240, 240x240 and 135x240 are supported."</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">width</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">height</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">xstart</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">ystart</span> <span class="o">=</span> <span class="n">table</span><span class="p">[</span><span class="n">rotation</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_write</span><span class="p">(</span><span class="n">ST7789_MADCTL</span><span class="p">,</span> <span class="nb">bytes</span><span class="p">([</span><span class="n">madctl</span><span class="p">]))</span></div>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_set_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">):</span>
|
||||
|
|
|
@ -5,6 +5,7 @@ These examples run on the LilyGo TTGO-T-Display available from the usual
|
|||
locations. See https://github.com/Xinyuan-LilyGO/TTGO-T-Display for more
|
||||
information.
|
||||
|
||||
|
||||
ttgo_lines.py
|
||||
-------------
|
||||
|
||||
|
@ -12,6 +13,7 @@ ttgo_lines.py
|
|||
:linenos:
|
||||
:language: python
|
||||
|
||||
|
||||
ttgo_hello.py
|
||||
-------------
|
||||
|
||||
|
@ -19,6 +21,7 @@ ttgo_hello.py
|
|||
:linenos:
|
||||
:language: python
|
||||
|
||||
|
||||
ttgo_fonts.py
|
||||
-------------
|
||||
|
||||
|
@ -26,6 +29,7 @@ ttgo_fonts.py
|
|||
:linenos:
|
||||
:language: python
|
||||
|
||||
|
||||
ttgo_scroll.py
|
||||
--------------
|
||||
|
||||
|
@ -38,20 +42,31 @@ toasters.py
|
|||
-----------
|
||||
|
||||
Flying toasters sprite demo using bitmaps created from spritesheet using
|
||||
ImageMagick's convert and imgtobitmap.py utility. See the maketoast script in
|
||||
the utils directory for details.
|
||||
ImageMagick's convert and imgtobitmap.py utility. See the maketoast script in the utils directory for details.
|
||||
|
||||
.. literalinclude:: ../../examples/toasters/toasters.py
|
||||
:linenos:
|
||||
:language: python
|
||||
|
||||
Chango.py
|
||||
|
||||
chango.py
|
||||
---------
|
||||
|
||||
Test for font2bitmap converter for the GC9A01 display.
|
||||
Test for font2bitmap converter for the driver.
|
||||
See the font2bitmap program in the utils directory.
|
||||
|
||||
.. literalinclude:: ../../examples/truetype/chango.py
|
||||
:linenos:
|
||||
:language: python
|
||||
|
||||
|
||||
noto_fonts.py
|
||||
-------------
|
||||
|
||||
Test for font2bitmap converter for the driver.
|
||||
See the font2bitmap program in the utils directory.
|
||||
|
||||
.. literalinclude:: ../../examples/truetype/noto_fonts.py
|
||||
:linenos:
|
||||
:language: python
|
||||
|
||||
|
|
|
@ -26,10 +26,10 @@ Example:
|
|||
font_from_romfont -i font-bin -o fonts -f 32 -l 127
|
||||
|
||||
|
||||
.. literalinclude:: fontformat.py
|
||||
.. literalinclude:: romfont.py
|
||||
:linenos:
|
||||
:language: python
|
||||
:caption: Example python font file.
|
||||
:caption: Sample converted romfont font module.
|
||||
|
||||
|
||||
True-Type Font Conversion
|
||||
|
@ -48,6 +48,13 @@ Example use:
|
|||
- ./font2bitmap.py Chango-Regular.ttf 16 -c 0x20-0x7f
|
||||
|
||||
|
||||
.. literalinclude:: truetype.py
|
||||
:linenos:
|
||||
:language: python
|
||||
:caption: Sample converted TrueType font module.
|
||||
|
||||
|
||||
|
||||
8x8 Fonts
|
||||
---------
|
||||
|
||||
|
|
|
@ -94,7 +94,8 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="#ttgo-fonts-py">ttgo_fonts.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#ttgo-scroll-py">ttgo_scroll.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#toasters-py">toasters.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#chango-py">Chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#chango-py">chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="#noto-fonts-py">noto_fonts.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="fonts.html">Fonts</a><ul>
|
||||
|
@ -767,8 +768,7 @@ information.</p>
|
|||
<div class="section" id="toasters-py">
|
||||
<h2>toasters.py<a class="headerlink" href="#toasters-py" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Flying toasters sprite demo using bitmaps created from spritesheet using
|
||||
ImageMagick’s convert and imgtobitmap.py utility. See the maketoast script in
|
||||
the utils directory for details.</p>
|
||||
ImageMagick’s convert and imgtobitmap.py utility. See the maketoast script in the utils directory for details.</p>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
|
@ -964,8 +964,8 @@ the utils directory for details.</p>
|
|||
</td></tr></table></div>
|
||||
</div>
|
||||
<div class="section" id="chango-py">
|
||||
<h2>Chango.py<a class="headerlink" href="#chango-py" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Test for font2bitmap converter for the GC9A01 display.
|
||||
<h2>chango.py<a class="headerlink" href="#chango-py" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Test for font2bitmap converter for the driver.
|
||||
See the font2bitmap program in the utils directory.</p>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
|
@ -1020,7 +1020,7 @@ See the font2bitmap program in the utils directory.</p>
|
|||
<span class="normal">51</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="sd">"""</span>
|
||||
<span class="sd">chango.py</span>
|
||||
|
||||
<span class="sd"> Test for font2bitmap converter for the st7789 display.</span>
|
||||
<span class="sd"> Test for font2bitmap converter for the driver.</span>
|
||||
<span class="sd"> See the font2bitmap program in the utils directory.</span>
|
||||
<span class="sd">"""</span>
|
||||
|
||||
|
@ -1067,6 +1067,150 @@ See the font2bitmap program in the utils directory.</p>
|
|||
<span class="n">row</span> <span class="o">+=</span> <span class="n">font_64</span><span class="o">.</span><span class="n">HEIGHT</span>
|
||||
|
||||
|
||||
<span class="n">main</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
<div class="section" id="noto-fonts-py">
|
||||
<h2>noto_fonts.py<a class="headerlink" href="#noto-fonts-py" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Test for font2bitmap converter for the driver.
|
||||
See the font2bitmap program in the utils directory.</p>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span>
|
||||
<span class="normal">48</span>
|
||||
<span class="normal">49</span>
|
||||
<span class="normal">50</span>
|
||||
<span class="normal">51</span>
|
||||
<span class="normal">52</span>
|
||||
<span class="normal">53</span>
|
||||
<span class="normal">54</span>
|
||||
<span class="normal">55</span>
|
||||
<span class="normal">56</span>
|
||||
<span class="normal">57</span>
|
||||
<span class="normal">58</span>
|
||||
<span class="normal">59</span>
|
||||
<span class="normal">60</span>
|
||||
<span class="normal">61</span>
|
||||
<span class="normal">62</span>
|
||||
<span class="normal">63</span>
|
||||
<span class="normal">64</span>
|
||||
<span class="normal">65</span>
|
||||
<span class="normal">66</span>
|
||||
<span class="normal">67</span>
|
||||
<span class="normal">68</span>
|
||||
<span class="normal">69</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="sd">"""</span>
|
||||
<span class="sd">noto_fonts Writes the names of three Noto fonts centered on the display</span>
|
||||
<span class="sd"> using the font. The fonts were converted from True Type fonts using</span>
|
||||
<span class="sd"> the font2bitmap utility.</span>
|
||||
<span class="sd">"""</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">machine</span> <span class="kn">import</span> <span class="n">SoftSPI</span><span class="p">,</span> <span class="n">Pin</span>
|
||||
<span class="kn">import</span> <span class="nn">st7789py</span> <span class="k">as</span> <span class="nn">st7789</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">truetype</span> <span class="kn">import</span> <span class="n">NotoSans_32</span> <span class="k">as</span> <span class="n">noto_sans</span>
|
||||
<span class="kn">from</span> <span class="nn">truetype</span> <span class="kn">import</span> <span class="n">NotoSerif_32</span> <span class="k">as</span> <span class="n">noto_serif</span>
|
||||
<span class="kn">from</span> <span class="nn">truetype</span> <span class="kn">import</span> <span class="n">NotoSansMono_32</span> <span class="k">as</span> <span class="n">noto_mono</span>
|
||||
|
||||
|
||||
<span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">center</span><span class="p">(</span><span class="n">font</span><span class="p">,</span> <span class="n">string</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">color</span><span class="o">=</span><span class="n">st7789</span><span class="o">.</span><span class="n">WHITE</span><span class="p">):</span>
|
||||
<span class="n">screen</span> <span class="o">=</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span> <span class="c1"># get screen width</span>
|
||||
<span class="n">width</span> <span class="o">=</span> <span class="n">tft</span><span class="o">.</span><span class="n">write_width</span><span class="p">(</span><span class="n">font</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="c1"># get the width of the string</span>
|
||||
<span class="k">if</span> <span class="n">width</span> <span class="ow">and</span> <span class="n">width</span> <span class="o"><</span> <span class="n">screen</span><span class="p">:</span> <span class="c1"># if the string < display</span>
|
||||
<span class="n">col</span> <span class="o">=</span> <span class="n">tft</span><span class="o">.</span><span class="n">width</span> <span class="o">//</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">width</span> <span class="o">//</span> <span class="mi">2</span> <span class="c1"># find the column to center</span>
|
||||
<span class="k">else</span><span class="p">:</span> <span class="c1"># otherwise</span>
|
||||
<span class="n">col</span> <span class="o">=</span> <span class="mi">0</span> <span class="c1"># left justify</span>
|
||||
|
||||
<span class="n">tft</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">font</span><span class="p">,</span> <span class="n">string</span><span class="p">,</span> <span class="n">col</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">color</span><span class="p">)</span> <span class="c1"># and write the string</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">spi</span> <span class="o">=</span> <span class="n">SoftSPI</span><span class="p">(</span>
|
||||
<span class="n">baudrate</span><span class="o">=</span><span class="mi">20000000</span><span class="p">,</span>
|
||||
<span class="n">polarity</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
|
||||
<span class="n">phase</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span>
|
||||
<span class="n">sck</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">18</span><span class="p">),</span>
|
||||
<span class="n">mosi</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">19</span><span class="p">),</span>
|
||||
<span class="n">miso</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">13</span><span class="p">))</span>
|
||||
|
||||
<span class="n">tft</span> <span class="o">=</span> <span class="n">st7789</span><span class="o">.</span><span class="n">ST7789</span><span class="p">(</span>
|
||||
<span class="n">spi</span><span class="p">,</span>
|
||||
<span class="mi">135</span><span class="p">,</span>
|
||||
<span class="mi">240</span><span class="p">,</span>
|
||||
<span class="n">reset</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">23</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
|
||||
<span class="n">cs</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
|
||||
<span class="n">dc</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
|
||||
<span class="n">backlight</span><span class="o">=</span><span class="n">Pin</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="n">Pin</span><span class="o">.</span><span class="n">OUT</span><span class="p">),</span>
|
||||
<span class="n">rotation</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># enable display and clear screen</span>
|
||||
<span class="n">tft</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">st7789</span><span class="o">.</span><span class="n">BLACK</span><span class="p">)</span>
|
||||
|
||||
<span class="n">row</span> <span class="o">=</span> <span class="mi">16</span>
|
||||
|
||||
<span class="c1"># center the name of the first font, using the font</span>
|
||||
<span class="n">center</span><span class="p">(</span><span class="n">noto_sans</span><span class="p">,</span> <span class="s2">"NotoSans"</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">RED</span><span class="p">)</span>
|
||||
<span class="n">row</span> <span class="o">+=</span> <span class="n">noto_sans</span><span class="o">.</span><span class="n">HEIGHT</span>
|
||||
|
||||
<span class="c1"># center the name of the second font, using the font</span>
|
||||
<span class="n">center</span><span class="p">(</span><span class="n">noto_serif</span><span class="p">,</span> <span class="s2">"NotoSerif"</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">GREEN</span><span class="p">)</span>
|
||||
<span class="n">row</span> <span class="o">+=</span> <span class="n">noto_serif</span><span class="o">.</span><span class="n">HEIGHT</span>
|
||||
|
||||
<span class="c1"># center the name of the third font, using the font</span>
|
||||
<span class="n">center</span><span class="p">(</span><span class="n">noto_mono</span><span class="p">,</span> <span class="s2">"NotoSansMono"</span><span class="p">,</span> <span class="n">row</span><span class="p">,</span> <span class="n">st7789</span><span class="o">.</span><span class="n">BLUE</span><span class="p">)</span>
|
||||
<span class="n">row</span> <span class="o">+=</span> <span class="n">noto_mono</span><span class="o">.</span><span class="n">HEIGHT</span>
|
||||
|
||||
<span class="k">finally</span><span class="p">:</span>
|
||||
<span class="c1"># shutdown spi</span>
|
||||
<span class="k">if</span> <span class="s1">'spi'</span> <span class="ow">in</span> <span class="nb">locals</span><span class="p">():</span>
|
||||
<span class="n">spi</span><span class="o">.</span><span class="n">deinit</span><span class="p">()</span>
|
||||
|
||||
|
||||
<span class="n">main</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
|
|
189
docs/fonts.html
189
docs/fonts.html
|
@ -93,7 +93,8 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-fonts-py">ttgo_fonts.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-scroll-py">ttgo_scroll.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#toasters-py">toasters.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">Chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#noto-fonts-py">noto_fonts.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1 current"><a class="current reference internal" href="#">Fonts</a><ul>
|
||||
|
@ -191,7 +192,7 @@ character is 256 pixels or less. They are written using the write method.</p>
|
|||
<div><p>font_from_romfont -i font-bin -o fonts -f 32 -l 127</p>
|
||||
</div></blockquote>
|
||||
<div class="literal-block-wrapper docutils container" id="id2">
|
||||
<div class="code-block-caption"><span class="caption-text">Example python font file.</span><a class="headerlink" href="#id2" title="Permalink to this code">¶</a></div>
|
||||
<div class="code-block-caption"><span class="caption-text">Sample converted romfont font module.</span><a class="headerlink" href="#id2" title="Permalink to this code">¶</a></div>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
|
@ -208,11 +209,31 @@ character is 256 pixels or less. They are written using the write method.</p>
|
|||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="sd">"""converted from vga_8x8.bin """</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="sd">"""converted from vga_8x8.bin """</span>
|
||||
|
||||
<span class="c1"># font width</span>
|
||||
<span class="n">WIDTH</span> <span class="o">=</span> <span class="mi">8</span>
|
||||
|
||||
<span class="c1"># font height</span>
|
||||
<span class="n">HEIGHT</span> <span class="o">=</span> <span class="mi">8</span>
|
||||
|
||||
<span class="c1"># first character in front</span>
|
||||
<span class="n">FIRST</span> <span class="o">=</span> <span class="mh">0x20</span>
|
||||
|
||||
<span class="c1"># last character in font</span>
|
||||
<span class="n">LAST</span> <span class="o">=</span> <span class="mh">0x7f</span>
|
||||
|
||||
<span class="c1"># bitmap of each character from FIRST to LAST</span>
|
||||
<span class="n">_FONT</span> <span class="o">=</span>\
|
||||
<span class="sa">b</span><span class="s1">'</span><span class="se">\x00\x00\x00\x00\x00\x00\x00\x00</span><span class="s1">'</span>\
|
||||
<span class="sa">b</span><span class="s1">'</span><span class="se">\x18\x3c\x3c\x18\x18\x00\x18\x00</span><span class="s1">'</span>\
|
||||
|
@ -241,19 +262,117 @@ the negative glyph.left fix from peterhinch’s font conversion program
|
|||
<li><p>./font2bitmap NotoSans-Regular.ttf 32 -s “0123456789ABCEDF”</p></li>
|
||||
<li><p>./font2bitmap.py Chango-Regular.ttf 16 -c 0x20-0x7f</p></li>
|
||||
</ul>
|
||||
<div class="literal-block-wrapper docutils container" id="id3">
|
||||
<div class="code-block-caption"><span class="caption-text">Sample converted TrueType font module.</span><a class="headerlink" href="#id3" title="Permalink to this code">¶</a></div>
|
||||
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||
<span class="normal"> 2</span>
|
||||
<span class="normal"> 3</span>
|
||||
<span class="normal"> 4</span>
|
||||
<span class="normal"> 5</span>
|
||||
<span class="normal"> 6</span>
|
||||
<span class="normal"> 7</span>
|
||||
<span class="normal"> 8</span>
|
||||
<span class="normal"> 9</span>
|
||||
<span class="normal">10</span>
|
||||
<span class="normal">11</span>
|
||||
<span class="normal">12</span>
|
||||
<span class="normal">13</span>
|
||||
<span class="normal">14</span>
|
||||
<span class="normal">15</span>
|
||||
<span class="normal">16</span>
|
||||
<span class="normal">17</span>
|
||||
<span class="normal">18</span>
|
||||
<span class="normal">19</span>
|
||||
<span class="normal">20</span>
|
||||
<span class="normal">21</span>
|
||||
<span class="normal">22</span>
|
||||
<span class="normal">23</span>
|
||||
<span class="normal">24</span>
|
||||
<span class="normal">25</span>
|
||||
<span class="normal">26</span>
|
||||
<span class="normal">27</span>
|
||||
<span class="normal">28</span>
|
||||
<span class="normal">29</span>
|
||||
<span class="normal">30</span>
|
||||
<span class="normal">31</span>
|
||||
<span class="normal">32</span>
|
||||
<span class="normal">33</span>
|
||||
<span class="normal">34</span>
|
||||
<span class="normal">35</span>
|
||||
<span class="normal">36</span>
|
||||
<span class="normal">37</span>
|
||||
<span class="normal">38</span>
|
||||
<span class="normal">39</span>
|
||||
<span class="normal">40</span>
|
||||
<span class="normal">41</span>
|
||||
<span class="normal">42</span>
|
||||
<span class="normal">43</span>
|
||||
<span class="normal">44</span>
|
||||
<span class="normal">45</span>
|
||||
<span class="normal">46</span>
|
||||
<span class="normal">47</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="c1"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c1"># Converted from Chango-Regular.ttf using:</span>
|
||||
<span class="c1"># ./font2bitmap.py Chango-Regular.ttf 16 -c 0x20-0x7f</span>
|
||||
|
||||
<span class="c1"># Maps the order of the character data</span>
|
||||
<span class="n">MAP</span> <span class="o">=</span> <span class="s2">" !</span><span class="se">\"</span><span class="s2">#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[</span><span class="se">\\</span><span class="s2">]^_`abcdefghijklmnopqrstuvwxyz{|}~"</span>
|
||||
|
||||
<span class="c1"># Number of color bits per pixel, currently only 1 is used but could be</span>
|
||||
<span class="c1"># increased to support antialiased or smoothed fonts in the future.</span>
|
||||
<span class="n">BPP</span> <span class="o">=</span> <span class="mi">1</span>
|
||||
|
||||
<span class="c1"># Font height</span>
|
||||
<span class="n">HEIGHT</span> <span class="o">=</span> <span class="mi">17</span>
|
||||
|
||||
<span class="c1"># Font max width</span>
|
||||
<span class="n">MAX_WIDTH</span> <span class="o">=</span> <span class="mi">24</span>
|
||||
|
||||
<span class="c1"># one byte per character table of widths in the same order as the MAP string</span>
|
||||
<span class="n">_WIDTHS</span> <span class="o">=</span> \
|
||||
<span class="sa">b</span><span class="s1">'</span><span class="se">\x06\x08\x0a\x0e\x0d\x18\x10\x06\x08\x08\x0a\x0d\x06\x08\x06\x0b</span><span class="s1">'</span>\
|
||||
|
||||
<span class="o">...</span> <span class="n">more</span> <span class="n">lines</span> <span class="n">of</span> <span class="n">data</span><span class="o">...</span>
|
||||
|
||||
<span class="sa">b</span><span class="s1">'</span><span class="se">\x0d\x0d\x0b\x0a\x0b\x0e\x0c\x12\x0d\x0c\x0b\x09\x06\x09\x0e\x0b</span><span class="s1">'</span>
|
||||
|
||||
<span class="c1"># OFFSET_WIDTH bytes per character in the same order as the MAP string</span>
|
||||
<span class="c1"># to the start of each character in bits.</span>
|
||||
<span class="n">OFFSET_WIDTH</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
<span class="n">_OFFSETS</span> <span class="o">=</span> \
|
||||
<span class="sa">b</span><span class="s1">'</span><span class="se">\x00\x00\x00\x66\x00\xee\x01\x98\x02\x86\x03\x63\x04\xfb\x06\x0b</span><span class="s1">'</span>\
|
||||
|
||||
<span class="o">...</span> <span class="n">more</span> <span class="n">lines</span> <span class="n">of</span> <span class="n">data</span><span class="o">...</span>
|
||||
|
||||
<span class="sa">b</span><span class="s1">'</span><span class="se">\x49\x94\x4a\x71\x4b\x3d\x4b\xf8\x4c\x91\x4c\xf7\x4d\x90\x4e\x7e</span><span class="s1">'</span>
|
||||
|
||||
<span class="c1"># character bitmaps per character in the same order as the MAP string.</span>
|
||||
<span class="c1"># Note: character data may not start on byte boundaries</span>
|
||||
<span class="n">_BITMAPS</span> <span class="o">=</span>\
|
||||
<span class="sa">b</span><span class="s1">'</span><span class="se">\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x61</span><span class="s1">'</span>\
|
||||
|
||||
<span class="o">...</span> <span class="n">many</span> <span class="n">more</span> <span class="n">lines</span> <span class="n">of</span> <span class="n">data</span><span class="o">...</span>
|
||||
|
||||
<span class="sa">b</span><span class="s1">'</span><span class="se">\x3d\xe3\xfc\x00\x00\x00\x00\x00</span><span class="s1">'</span>
|
||||
|
||||
<span class="n">WIDTHS</span> <span class="o">=</span> <span class="nb">memoryview</span><span class="p">(</span><span class="n">_WIDTHS</span><span class="p">)</span>
|
||||
<span class="n">OFFSETS</span> <span class="o">=</span> <span class="nb">memoryview</span><span class="p">(</span><span class="n">_OFFSETS</span><span class="p">)</span>
|
||||
<span class="n">BITMAPS</span> <span class="o">=</span> <span class="nb">memoryview</span><span class="p">(</span><span class="n">_BITMAPS</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</td></tr></table></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="x8-fonts">
|
||||
<h2>8x8 Fonts<a class="headerlink" href="#x8-fonts" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="figure align-center" id="id3">
|
||||
<div class="figure align-center" id="id4">
|
||||
<img alt="_images/vga1_8x8.png" src="_images/vga1_8x8.png" />
|
||||
<p class="caption"><span class="caption-text">vga1_8x8.py: 128 Character 8x8 Font</span><a class="headerlink" href="#id3" title="Permalink to this image">¶</a></p>
|
||||
<p class="caption"><span class="caption-text">vga1_8x8.py: 128 Character 8x8 Font</span><a class="headerlink" href="#id4" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<div class="figure align-center" id="id4">
|
||||
<div class="figure align-center" id="id5">
|
||||
<img alt="_images/vga2_8x8.png" src="_images/vga2_8x8.png" />
|
||||
<p class="caption"><span class="caption-text">vga2_8x8.py: 256 Character 8x8 Font</span><a class="headerlink" href="#id4" title="Permalink to this image">¶</a></p>
|
||||
<p class="caption"><span class="caption-text">vga2_8x8.py: 256 Character 8x8 Font</span><a class="headerlink" href="#id5" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
|
@ -261,16 +380,16 @@ the negative glyph.left fix from peterhinch’s font conversion program
|
|||
</div>
|
||||
<div class="section" id="x16-fonts">
|
||||
<h2>8x16 Fonts<a class="headerlink" href="#x16-fonts" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="figure align-center" id="id5">
|
||||
<div class="figure align-center" id="id6">
|
||||
<img alt="_images/vga1_8x16.png" src="_images/vga1_8x16.png" />
|
||||
<p class="caption"><span class="caption-text">vga1_8x16.py: 128 Character 8x16 Font</span><a class="headerlink" href="#id5" title="Permalink to this image">¶</a></p>
|
||||
<p class="caption"><span class="caption-text">vga1_8x16.py: 128 Character 8x16 Font</span><a class="headerlink" href="#id6" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<div class="figure align-center" id="id6">
|
||||
<div class="figure align-center" id="id7">
|
||||
<img alt="_images/vga2_8x16.png" src="_images/vga2_8x16.png" />
|
||||
<p class="caption"><span class="caption-text">vga2_8x16.py: 256 Character 8x16 Font</span><a class="headerlink" href="#id6" title="Permalink to this image">¶</a></p>
|
||||
<p class="caption"><span class="caption-text">vga2_8x16.py: 256 Character 8x16 Font</span><a class="headerlink" href="#id7" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
|
@ -278,30 +397,30 @@ the negative glyph.left fix from peterhinch’s font conversion program
|
|||
</div>
|
||||
<div class="section" id="id1">
|
||||
<h2>16x16 Fonts<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="figure align-center" id="id7">
|
||||
<img alt="_images/vga1_16x16.png" src="_images/vga1_16x16.png" />
|
||||
<p class="caption"><span class="caption-text">vga1_16x16.py: 128 Character 16x16 Thin Font</span><a class="headerlink" href="#id7" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<div class="figure align-center" id="id8">
|
||||
<img alt="_images/vga1_bold_16x16.png" src="_images/vga1_bold_16x16.png" />
|
||||
<p class="caption"><span class="caption-text">vga1_bold_16x16.py: 128 Character 16x16 Bold Font</span><a class="headerlink" href="#id8" title="Permalink to this image">¶</a></p>
|
||||
<img alt="_images/vga1_16x16.png" src="_images/vga1_16x16.png" />
|
||||
<p class="caption"><span class="caption-text">vga1_16x16.py: 128 Character 16x16 Thin Font</span><a class="headerlink" href="#id8" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<div class="figure align-center" id="id9">
|
||||
<img alt="_images/vga2_16x16.png" src="_images/vga2_16x16.png" />
|
||||
<p class="caption"><span class="caption-text">vga2_16x16.py: 256 Character 16x16 Thin Font</span><a class="headerlink" href="#id9" title="Permalink to this image">¶</a></p>
|
||||
<img alt="_images/vga1_bold_16x16.png" src="_images/vga1_bold_16x16.png" />
|
||||
<p class="caption"><span class="caption-text">vga1_bold_16x16.py: 128 Character 16x16 Bold Font</span><a class="headerlink" href="#id9" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<div class="figure align-center" id="id10">
|
||||
<img alt="_images/vga2_16x16.png" src="_images/vga2_16x16.png" />
|
||||
<p class="caption"><span class="caption-text">vga2_16x16.py: 256 Character 16x16 Thin Font</span><a class="headerlink" href="#id10" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<div class="figure align-center" id="id11">
|
||||
<img alt="_images/vga2_bold_16x16.png" src="_images/vga2_bold_16x16.png" />
|
||||
<p class="caption"><span class="caption-text">vga2_bold_16x16.py: 256 Character 16x16 Bold Font</span><a class="headerlink" href="#id10" title="Permalink to this image">¶</a></p>
|
||||
<p class="caption"><span class="caption-text">vga2_bold_16x16.py: 256 Character 16x16 Bold Font</span><a class="headerlink" href="#id11" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
|
@ -309,30 +428,30 @@ the negative glyph.left fix from peterhinch’s font conversion program
|
|||
</div>
|
||||
<div class="section" id="x32-fonts">
|
||||
<h2>16x32 Fonts<a class="headerlink" href="#x32-fonts" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="figure align-center" id="id11">
|
||||
<img alt="_images/vga1_16x32.png" src="_images/vga1_16x32.png" />
|
||||
<p class="caption"><span class="caption-text">vga1_16x32.py: 128 Character 16x32 Thin Font</span><a class="headerlink" href="#id11" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<div class="figure align-center" id="id12">
|
||||
<img alt="_images/vga1_bold_16x32.png" src="_images/vga1_bold_16x32.png" />
|
||||
<p class="caption"><span class="caption-text">vga1_bold_16x32.py: 128 Character 16x32 Bold Font</span><a class="headerlink" href="#id12" title="Permalink to this image">¶</a></p>
|
||||
<img alt="_images/vga1_16x32.png" src="_images/vga1_16x32.png" />
|
||||
<p class="caption"><span class="caption-text">vga1_16x32.py: 128 Character 16x32 Thin Font</span><a class="headerlink" href="#id12" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<div class="figure align-center" id="id13">
|
||||
<img alt="_images/vga2_16x32.png" src="_images/vga2_16x32.png" />
|
||||
<p class="caption"><span class="caption-text">vga2_16x32.py: 256 Character 16x32 Thin Font</span><a class="headerlink" href="#id13" title="Permalink to this image">¶</a></p>
|
||||
<img alt="_images/vga1_bold_16x32.png" src="_images/vga1_bold_16x32.png" />
|
||||
<p class="caption"><span class="caption-text">vga1_bold_16x32.py: 128 Character 16x32 Bold Font</span><a class="headerlink" href="#id13" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<div class="figure align-center" id="id14">
|
||||
<img alt="_images/vga2_16x32.png" src="_images/vga2_16x32.png" />
|
||||
<p class="caption"><span class="caption-text">vga2_16x32.py: 256 Character 16x32 Thin Font</span><a class="headerlink" href="#id14" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
</div>
|
||||
<div class="figure align-center" id="id15">
|
||||
<img alt="_images/vga2_bold_16x32.png" src="_images/vga2_bold_16x32.png" />
|
||||
<p class="caption"><span class="caption-text">vga2_bold_16x32.py: 256 Character 16x32 Bold Font</span><a class="headerlink" href="#id14" title="Permalink to this image">¶</a></p>
|
||||
<p class="caption"><span class="caption-text">vga2_bold_16x32.py: 256 Character 16x32 Bold Font</span><a class="headerlink" href="#id15" title="Permalink to this image">¶</a></p>
|
||||
</div>
|
||||
<div class="line-block">
|
||||
<div class="line"><br /></div>
|
||||
|
|
|
@ -92,7 +92,8 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-fonts-py">ttgo_fonts.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-scroll-py">ttgo_scroll.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#toasters-py">toasters.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">Chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#noto-fonts-py">noto_fonts.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="fonts.html">Fonts</a><ul>
|
||||
|
|
|
@ -93,7 +93,8 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-fonts-py">ttgo_fonts.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-scroll-py">ttgo_scroll.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#toasters-py">toasters.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">Chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#noto-fonts-py">noto_fonts.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="fonts.html">Fonts</a><ul>
|
||||
|
@ -190,7 +191,8 @@ bitmap fonts derived from classic pc text mode fonts.</p>
|
|||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-fonts-py">ttgo_fonts.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-scroll-py">ttgo_scroll.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#toasters-py">toasters.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">Chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#noto-fonts-py">noto_fonts.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="fonts.html">Fonts</a><ul>
|
||||
|
|
BIN
docs/objects.inv
BIN
docs/objects.inv
Plik binarny nie jest wyświetlany.
|
@ -99,7 +99,8 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-fonts-py">ttgo_fonts.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-scroll-py">ttgo_scroll.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#toasters-py">toasters.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">Chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#noto-fonts-py">noto_fonts.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="fonts.html">Fonts</a><ul>
|
||||
|
|
|
@ -95,7 +95,8 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-fonts-py">ttgo_fonts.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-scroll-py">ttgo_scroll.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#toasters-py">toasters.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">Chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#noto-fonts-py">noto_fonts.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="fonts.html">Fonts</a><ul>
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -94,7 +94,8 @@
|
|||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-fonts-py">ttgo_fonts.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#ttgo-scroll-py">ttgo_scroll.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#toasters-py">toasters.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">Chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#chango-py">chango.py</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="examples.html#noto-fonts-py">noto_fonts.py</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="fonts.html">Fonts</a><ul>
|
||||
|
@ -195,11 +196,19 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.</p>
|
||||
<p>st7789 tft driver in MicroPython based on devbis’ st7789py_mpy module from
|
||||
<p>The driver is based on devbis’ st7789py_mpy module from
|
||||
<a class="reference external" href="https://github.com/devbis/st7789py_mpy">https://github.com/devbis/st7789py_mpy</a>.</p>
|
||||
<p>I added support for display rotation, scrolling and drawing text using 8 and 16
|
||||
bit wide bitmap fonts with heights that are multiples of 8. Included are 12
|
||||
bitmap fonts derived from classic pc text mode fonts.</p>
|
||||
<p>This driver adds support for:</p>
|
||||
<ul class="simple">
|
||||
<li><p>320x240, 240x240 and 135x240 pixel displays</p></li>
|
||||
<li><p>Display rotation</p></li>
|
||||
<li><p>Hardware based scrolling</p></li>
|
||||
<li><p>Drawing text using 8 and 16 bit wide bitmap fonts with heights that are
|
||||
multiples of 8. Included are 12 bitmap fonts derived from classic pc
|
||||
BIOS text mode fonts.</p></li>
|
||||
<li><p>Drawing text using converted TrueType fonts.</p></li>
|
||||
<li><p>Drawing converted bitmaps</p></li>
|
||||
</ul>
|
||||
<dl class="py function">
|
||||
<dt id="st7789py.color565">
|
||||
<code class="sig-prename descclassname"><span class="pre">st7789py.</span></code><code class="sig-name descname"><span class="pre">color565</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">red</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">green</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">blue</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/st7789py.html#color565"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#st7789py.color565" title="Permalink to this definition">¶</a></dt>
|
||||
|
@ -208,7 +217,7 @@ bitmap fonts derived from classic pc text mode fonts.</p>
|
|||
|
||||
<dl class="py class">
|
||||
<dt id="st7789py.ST7789">
|
||||
<em class="property"><span class="pre">class</span> </em><code class="sig-prename descclassname"><span class="pre">st7789py.</span></code><code class="sig-name descname"><span class="pre">ST7789</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">spi</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">height</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reset</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dc</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">backlight</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xstart</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-</span> <span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ystart</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">-</span> <span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rotation</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/st7789py.html#ST7789"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#st7789py.ST7789" title="Permalink to this definition">¶</a></dt>
|
||||
<em class="property"><span class="pre">class</span> </em><code class="sig-prename descclassname"><span class="pre">st7789py.</span></code><code class="sig-name descname"><span class="pre">ST7789</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">spi</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">height</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reset</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dc</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">backlight</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rotation</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/st7789py.html#ST7789"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#st7789py.ST7789" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>ST7789 driver class</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
|
@ -272,10 +281,13 @@ bitmap fonts derived from classic pc text mode fonts.</p>
|
|||
<dd><p>Set display rotation.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>rotation</strong> (<em>int</em>) – 0-Portrait, 1-Landscape, 2-Inverted Portrait,</p></li>
|
||||
<li><p><strong>Landscape</strong> (<em>3-Inverted</em>) – </p></li>
|
||||
<dd class="field-odd"><p><strong>rotation</strong> (<em>int</em>) – <ul class="simple">
|
||||
<li><p>0-Portrait</p></li>
|
||||
<li><p>1-Landscape</p></li>
|
||||
<li><p>2-Inverted Portrait</p></li>
|
||||
<li><p>3-Inverted Landscape</p></li>
|
||||
</ul>
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
|
|
@ -26,13 +26,20 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
st7789 tft driver in MicroPython based on devbis' st7789py_mpy module from
|
||||
The driver is based on devbis' st7789py_mpy module from
|
||||
https://github.com/devbis/st7789py_mpy.
|
||||
|
||||
I added support for display rotation, scrolling and drawing text using 8 and 16
|
||||
bit wide bitmap fonts with heights that are multiples of 8. Included are 12
|
||||
bitmap fonts derived from classic pc text mode fonts.
|
||||
This driver adds support for:
|
||||
|
||||
- 320x240, 240x240 and 135x240 pixel displays
|
||||
- Display rotation
|
||||
- Hardware based scrolling
|
||||
- Drawing text using 8 and 16 bit wide bitmap fonts with heights that are
|
||||
multiples of 8. Included are 12 bitmap fonts derived from classic pc
|
||||
BIOS text mode fonts.
|
||||
- Drawing text using converted TrueType fonts.
|
||||
- Drawing converted bitmaps
|
||||
|
||||
"""
|
||||
|
||||
import time
|
||||
|
@ -110,6 +117,26 @@ _BIT2 = const(0x04)
|
|||
_BIT1 = const(0x02)
|
||||
_BIT0 = const(0x01)
|
||||
|
||||
# Rotation tables (width, height, xstart, ystart)[rotation % 4]
|
||||
|
||||
WIDTH_320 = [(320, 240, 0, 0),
|
||||
(240, 320, 0, 0),
|
||||
(320, 240, 0, 0),
|
||||
(240, 320, 0, 0)]
|
||||
|
||||
WIDTH_240 = [(240, 240, 0, 0),
|
||||
(240, 240, 0, 0),
|
||||
(240, 240, 0, 80),
|
||||
(240, 240, 80, 0)]
|
||||
|
||||
WIDTH_135 = [(135, 240, 52, 40),
|
||||
(240, 135, 40, 53),
|
||||
(135, 240, 53, 40),
|
||||
(240, 135, 40, 52)]
|
||||
|
||||
# MADCTL ROTATIONS[rotation % 4]
|
||||
ROTATIONS = [0x00, 0x60, 0xc0, 0xa0]
|
||||
|
||||
|
||||
def color565(red, green=0, blue=0):
|
||||
"""
|
||||
|
@ -153,9 +180,9 @@ class ST7789():
|
|||
"""
|
||||
Initialize display.
|
||||
"""
|
||||
if (width, height) != (240, 240) and (width, height) != (135, 240):
|
||||
if height != 240 or width not in[320, 240, 135]:
|
||||
raise ValueError(
|
||||
"Unsupported display. Only 240x240 and 135x240 are supported."
|
||||
"Unsupported display. 320x240, 240x240 and 135x240 are supported."
|
||||
)
|
||||
|
||||
self._display_width = self.width = width
|
||||
|
@ -267,41 +294,29 @@ class ST7789():
|
|||
Set display rotation.
|
||||
|
||||
Args:
|
||||
rotation (int): 0-Portrait, 1-Landscape, 2-Inverted Portrait,
|
||||
3-Inverted Landscape
|
||||
rotation (int):
|
||||
- 0-Portrait
|
||||
- 1-Landscape
|
||||
- 2-Inverted Portrait
|
||||
- 3-Inverted Landscape
|
||||
"""
|
||||
self._rotation = rotation % 4
|
||||
if self._rotation == 0: # Portrait
|
||||
madctl = ST7789_MADCTL_RGB
|
||||
self.width = self._display_width
|
||||
self.height = self._display_height
|
||||
if self._display_width == 135:
|
||||
self.xstart = 52
|
||||
self.ystart = 40
|
||||
|
||||
elif self._rotation == 1: # Landscape
|
||||
madctl = ST7789_MADCTL_MX | ST7789_MADCTL_MV | ST7789_MADCTL_RGB
|
||||
self.width = self._display_height
|
||||
self.height = self._display_width
|
||||
if self._display_width == 135:
|
||||
self.xstart = 40
|
||||
self.ystart = 53
|
||||
rotation %= 4
|
||||
self._rotation = rotation
|
||||
madctl = ROTATIONS[rotation]
|
||||
|
||||
elif self._rotation == 2: # Inverted Portrait
|
||||
madctl = ST7789_MADCTL_MX | ST7789_MADCTL_MY | ST7789_MADCTL_RGB
|
||||
self.width = self._display_width
|
||||
self.height = self._display_height
|
||||
if self._display_width == 135:
|
||||
self.xstart = 53
|
||||
self.ystart = 40
|
||||
else: # Inverted Landscape
|
||||
madctl = ST7789_MADCTL_MV | ST7789_MADCTL_MY | ST7789_MADCTL_RGB
|
||||
self.width = self._display_height
|
||||
self.height = self._display_width
|
||||
if self._display_width == 135:
|
||||
self.xstart = 40
|
||||
self.ystart = 52
|
||||
if self._display_width == 320:
|
||||
table = WIDTH_320
|
||||
elif self._display_width == 240:
|
||||
table = WIDTH_240
|
||||
elif self._display_width == 135:
|
||||
table = WIDTH_135
|
||||
else:
|
||||
raise ValueError(
|
||||
"Unsupported display. 320x240, 240x240 and 135x240 are supported."
|
||||
)
|
||||
|
||||
self.width, self.height, self.xstart, self.ystart = table[rotation]
|
||||
self._write(ST7789_MADCTL, bytes([madctl]))
|
||||
|
||||
def _set_columns(self, start, end):
|
||||
|
|
Ładowanie…
Reference in New Issue