Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2016:ft800-driver

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2016:ft800-driver [2016/12/19 19:58]
Jeroným Juráň [Možnosti aplikací]
2016:ft800-driver [2017/01/14 12:56] (aktuální)
Jeroným Juráň [Demonstrace funkcí]
Řádek 101: Řádek 101:
 - tft_types.h ​ - definice konfigurační struktury (jazyk,​podsvit,​barevné schema, ...) - tft_types.h ​ - definice konfigurační struktury (jazyk,​podsvit,​barevné schema, ...)
 ==== Stavový automat ==== ==== Stavový automat ====
-Aplikace je strukturována jako stavový automat se stavovou proměnnou scr. Jednotlivé obrazovky často přistupují ke stejným datům a většina proměnných je tak pro modul globálních. Během běhu programu je potřeba periodicky provádět některé operace jako například kontrola stavů časovačů nebo čtení tagu. Tyto operace jsou prováděny mezi vykreslením obrazovek z hlavní smyčky která ​volá obrazovky volá. Obrazovky ("​screeny"​) jsou tedy implementovány jako jednorázové vykreslení,​ ne jako smyčky.  ​+Aplikace je strukturována jako stavový automat se stavovou proměnnou scr. Jednotlivé obrazovky často přistupují ke stejným datům a většina proměnných je tak pro modul globálních. Během běhu programu je potřeba periodicky provádět některé operace jako například kontrola stavů časovačů nebo čtení tagu. Tyto operace jsou prováděny mezi vykreslením obrazovek z hlavní smyčkykterá obrazovky volá. Obrazovky ("​screeny"​) jsou tedy implementovány jako jednorázové vykreslení,​ ne jako smyčky.  ​
  
 <​code>​ <​code>​
Řádek 128: Řádek 128:
 ==== Obrazovky (screeny),​DL ==== ==== Obrazovky (screeny),​DL ====
 Každé překreslení obrazovky je reprezentováno vykreslením jednoho displej listu (DL). Každý DL začíná voláním cmd_dlstart,​ dále pokračuje vykreslováním dalších příkazů s případnými výpočty. Ukončuje ho příkaz cmd(display()) a vykresluje ho cmd_swap(). Každé překreslení obrazovky je reprezentováno vykreslením jednoho displej listu (DL). Každý DL začíná voláním cmd_dlstart,​ dále pokračuje vykreslováním dalších příkazů s případnými výpočty. Ukončuje ho příkaz cmd(display()) a vykresluje ho cmd_swap().
-Driver je koncipován bez vlastního zásobníku tj. příkazy se posílají do FT800 přímo a je tedy možné mezitím provádět výpočty (např. souřadnic),​ což by při jednorázovém odeslání zásobníku nebylo možné. Navíc by bylo nutné alokovat 4KB SRAM což by omezilo použití driveru pro menší mikrokontroléry.+Driver je koncipován bez vlastního zásobníkutj. příkazy se posílají do FT800 přímo a je tedy možné mezitím provádět výpočty (např. souřadnic),​ což by při jednorázovém odeslání zásobníku nebylo možné. Navíc by bylo nutné alokovat 4KB SRAMcož by omezilo použití driveru pro menší mikrokontroléry.
 Obrazovky jsou vykresleny typicky s 20 až 70 FPS podle jejich složitosti. Obrazovky jsou vykresleny typicky s 20 až 70 FPS podle jejich složitosti.
  
Řádek 154: Řádek 154:
  
 ==== Fonty, bitmapy ==== ==== Fonty, bitmapy ====
-FT800 má integrovány dva druhy fontů v několika velikostech. Pokud aplikace vyžaduje font například s českou diakritikou je možné si tento font pomocí poskytovaného nástroje pro příkazovou řádku vygenerovat. K tomu je potřeba soubor fontu a textový soubor se znaky které mají být vytvořeny.+FT800 má integrovány dva druhy fontů v několika velikostech. Pokud aplikace vyžaduje font například s českou diakritikouje možné si tento font pomocí poskytovaného nástroje pro příkazovou řádku vygenerovat. K tomu je potřeba soubor fontu a textový soubor se znakykteré mají být vytvořeny.
 Výsledná data lze vložit například jako hlavičkový soubor do kódu. Dále je potřeba font do řadiče nahrát a správně jej inicializovat (custom_font_init). ​ Výsledná data lze vložit například jako hlavičkový soubor do kódu. Dále je potřeba font do řadiče nahrát a správně jej inicializovat (custom_font_init). ​
