====== 3. Externí periferie ====== ===== Cíle cvičení ===== - Ověření funkce časovače ''Ticker'' - Komununikace po UART - výpis informace do konzole - ovládání periferie (LED) pomocí jednoduchého příkazu - Získání dat ze senzoru (např. teplota) a odeslání hodnoty do konzole - v pravidelných intervalech pomocí časovače - asynchronně po stisknutí tlačítka ===== Podklady ===== Pro tvorbu vlastního programu můžete využít následující zdrojové kódy: * prázdný {{ :courses:b0b37nsi:tutorials:00-template.zip |template}} * vzorová demo {{ :courses:b0b37nsi:tutorials:99-sensors.zip |aplikace}} Kódy je možné stáhnout i z [[https://gitlab.fel.cvut.cz/viteks/nsi-codes|gitlabu]], který bude průběžně aktualizován. Neotevírejte ve VS Code celý repozitář, ale postupně přidávejte adresáře do workspace (nebo otevřete přimo workspace, který je součástí repozitáře). Při otevření nadřízeného adresáře nelze v prostředí PlatformIO vybrat defaultní projekt. Protože ''printf'' v Mbed OS neumí formátovat čísla datového typu ''float'' a ''double'', je třeba provést alternativní převod, např. následující funkcí: void ftos(float num, char *buff){ if (num<0){ buff[0]='-'; buff[1]='\0'; } else { buff[0]='\0'; } int a = (int) abs(num); char var[11]; sprintf(var, "%d", a); strcat(buff, var); strcat(buff, "."); float var1 = (fabs(num)-(float)a)*100; //2 decimal places int b = (int) var1; if (b < 10){ strcat(buff, "0"); } sprintf(var, "%d", b); strcat(buff, var); }