Table of Contents

Kooder

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).

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.

 

Näide

//
// 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);
	}
}
et/software/homelab/library/module/encoder.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
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