This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:software:homelab:library:module:encoder [2012/01/28 11:05] – raivo.sell | et:software:homelab:library:module:encoder [2020/07/20 12:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Kooder ====== | ====== Kooder ====== | ||
| - | <note important> | + | |
| //Seotud mooduliga: [HW] [[et: | //Seotud mooduliga: [HW] [[et: | ||
| - | See teegi osa sisaldab Kodulabori koodrite kasutamise funktsioone. | + | See teegi osa sisaldab Kodulabori koodrite kasutamise funktsioone. Koodrite lugemine on katkestuste põhine, st koodri pulsside lugemisega tegeleb väline katkestus koodri viigul. See tähendab, et globaalsele peavad olema katkestused lubatud (koodri initsialiseerimine lubab ka katkestused). |
| - | ===== Andmetüübid ===== | ||
| + | ===== Funktsioonid ===== | ||
| + | * **//void encoder_init(unsigned char index)//** \\ | ||
| + | Seadistab valitud koodri ja selle sisendviigud. Parameetrid: | ||
| + | * //index// - Koodri number. Väärtus 0 kuni 1. (Kodulabor III puhul 1-4) | ||
| + | |||
| + | * **//void encoder_reset_pulses(unsigned char index)//** \\ | ||
| + | Nullib valitud koodri ja käivitab loendamise. Parameetrid: | ||
| + | * //index// - Koodri number. Väärtus 0 kuni 1. (Kodulabor III puhul 1-4) | ||
| + | * **// | ||
| + | Koodri loendatud pulside arvu küsimine. Parameetrid: | ||
| + | * //index// - Koodri number. Väärtus 0 kuni 1. (Kodulabor III puhul 1-4) | ||
| + | * Tagastab pulsside arvu. | ||
| - | ===== Konstandid ===== | ||
| + | < | ||
| + | |||
| + | ===== Näide ===== | ||
| + | |||
| + | <code c> | ||
| + | // | ||
| + | // Kodulabori koodri kasutamise näide. | ||
| + | // LCD-le kuvatakse koodri klikkide arv.. | ||
| + | // | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | #include < | ||
| + | |||
| + | // Nupu viik | ||
| + | pin button2 = PIN(C, 1); | ||
| + | // | ||
| + | // Põhiprogramm | ||
| + | // | ||
| + | int main(void) | ||
| + | { | ||
| + | unsigned short pulses = 0; | ||
| + | char text[16]; | ||
| - | ===== Funktsioonid ===== | + | // Seab nupu töökorda |
| + | pin_setup_input_with_pullup(button2); | ||
| + | // Seadista kooder | ||
| + | encoder_init(0); | ||
| + | // Nulli ja käivita loendamine. | ||
| + | encoder_reset_pulses(0); | ||
| - | ~~PB~~ | + | // LCD ekraani algseadistamine |
| + | lcd_gfx_init(); | ||
| + | |||
| + | // Ekraani puhastamine | ||
| + | lcd_gfx_clear(); | ||
| + | |||
| + | // Taustavalgustuse tööle lülitamine | ||
| + | lcd_gfx_backlight(true); | ||
| + | |||
| + | // Programmi nime kuvamine | ||
| + | lcd_gfx_goto_char_xy(3, | ||
| + | lcd_gfx_write_string(" | ||
| - | ===== Näide ===== | + | |
| + | // Lõputu tsükkel | ||
| + | while (true) | ||
| + | { | ||
| + | pulses | ||
| + | |||
| - | <code c> | + | // Stringi moodustamine. |
| + | sprintf(text, | ||
| + | |||
| + | |||
| + | lcd_gfx_goto_char_xy(0, | ||
| + | lcd_gfx_write_string(text); | ||
| + | |||
| + | |||
| + | // Nupp S2 alla vajutatud | ||
| + | if(!pin_get_debounced_value(button2)) | ||
| + | { | ||
| + | // Nulli ja käivita loendamine. | ||
| + | encoder_reset_pulses(0); | ||
| + | |||
| + | // Tee piiksatus | ||
| + | buzzer_sound (60, 100); | ||
| + | |||
| + | // Kustuta eelmine number | ||
| + | lcd_gfx_write_string(" | ||
| + | } | ||
| + | |||
| + | // Tarkvaraline paus 10 millisekundit | ||
| + | sw_delay_ms(10); | ||
| + | } | ||
| + | } | ||
| </ | </ | ||