Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2014:led-bludiste

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
2014:led-bludiste [2015/01/18 14:21]
Ivan Ryba
2014:led-bludiste [2015/01/18 14:37] (aktuální)
Ivan Ryba
Řádek 49: Řádek 49:
  
 Metoda je ovšem zbytečně destruktivní když uvážíme, že máme k dispozici převodník pro matici, tedy v podstatě jednoúčelový hardware, zatímco RTC ClockIn by se u jiné aplikace ještě mohl hodit. Navíc by pak převodník fungoval jenom na upraveném kitu, což je zbytečná komplikace navíc. Proto byla zvolena modifikace převodníkové DPS a pin druhé zelené LED vedoucí na PTC1 byl drátkem přepojen na nevyužitý PTB3. Pin se nachází o dvě pozice níže v tom samém bloku pinů (viz [[http://​developer.mbed.org/​media/​uploads/​rikabel/​xkl25z-pinout-revised.jpg.pagespeed.ic.sIdUo0W4Ng.webp|ROZPIS]]),​ takže úprava není složitá a nevyžaduje ani změnu postupu pájení. Pro výrobu dalších převodníků lze změnu zahrnout do návrhu, modifikace DPS nevyžaduje kromě posunu jedné cesty vůbec nic navíc. Metoda je ovšem zbytečně destruktivní když uvážíme, že máme k dispozici převodník pro matici, tedy v podstatě jednoúčelový hardware, zatímco RTC ClockIn by se u jiné aplikace ještě mohl hodit. Navíc by pak převodník fungoval jenom na upraveném kitu, což je zbytečná komplikace navíc. Proto byla zvolena modifikace převodníkové DPS a pin druhé zelené LED vedoucí na PTC1 byl drátkem přepojen na nevyužitý PTB3. Pin se nachází o dvě pozice níže v tom samém bloku pinů (viz [[http://​developer.mbed.org/​media/​uploads/​rikabel/​xkl25z-pinout-revised.jpg.pagespeed.ic.sIdUo0W4Ng.webp|ROZPIS]]),​ takže úprava není složitá a nevyžaduje ani změnu postupu pájení. Pro výrobu dalších převodníků lze změnu zahrnout do návrhu, modifikace DPS nevyžaduje kromě posunu jedné cesty vůbec nic navíc.
- 
-Pro úplnost lze dodat, že s použitím této modifikace po obnovení firmwaru slabě zeleně svítí pro změnu první LED ve spodním řádku, ovšem tohle již lze softwarovým vypnutím napravit a žádné pozdější komplikace to nezpůsobuje. 
  
 ---- ----
Řádek 85: Řádek 83:
 Timer t;</​code>​ Timer t;</​code>​
  
-Pro přehlednost ​následujících bloků ​ještě příklad inicializace výstupů.+Pro přehlednost ​následujícího kódu ještě příklad inicializace výstupů.
  
 <code cpp> <code cpp>
Řádek 93: Řádek 91:
 </​code>​ </​code>​
  
-Následuje funkce pro zjednodušení zadávání sloupce ​''​sl( s )'' ​a řádku pro pohyb kuličky ​''​ra( r )''​. Další funkce určuje svícení zadaných stěn. LED musí samozřejmě klasicky "​blikat",​ pro lidské oko neznatelně.+Následuje funkce pro zjednodušení zadávání sloupce 
 + 
 +<code cpp> 
 +int sl (int s)
 +    switch (s){ 
 +        case 0 : SB1 = 0; SB2 = 0; SB3 = 0; break; 
 +        . 
 +        . 
 +        . 
 +    } 
 +
 +</​code>​ 
 + 
 +a řádku pro pohyb kuličky. LED musí samozřejmě klasicky "​blikat",​ pro lidské oko neznatelně
 + 
 +<code cpp> 
 +int ra (int r){ 
 +    switch (r){ 
 +        case 0 : RLED1 = 0; wait(0.001);​ RLED1 = 1; break; 
 +        . 
 +        . 
 +        . 
 +    } 
 +
 +</​code>​ 
 + 
 +Další funkce určuje svícení zadaných stěn.
  
 <code cpp> <code cpp>
Řádek 116: Řádek 140:
                  ​sl(4);​ GLED2 = 0; GLED3 = 0; GLED4 = 0; GLED5 = 0; GLED6 = 0; wait(0.001);​ GLED2 = 1; GLED3 = 1; GLED4 = 1; GLED5 = 1; GLED6 = 1;                  ​sl(4);​ GLED2 = 0; GLED3 = 0; GLED4 = 0; GLED5 = 0; GLED6 = 0; wait(0.001);​ GLED2 = 1; GLED3 = 1; GLED4 = 1; GLED5 = 1; GLED6 = 1;
                  ​break;​                  ​break;​
-                 +    ​
-                 ​+    
-                 ​.+    . 
 +}
 </​code>​ </​code>​
  
-Následuje hlavní funkce. Komentáře v kódu nepotřebují další komentář.+Následuje hlavní funkce. Komentáře v kódu jsou dostatečně vypovídající
  
 <code cpp> <code cpp>
Řádek 213: Řádek 238:
 ===== Závěr ===== ===== Závěr =====
  
-Zadání projektu bylo splněno v plném rozsahu. Po zapojení do USB je displej zhasnutý. Po zmáčknutí tlačítka Reset se objeví bludiště s kuličkou, která se nakláněním bludiště pohybuje mezi jeho stěnami. Počínaje prvním náklonem začíná běžet čas. Po dosažení cíle se objeví výsledný čas, který hráč k dosažení cíle potřeboval. Stiskem tlačítka Reset se opět objeví bludiště, kulička a čas čekají na náklon a hra začíná znovu.+Zadání projektu bylo splněno v plném rozsahu. Po zapojení do USB se objeví bludiště s kuličkou, která se nakláněním bludiště pohybuje mezi jeho stěnami. Počínaje prvním náklonem začíná běžet čas. Po dosažení cíle se objeví výsledný čas, který hráč k dosažení cíle potřeboval. Stiskem tlačítka Reset se opět objeví bludiště, kulička a čas čekají na náklon a hra začíná znovu.
  
 Je škoda, že displej je moc malý na to, aby se dal čas zobrazit v pochopitelnějším formátu. Pro dobrou čitelnost čísel nezbývá místo ani na jednotku času, ani na dvojtečku před číslem, která by mohla indikovat na první pohled, co ono číslo zobrazuje. Je škoda, že displej je moc malý na to, aby se dal čas zobrazit v pochopitelnějším formátu. Pro dobrou čitelnost čísel nezbývá místo ani na jednotku času, ani na dvojtečku před číslem, která by mohla indikovat na první pohled, co ono číslo zobrazuje.
  
-Vzhledem k formě hardwaru je třeba držet bludiště za hranu převodníku,​ neboť dotykem pinů na jakékoli z desek může dojít ke zkratu a i poškození desky. I to může být důvod, proč se realizace podařila až na druhé desce kl25z.+Z hlediska softwaru by ještě šlo zapracovat na jednodušší implementaci stěn, například podle souřadnic, což by usnadnilo tvorbu dalších map. 
 + 
 +Vzhledem k formě hardwaru je třeba držet bludiště za hranu převodníku,​ neboť dotykem pinů na jakékoli z desek může dojít ke zkratu a i poškození desky. I to může být důvod, proč se realizace podařila až na druhé ​vývojové ​desce.
  
 ---- ----
2014/led-bludiste.1421587268.txt.gz · Poslední úprava: 2015/01/18 14:21 autor: Ivan Ryba