SRAM

SRAM je specifickým druhem RAM paměti, kterou nejspíš nemusím představovat. Do SRAM se ukládají hodnoty za běhu programu na základě instrukcí psaných jazykem Wiring. Na rozdíl od paměti EEPROM o data přijdeme ve chvíli, kdy Arduino restartujeme nebo odpojíme.

int cislo = 55; // tímto uložím do SRAM hodnotu 55

Uložení hodnoty do SRAM

Oproti běžnému PC je velikost paměti SRAM v Arduinu velice malá, proto je třeba více optimalizovat její využití. Několik způsobů jak šetřit paměť.

  • Neukládat do SRAM nic co mohu uložit do Flash paměti. Třeba řetězce zobrazované na displeji.
  • Používat co nejmenší datové typy. Na malé číslo stačí byte (8 bitů), nepotřebují celý int (16 bitů).
  • Nepoužívat globální proměnné, ty zabírají místo po celou dobu běhu programu, zatímco lokální proměnné pouze po dobu vykonávání bloku.
  • Občas lze ušetřit místo použitím direktivy #define. To se hodí například při definování pinů.
  • A nejobecnější pravidlo ze všech: nepoužívat proměnné tam kde to není potřeba.

Základní datové typy

TypRozsahVelikost
boolean true nebo false1 byte (8 bitů)
byte0 až 2551 byte (8 bitů)
char-128 až 1271 byte (8 bitů)
int-32 768 až 32 7672 byte (16 bitů)
unsigned int0 až 65 5352 byte (16 bitů)
long-2 147 483 648 až 2 147 483 6474 byte (32 bitů)
unsigned int0 až 4 294 967 2954 byte (32 bitů)
float / doubledesetinné číslo, 6 až 7 číslic4 byte (32 bitů)

Místo booleanu je lepší využít byte a uložit do něj 8 logických hodnot – každý bit je jeden boolean.

Odpovědět..

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *