This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
et:examples:storage:sdcard [2015/02/26 11:15] – raivo.sell | et:examples:storage:sdcard [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ~~PB~~ | ||
====== SD kaart ====== | ====== SD kaart ====== | ||
- | //Vajalikud teadmised: [HW] [[et: | + | //Vajalikud teadmised: |
+ | [HW] [[et: | ||
+ | [LIB] [[et: | ||
===== Teooria ===== | ===== Teooria ===== | ||
Line 9: | Line 10: | ||
Secure Digital (SD) on mälukaardi formaat, mille töötas välja SD Card Association (SDA) eesmärgiga kasutada seda kaasaskantavates seadmetes. Kaartiga suhtlemiseks saab kasutada kaarti enda SD nimelist liidest või SPI siini. Viimane on hea võimalus kasutada SD kaarti lihtsamates süsteemides. SD kaardi tööpinge on 3,3 V. | Secure Digital (SD) on mälukaardi formaat, mille töötas välja SD Card Association (SDA) eesmärgiga kasutada seda kaasaskantavates seadmetes. Kaartiga suhtlemiseks saab kasutada kaarti enda SD nimelist liidest või SPI siini. Viimane on hea võimalus kasutada SD kaarti lihtsamates süsteemides. SD kaardi tööpinge on 3,3 V. | ||
- | SD kaart on iseenesest suur hulk mälubitte, mida saab küll muuta, aga muud seadmed ei oska salvestatud andmetega seljuhul midagi peale hakata. Probleemi lahendamiseks kasutatakse failisüsteemi, | + | SD kaart on iseenesest suur hulk mälubitte, mida saab küll muuta, aga muud seadmed ei oska salvestatud andmetega seljuhul midagi peale hakata. Probleemi lahendamiseks kasutatakse failisüsteemi, |
Portatiivsetel mäluseadmetel ja mälukaartidel on laialt levinud FAT (File Allocation Table) failisüsteem, | Portatiivsetel mäluseadmetel ja mälukaartidel on laialt levinud FAT (File Allocation Table) failisüsteem, | ||
- | SD mälukaardid on saadaval | + | SD mälukaardid on saadaval |
* I põlvkond: SD - mahuga kuni 2 GB | * I põlvkond: SD - mahuga kuni 2 GB | ||
* II põlvkond: SDHC - mahuga kuni 32 GB | * II põlvkond: SDHC - mahuga kuni 32 GB | ||
* III põlvkond: SDXC - mahuga kuni 2 TB | * III põlvkond: SDXC - mahuga kuni 2 TB | ||
+ | |||
+ | < | ||
SD kaardid on erineva kiirusega, mille määratlemiseks kasutatakse klasside süsteemi (inglise keeles //Speed Class Rating//, lühend SCR) | SD kaardid on erineva kiirusega, mille määratlemiseks kasutatakse klasside süsteemi (inglise keeles //Speed Class Rating//, lühend SCR) | ||
Line 37: | Line 40: | ||
Järgmine näide demonstreerib tekstifaili lugemist ja kirjutamist. Nupule S1 vajutades initsialiseeritakse kaart ja failisüsteem. Nupu S3 vajutamisel luuakse kettale kaust, kuhu omakorda luuakse fail. Faili kirjutatakse ka sisu. Nupp S2 kuvab tekitatud faili sisu ekraanile. | Järgmine näide demonstreerib tekstifaili lugemist ja kirjutamist. Nupule S1 vajutades initsialiseeritakse kaart ja failisüsteem. Nupu S3 vajutamisel luuakse kettale kaust, kuhu omakorda luuakse fail. Faili kirjutatakse ka sisu. Nupp S2 kuvab tekitatud faili sisu ekraanile. | ||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
<code c> | <code c> | ||
- | // Kodulabori | + | // Kodulabori SD kaardi kasutamise näidisprogramm |
#include < | #include < | ||
#include < | #include < | ||
Line 50: | Line 55: | ||
int main (void) | int main (void) | ||
{ | { | ||
- | int f_err_flag = -1; //Ketta vea lipp | + | // Ketta vea lipp |
- | int d_err_flag = -1; // | + | int f_err_flag = -1; |
+ | // Failisüsteemi | ||
+ | int d_err_flag = -1; | ||
char f_err_buf[16]; | char f_err_buf[16]; | ||
char d_err_buf[16]; | char d_err_buf[16]; | ||
Line 72: | Line 79: | ||
// LCD ekraani seadistamine ja teksti kuvamine | // LCD ekraani seadistamine ja teksti kuvamine | ||
- | lcd_gfx_init() | + | lcd_gfx_init(); |
lcd_gfx_goto_char_xy(3, | lcd_gfx_goto_char_xy(3, | ||
lcd_gfx_write_string(" | lcd_gfx_write_string(" | ||
Line 79: | Line 86: | ||
while (1) | while (1) | ||
{ | { | ||
- | // Loeb nuppude väärtused. | + | // Nuppude väärtuste lugemine |
- | new_value1 = pin_get_debounced_value(button1); | + | new_value1 = pin_get_debounced_value(button1); |
new_value2 = pin_get_debounced_value(button2); | new_value2 = pin_get_debounced_value(button2); | ||
new_value3 = pin_get_debounced_value(button3); | new_value3 = pin_get_debounced_value(button3); | ||
Line 98: | Line 105: | ||
} | } | ||
- | | + | // Nupp S2 vajutatud. Registreeritakse ainult üks vajutus |
if((!new_value2) && (old_value2)) | if((!new_value2) && (old_value2)) | ||
{ | { | ||
- | // Faili " | + | // Faili " |
f_open(& | f_open(& | ||
- | // Failist esimese 14 tähemärgi lugemine. | + | // Failist esimese 14 tähemärgi lugemine |
f_gets (read_buf, | f_gets (read_buf, | ||
f_close(& | f_close(& | ||
- | // Faili esimese 14 tähemärgi ekraanile kirjutamine. | + | // Faili esimese 14 tähemärgi ekraanile kirjutamine |
lcd_gfx_goto_char_xy(0, | lcd_gfx_goto_char_xy(0, | ||
lcd_gfx_write_string(read_buf); | lcd_gfx_write_string(read_buf); | ||
Line 117: | Line 124: | ||
if((!new_value3) && (old_value3)) | if((!new_value3) && (old_value3)) | ||
{ | { | ||
- | // Suvaline muutuja, mis salvestatakse faili. | + | // Suvaline muutuja, mis salvestatakse faili |
variableName = 4; | variableName = 4; | ||
- | // Kettale luuakse kaust " | + | // Kettale luuakse kaust " |
f_mkdir(" | f_mkdir(" | ||
- | // Loodud kausta tekitatakse tekstifail " | + | // Loodud kausta tekitatakse tekstifail " |
f_open(& | f_open(& | ||
- | // Fail avatakse | + | // Fail avatakse |
f_open(& | f_open(& | ||
- | // Faili kirjutamine. | + | // Faili kirjutamine |
f_printf(& | f_printf(& | ||
Line 136: | Line 143: | ||
} | } | ||
- | // Jätab eelmise | + | // Eelmise |
old_value1 = new_value1; | old_value1 = new_value1; | ||
old_value2 = new_value2; | old_value2 = new_value2; | ||
old_value3 = new_value3; | old_value3 = new_value3; | ||
- | // Kui SD-kaart on initsialisseritud | + | // Kui SD-kaart on initsialiseeritud |
- | // roheline LED ja vastupidisel juhul punane LED. | + | // roheline LED ja vastupidisel juhul punane LED |
if((f_err_flag == 0) && (d_err_flag == 0)) | if((f_err_flag == 0) && (d_err_flag == 0)) | ||
{ | { | ||
Line 168: | Line 175: | ||
sw_delay_ms(2); | sw_delay_ms(2); | ||
} | } | ||
- | |||
} | } | ||
</ | </ |