Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
et:software:homelab:library:module:encoder [2012/01/28 11:01] – tekitatud raivo.sellet:software:homelab:library:module:encoder [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Kooder ====== ====== Kooder ======
 +
 +//Seotud mooduliga: [HW] [[et:hardware:homelab:motor]]//
 +
 +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).
 +
 +
 +===== 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)
 +
 +  * **//unsigned short encoder_get_pulses(unsigned char index)//** \\
 +    Koodri loendatud pulside arvu küsimine. Parameetrid:
 +    * //index// - Koodri number. Väärtus 0 kuni 1. (Kodulabor III puhul 1-4)
 +    * Tagastab pulsside arvu.
 +
 +
 +<pagebreak>
 +
 +===== Näide =====
 +
 +<code c>
 +//
 +// 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);
 + }
 +}
 +
 +
 +</code>
  
et/software/homelab/library/module/encoder.1327741278.txt.gz · Last modified: (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0