Table of Contents

 

USB

Vajalikud teadmised: [HW] Kontrollermoodul, [LIB] USB,
[LIB] Graafiline LCD

Teooria

Praktika

Kodulabori III generatsiooni kontrolleritel on USB ühendus otse mikrokontrolleriga, mis võimaldab otseühendust mikrokontrolleri ja arvuti vahel.

Näiteprogrammi testimiseks on vaja mõnda terminal tüüpi tarkvara, nt HyperTerminal (Windows XP). Linux operatsiooniga arvutitel võib kasutada programmi minicom. Aknas sisestatud tähed kuvatakse LCD ekraanil. Klahvi Enter vajutus muudab rida LCD ekraanil. Sümboli '?' peale tagastatakse ADC lugemi väärtus.

// Kodulabori USB liidese näidisprogramm
// Arvutist või mõnest teisest seadmest saadetud tekst kuvatakse LCD ekraanil
#include <homelab/module/lcd_gfx.h>
#include <homelab/usb/usb.h>
#include <homelab/adc.h>
 
// Põhiprogramm
int main(void)
{
	char c;
	unsigned char row = 1;
	char buf[20];
 
	// LCD ekraani seadistamine ja tervitusteksti kuvamine
	lcd_gfx_init();
	lcd_gfx_write_string("Ootan teadet");
	lcd_gfx_goto_char_xy(0, row);
 
	// Käivita ADC
	adc_init(ADC_REF_AVCC,ADC_PRESCALE_128);
 
	// USB liidese seadistamine
	usb_init();
 
	// Lõputu tsükkel
	while (1)
	{
		// Loe USB liidesest märk ja kontrolli, kas oli märk olemas
		c = usb_read_byte();
		if (c >= 0)
		{
			// Saada märk USB liideseesse tagasi
			usb_send_char(c);
			if (c == '\r') // Kas tegu on reavahetuse märgiga?
			{
				// Rea vahetamine
				if (row < 12) row++;
				else row = 0;
				// Rea tühjendamine eelmisest teatest
				lcd_gfx_clear_line(row);
				// Kursor uue rea algusesse
				lcd_gfx_goto_char_xy(0,row);
			}
			else
			{
				// Märgi otse ekraanile väljastamine
				lcd_gfx_write_char(c);
			}
            // Kui saadeti küsimärk, siis tagasta ka ADC lugem.
            if(c == '?')
            {
                sprintf(buf,"\n\r ADC val: %4d. \n\r",adc_get_average_value(15,5));
                usb_send_string(buf);
            }
		}
		usb_task();
	}
}
et/examples/communication/usb.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