Seotud mooduliga: [HW] Mootorite moodul
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).
Seadistab valitud koodri ja selle sisendviigud. Parameetrid:
Nullib valitud koodri ja käivitab loendamise. Parameetrid:
Koodri loendatud pulside arvu küsimine. Parameetrid:
// // Kodulabori koodri kasutamise näide. // LCD-le kuvatakse koodri klikkide arv.. // #include <stdio.h> #include <homelab/module/lcd_gfx.h> #include <homelab/delay.h> #include <homelab/module/encoders.h> #include <homelab/module/buzzer.h> #include <homelab/pin.h> // Nupu viik pin button2 = PIN(C, 1); // // Põhiprogramm // int main(void) { unsigned short pulses = 0; char text[16]; // Seab nupu töökorda pin_setup_input_with_pullup(button2); // Seadista kooder encoder_init(0); // Nulli ja käivita loendamine. encoder_reset_pulses(0); // 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, 1); lcd_gfx_write_string("Kooder"); // Lõputu tsükkel while (true) { pulses = encoder_get_pulses(0); // Stringi moodustamine. sprintf(text, "Pulsse: %d",pulses); lcd_gfx_goto_char_xy(0, 3); 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); } }