//
// Kodulabori IR kaugusmõõdiku näidisprogramm.
// LCD ekraanil kuvatakse mõõdetud kaugus sentimeetrites.
//
#include <stdio.h>
#include <homelab/adc.h>
#include <homelab/delay.h>
#include <homelab/module/sensors.h>
#include <homelab/module/lcd_alpha.h>
 
//
// Põhiprogramm
//
int main(void)
{
	signed short value, distance;	
	char text[16];
 
	// LCD ekraani seadistamine
	lcd_alpha_init(LCD_ALPHA_DISP_ON);
 
	// LCD ekraani puhastamine
	lcd_alpha_clear();
 
	// Programmi nimi
	lcd_alpha_write_string("Kaugusandur");
 
	// ADC muunduri seadistamine
	adc_init(ADC_REF_AVCC, ADC_PRESCALE_8);
 
	// Lõputu tsükkel
	while (true)
	{
		// Anduri väljundpinge 4-kordselt ümardatud väärtuse lugemine
		value = adc_get_average_value(0, 4);		
 
		// ADC väärtuse kauguseks ümberarvutamine
		distance = ir_distance_calculate_cm(GP2Y0A21YK, value);
 
		// Kas saab kauguse või veateate kuvada ?
		if (distance >= 0)
		{			
			sprintf(text, "%d cm   ", distance);
		}
		else
		{
			sprintf(text, "Viga   ");
		}
 
		// Teksti kuvamine LCD teise rea alguses
		lcd_alpha_goto_xy(0, 1);
		lcd_alpha_write_string(text);
 
		// Paus
		sw_delay_ms(500);
	}
}