Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2015:enc28j60

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
2015:enc28j60 [2016/01/15 20:37]
Martin Štěpnička [Zdrojový kód]
2015:enc28j60 [2016/01/16 02:41] (aktuální)
Martin Štěpnička [Zdrojový kód]
Řádek 33: Řádek 33:
 Po zapnutí dojde k inicializaci kitu ENC28J60 a program otevře server který čeká na 23 portu (telnet) na spojení. Pokud dojde k připojení klienta, server odešle uvítací zprávu a čeká na příkazy. Možné příkazy jsou následovné:​ Po zapnutí dojde k inicializaci kitu ENC28J60 a program otevře server který čeká na 23 portu (telnet) na spojení. Pokud dojde k připojení klienta, server odešle uvítací zprávu a čeká na příkazy. Možné příkazy jsou následovné:​
  
-  * help - zobrazí nápovědu +  ​* **help** - zobrazí nápovědu 
-  * color RRGGBB - rozsvítí RGB diodu barvou odpovídající HEXa barevnému kódu (jednotlivé intenzity barev jsou 8bitové) +  ​* **color** RRGGBB - rozsvítí RGB diodu barvou odpovídající HEXa barevnému kódu (jednotlivé intenzity barev jsou 8bitové) 
-  * stop - zhasne RGB diodu +  ​* **stop** - zhasne RGB diodu 
-  * exit - ukončí spojení a čeká na dalšího klienta+  ​* **exit** - ukončí spojení a čeká na dalšího klienta
  
-V programu je možné definicí preprocesorové proměnné #DHCP přepínat mezi IP adresou statickou nebo IP adresou získávanou z DHCP serveru.+V programu je možné definicí preprocesorové proměnné ​//#DHCP// přepínat mezi IP adresou statickou nebo IP adresou získávanou z DHCP serveru.
 ===== Demonstrace ===== ===== Demonstrace =====
 Následující video ukazuje funkčnost projektu. Jsou použity dvě náhodně vygenerované barvy pro ověření správného zobrazení: Následující video ukazuje funkčnost projektu. Jsou použity dvě náhodně vygenerované barvy pro ověření správného zobrazení:
Řádek 115: Řádek 115:
         uint8_t size;         uint8_t size;
         char buffer[256];​         char buffer[256];​
-        char color[2]; 
         ​         ​
         if (client = server.available())         if (client = server.available())
Řádek 139: Řádek 138:
                     if (strncmp(buffer,​ "​color",​5) == 0)                     if (strncmp(buffer,​ "​color",​5) == 0)
                     {                                          {                     
-                        uint8_t col;+                        ​char color[2]; ​    
 +                        ​uint8_t col;                                            
                         ​                         ​
-                        sprintf(color,​ "​%c%c",​buffer[6],​buffer[7]); ​ //get HEX char                    ​+                        sprintf(color,​ "​%c%c",​buffer[6],​buffer[7]);​ //get HEX char                    ​
                         sscanf(color,​ "​%x",​ &​col); ​                         sscanf(color,​ "​%x",​ &​col); ​
                         sprintf(color,​ "​%u",​ col); // convert to DEC number                         sprintf(color,​ "​%u",​ col); // convert to DEC number
-                        rled = (float)(~atoi(color) & 0xff)/255; // inverse ​of number, set value to PWM between 0-1+                        rled = (float)(~atoi(color) & 0xff)/255; // inverse number, set value to PWM between 0-1
                         ​                         ​
                         sprintf(color,​ "​%c%c",​buffer[8],​buffer[9]); ​                                             sprintf(color,​ "​%c%c",​buffer[8],​buffer[9]); ​                    
Řádek 155: Řádek 155:
                         sprintf(color,​ "​%u",​ col);                         sprintf(color,​ "​%u",​ col);
                         bled = (float)(~atoi(color) & 0xff)/​255; ​                                             bled = (float)(~atoi(color) & 0xff)/​255; ​                    
- 
                     }                     }
                     //turning off all LEDs                     //turning off all LEDs
Řádek 179: Řádek 178:
                     {                                    {               
                         client.write((uint8_t*)">​ ", 2);                         client.write((uint8_t*)">​ ", 2);
-                    }                                                         +                    }                                                          
-                    ​+
                  }                  }
                  ​client.stop();​                  ​client.stop();​
Řádek 197: Řádek 195:
 } }
 </​code>​ </​code>​
- 
 ===== Závěr ===== ===== Závěr =====
 Zadaní projektu bylo kompletně splněno a vše je funkční tak jak má být. Během řešení jsem neměl s ničím problém a na zadání jsem byl dostatečně připraven jak z předchozích zkušeností tak z předmětu MPOA. \\  Zadaní projektu bylo kompletně splněno a vše je funkční tak jak má být. Během řešení jsem neměl s ničím problém a na zadání jsem byl dostatečně připraven jak z předchozích zkušeností tak z předmětu MPOA. \\ 
 Velikou výhodou bylo nalezení již hotové knihovny k řadiči ENC28J60. Bez toho bych byl nucen strávit několik dní studiem datasheetu k obvodu a následným experimentováním. Použití HEXa barevného kódu pro nastavování barvy mi přijde jako zajímavé řešení, kterým je využit celý rozsah možností RGB LED diody. Velikou výhodou bylo nalezení již hotové knihovny k řadiči ENC28J60. Bez toho bych byl nucen strávit několik dní studiem datasheetu k obvodu a následným experimentováním. Použití HEXa barevného kódu pro nastavování barvy mi přijde jako zajímavé řešení, kterým je využit celý rozsah možností RGB LED diody.
2015/enc28j60.1452886656.txt.gz · Poslední úprava: 2016/01/15 20:37 autor: Martin Štěpnička