-Aby bylo možné font použít je nejdříve nutné konvertovat řetězce na správné kódování (znaky ve vytvořeném fontu jsou kódovány podle pořadí v textovém souboru před konverzí kdežto řetězce v kódu jsou dány vývojovým prostředím). K tomu slouží další uživatelské funkce obsahující převod znaků podle kódovací tabulky. ​+Aby bylo možné font použítje nejdříve nutné konvertovat řetězce na správné kódování (znaky ve vytvořeném fontu jsou kódovány podle pořadí v textovém souboru před konverzíkdežto řetězce v kódu jsou dány vývojovým prostředím). K tomu slouží další uživatelské funkce obsahující převod znaků podle kódovací tabulky. ​
  
-Podobně jako s fonty je možné dedikovaným nástrojem konvertovat bitmapy v různých formátech. Ty je následně potřeba stejně jako fonty nahrát do paměti a inicializovat (ardesa,​rozměry,​ handle,​formát,​..).+Podobně jako s fonty je možné dedikovaným nástrojem konvertovat bitmapy v různých formátech. Ty je následně potřebastejně jako fontynahrát do paměti a inicializovat (ardesa,​rozměry,​ handle,​formát,​..).
 ==== Retězce, jazyky ====  ==== Retězce, jazyky ==== 
-Aby bylo možné měnit jazyk aplikace obsahuje program vícerozměrné pole s adresami konstantních řetězců. První index určuje text (např. "​Nastavení","​Vytvořit položku",​...),​ druhý index vybírá jazyk.+Aby bylo možné měnit jazyk aplikaceobsahuje program vícerozměrné pole s adresami konstantních řetězců. První index určuje text (např. "​Nastavení","​Vytvořit položku",​...),​ druhý index vybírá jazyk.
 ==== Barevná schémata ====  ==== Barevná schémata ==== 
 Podobně jako u řetězců obsahuje aplikace tabulku barev. První index určuje tzv. třídu (tlačítko typu jedna-BUT1, text typu 1 -STR1, bitmapy popředí -BMFG, gradient na pozadí GR11, atd..), druhý index par určuje složku RGB. Pro změnu barevného schématu stačí předat driveru adresu jiné tabulky barev. ​ Podobně jako u řetězců obsahuje aplikace tabulku barev. První index určuje tzv. třídu (tlačítko typu jedna-BUT1, text typu 1 -STR1, bitmapy popředí -BMFG, gradient na pozadí GR11, atd..), druhý index par určuje složku RGB. Pro změnu barevného schématu stačí předat driveru adresu jiné tabulky barev. ​
-Jelikož grafický kontext používá tři druhy barev (COLOR_RGB,​FGCOLOR,​BGCOLOR) byla v ytvořena funkce cmd_set_color která nastavování zjednodušuje.+Jelikož grafický kontext používá tři druhy barev (COLOR_RGB,​FGCOLOR,​BGCOLOR)byla v ytvořena funkce cmd_set_colorkterá nastavování zjednodušuje.
  
  
Řádek 172: Řádek 172:
 {{youtube>​gMtHJN_q7O8?​medium}} {{youtube>​gMtHJN_q7O8?​medium}}
  
 +Na následujících snímcích je vidět hardware vytvořený v rámci diplomové práce a ukázková aplikace. Tato zařízení jsou řízena pomocí mikrokontrolérů s jádry ARM (STM - STM32F030CC) realizují vývojové desky pro bezdrátový přenos audio signálu ve standardu WiSA. Jelikož konkrétní aplikace je zatím ve vývoji, byla pro demonstraci pouze přeportována jiná aplikace, která ukazuje, že vytvořená driver je možné použít pro různé platformy.
 +
 +{{:​2016:​tx.jpg?​300|}}
 +{{:​2016:​rx.jpg?​300|}}
 +{{:​2016:​imag0148.jpg?​600|}}
 ====== Závěr ====== ====== Závěr ======
-Projekt popisuje vytvořený driver umožňující plné využití grafického řadiče FT800. Tento řadič spolu s vytvořeným ovladačem umožňuje tvorbu pokročilých GUI při minimálních nárocích na mikrokontrolér. Software byl již využit pro několik profesionálních produktů, na dalších se pracuje a další jsou v plánu (vztaženo k datu vytvoření tohoto dokumentu).+Projekt popisuje vytvořený driver umožňující plné využití grafického řadiče FT800. Software je universálné a může být použit pro libovolnou platformu. Tento řadič spolu s vytvořeným ovladačem umožňuje tvorbu pokročilých GUI při minimálních nárocích na mikrokontrolér. Software byl již využit pro několik profesionálních produktů, na dalších se pracuje a další jsou v plánu (vztaženo k datu vytvoření tohoto dokumentu).
  
2016/ft800-driver.1482173922.txt.gz · Poslední úprava: 2016/12/19 19:58 autor: Jeroným Juráň