<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>http://wiki.sps-pi.cz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mazeman</id>
	<title>MediaWiki SPŠ a VOŠ Písek - Příspěvky [cs]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.sps-pi.cz/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mazeman"/>
	<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php/Speci%C3%A1ln%C3%AD:P%C5%99%C3%ADsp%C4%9Bvky/Mazeman"/>
	<updated>2026-05-13T23:22:07Z</updated>
	<subtitle>Příspěvky</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10730</id>
		<title>CodeVisionAVR</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10730"/>
		<updated>2011-05-01T09:52:03Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: /* Ovládání LCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===www===&lt;br /&gt;
&lt;br /&gt;
http://www.hpinfotech.ro/html/cvavr.htm &lt;br /&gt;
&lt;br /&gt;
[http://courses.cit.cornell.edu/ee476/codevisionC/cvavrman.pdf Manuál]&lt;br /&gt;
&lt;br /&gt;
[http://www.atmel.com/dyn/resources/prod_documents/doc2500.pdf Getting Started with the CodeVisionAVR C Compiler]&lt;br /&gt;
&lt;br /&gt;
[http://www.hpinfotech.ro/html/cvavr.htm download]&lt;br /&gt;
&lt;br /&gt;
==Úlohy pro začátky==&lt;br /&gt;
&lt;br /&gt;
===Blikání LED===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
Nejprve si musíme navolit PB0 jako výstupní&lt;br /&gt;
&lt;br /&gt;
[[Soubor:PORTB.PNG]]&lt;br /&gt;
&lt;br /&gt;
Poté začneme programovat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*****************************************************&lt;br /&gt;
Chip    : ATmega8&lt;br /&gt;
Project : Blikání s LED&lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Mates                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -                                                        &lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// Knihovnu delay musíme sami nadefinovat tímto příkazem&lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Nadefinování portu PB0 jako výstupní&lt;br /&gt;
PORTB=0x00;&lt;br /&gt;
DDRB=0x01;&lt;br /&gt;
&lt;br /&gt;
// Nekonečná smyčka while stále opakuje níže napsaný program &lt;br /&gt;
while (1)&lt;br /&gt;
      {&lt;br /&gt;
&lt;br /&gt;
// Na port PB0 se vyšle log. 1 (lze také zapsat v HEX --&amp;gt; 0x01)&lt;br /&gt;
PORTB = 0b00000001;&lt;br /&gt;
// Vyčká půl sekundy&lt;br /&gt;
delay_ms(500);&lt;br /&gt;
// Na port PB0 se vyšle log. 0 (lze také zapsat v HEX --&amp;gt; 0x00)&lt;br /&gt;
PORTB = 0b00000000;&lt;br /&gt;
// Vyčká půl sekundy&lt;br /&gt;
delay_ms(500);&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
===Ovládání LCD===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nejprve si pomocí Codewizard obsaženého v programu CodeVision, povolit podporu LCD.&lt;br /&gt;
&lt;br /&gt;
[[Soubor:LCD.PNG]]&lt;br /&gt;
&lt;br /&gt;
Poté můžeme začít programovat.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
/*****************************************************&lt;br /&gt;
Project : Vypisování textu na LCD &lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Matěj                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -&lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// knihovnu delay musíme nadefinovat sami, tak, že napíšeme tento kód  &lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Tímto příkazem se automaticky nadefinuje LCD pro použití v programu&lt;br /&gt;
#asm&lt;br /&gt;
   .equ __lcd_port=0x18 ;PORTB&lt;br /&gt;
#endasm&lt;br /&gt;
#include &amp;lt;lcd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Inicializace LCD displaye&lt;br /&gt;
lcd_init(16);&lt;br /&gt;
&lt;br /&gt;
      {            &lt;br /&gt;
// Tímto příkazem nastavíme počáteční polohu textu na displayi (x= 0-16, y= 0-1)&lt;br /&gt;
lcd_gotoxy (0,0);&lt;br /&gt;
// Tímto příkazem vyšleme na LCD text&lt;br /&gt;
lcd_putsf (&amp;quot;Ahoj&amp;quot;); &lt;br /&gt;
// delay nám určuje, po jaké době bude smazán text na displayi&lt;br /&gt;
delay_ms(1000);&lt;br /&gt;
// tímto příkazem smažeme všechen text z LCD&lt;br /&gt;
lcd_clear();&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání motoru===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
 /**************************&lt;br /&gt;
 Chip type               : ATmega16&lt;br /&gt;
 Program type            : Application&lt;br /&gt;
 AVR Core Clock frequency: 18,423000 MHz&lt;br /&gt;
 Memory model            : Small&lt;br /&gt;
 External RAM size       : 0&lt;br /&gt;
 Data Stack size         : 256&lt;br /&gt;
 **************************/&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;mega16.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;  &lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #define F_CPU 18423000&lt;br /&gt;
 #include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #define ADC_VREF_TYPE 0x60&lt;br /&gt;
 int hrana;&lt;br /&gt;
 bit por0;&lt;br /&gt;
&lt;br /&gt;
 //Deklarace globálních proměnných&lt;br /&gt;
 unsigned int read_adc(unsigned char kanal)  {&lt;br /&gt;
 ADMUX=kanal;  &lt;br /&gt;
    ADCSRA|=0x40;  &lt;br /&gt;
    while ((ADCSRA &amp;amp; 0x10)==0);  &lt;br /&gt;
    ADCSRA|= 0x10;  &lt;br /&gt;
 return ADCW;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
 // Input/Output Ports initialization&lt;br /&gt;
 // Port A initialization&lt;br /&gt;
 PORTA=0x00;&lt;br /&gt;
 DDRA=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port B initialization&lt;br /&gt;
 PORTB=0x00;&lt;br /&gt;
 DDRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port C initialization&lt;br /&gt;
 PORTC=0x00;&lt;br /&gt;
 DDRC=0xC0;&lt;br /&gt;
&lt;br /&gt;
 // Port D initialization&lt;br /&gt;
 PORTD=0x00;&lt;br /&gt;
 DDRD=0b11111111;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 0 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer 0 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC0 output: Disconnected&lt;br /&gt;
 TCCR0=0x00;&lt;br /&gt;
 TCNT0=0x00;&lt;br /&gt;
 OCR0=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 1 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer1 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFFFF&lt;br /&gt;
 // OC1A output: Discon.&lt;br /&gt;
 // OC1B output: Discon.&lt;br /&gt;
 // Noise Canceler: Off&lt;br /&gt;
 // Input Capture on Falling Edge&lt;br /&gt;
 // Timer1 Overflow Interrupt: Off&lt;br /&gt;
 // Input Capture Interrupt: Off&lt;br /&gt;
 // Compare A Match Interrupt: Off&lt;br /&gt;
 // Compare B Match Interrupt: Off&lt;br /&gt;
 TCCR1A=0x00;&lt;br /&gt;
 TCCR1B=0x00;&lt;br /&gt;
 TCNT1H=0x00;&lt;br /&gt;
 TCNT1L=0x00;&lt;br /&gt;
 ICR1H=0x00;&lt;br /&gt;
 ICR1L=0x00;&lt;br /&gt;
 OCR1AH=0x00;&lt;br /&gt;
 OCR1AL=0x00;&lt;br /&gt;
 OCR1BH=0x00;&lt;br /&gt;
 OCR1BL=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 2 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer2 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC2 output: Disconnected&lt;br /&gt;
 ASSR=0x00;&lt;br /&gt;
 TCCR2=0x00;&lt;br /&gt;
 TCNT2=0x00;&lt;br /&gt;
 OCR2=0x00;&lt;br /&gt;
&lt;br /&gt;
 // External Interrupt(s) initialization&lt;br /&gt;
 // INT0: Off&lt;br /&gt;
 // INT1: Off&lt;br /&gt;
 // INT2: Off&lt;br /&gt;
 MCUCR=0x00;&lt;br /&gt;
 MCUCSR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer(s)/Counter(s) Interrupt(s) initialization&lt;br /&gt;
 TIMSK=0x00;&lt;br /&gt;
&lt;br /&gt;
 // USART initialization&lt;br /&gt;
 // USART disabled&lt;br /&gt;
 UCSRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Analog Comparator initialization&lt;br /&gt;
 // Analog Comparator: Off&lt;br /&gt;
 // Analog Comparator Input Capture by Timer/Counter 1: Off&lt;br /&gt;
 ACSR=0x80;&lt;br /&gt;
 SFIOR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // ADC initialization&lt;br /&gt;
 // ADC Clock frequency: 575,719 kHz&lt;br /&gt;
 // ADC Voltage Reference: AVCC pin&lt;br /&gt;
 // ADC Auto Trigger Source: Free Running&lt;br /&gt;
 // Only the 8 most significant bits of&lt;br /&gt;
 // the AD conversion result are used&lt;br /&gt;
 ADMUX=ADC_VREF_TYPE &amp;amp; 0xff;&lt;br /&gt;
 ADCSRA=0xA5;&lt;br /&gt;
 SFIOR&amp;amp;=0x1F;&lt;br /&gt;
&lt;br /&gt;
 // SPI initialization&lt;br /&gt;
 // SPI disabled&lt;br /&gt;
 SPCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // TWI initialization&lt;br /&gt;
 // TWI disabled&lt;br /&gt;
 TWCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 DDRC=0b00000011;&lt;br /&gt;
 DDRA=0b00000000;&lt;br /&gt;
 PORTC=0b00000011;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000001;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000010;&lt;br /&gt;
 delay_ms(2000);&lt;br /&gt;
 hrana=(read_adc(0)+read_adc(1))/2;&lt;br /&gt;
 PORTC=0b00000000;&lt;br /&gt;
       while(1){&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       }; &lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01011011;&lt;br /&gt;
       }&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){ PORTD=0b00100111;};&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
        if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt; hrana)){&lt;br /&gt;
         if (por0){&lt;br /&gt;
            PORTD=0b01011011;&lt;br /&gt;
            delay_ms(100);&lt;br /&gt;
            PORTD=0b01101011;&lt;br /&gt;
            delay_ms(2000);&lt;br /&gt;
            por0=0;}else{       &lt;br /&gt;
           PORTD=0b00100111;&lt;br /&gt;
            delay_ms(200);&lt;br /&gt;
             por0=1;&lt;br /&gt;
             };&lt;br /&gt;
           };&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01100011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01010001;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100101;&lt;br /&gt;
       };       &lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10729</id>
		<title>CodeVisionAVR</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10729"/>
		<updated>2011-05-01T09:51:35Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: /* Ovládání LCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===www===&lt;br /&gt;
&lt;br /&gt;
http://www.hpinfotech.ro/html/cvavr.htm &lt;br /&gt;
&lt;br /&gt;
[http://courses.cit.cornell.edu/ee476/codevisionC/cvavrman.pdf Manuál]&lt;br /&gt;
&lt;br /&gt;
[http://www.atmel.com/dyn/resources/prod_documents/doc2500.pdf Getting Started with the CodeVisionAVR C Compiler]&lt;br /&gt;
&lt;br /&gt;
[http://www.hpinfotech.ro/html/cvavr.htm download]&lt;br /&gt;
&lt;br /&gt;
==Úlohy pro začátky==&lt;br /&gt;
&lt;br /&gt;
===Blikání LED===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
Nejprve si musíme navolit PB0 jako výstupní&lt;br /&gt;
&lt;br /&gt;
[[Soubor:PORTB.PNG]]&lt;br /&gt;
&lt;br /&gt;
Poté začneme programovat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*****************************************************&lt;br /&gt;
Chip    : ATmega8&lt;br /&gt;
Project : Blikání s LED&lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Mates                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -                                                        &lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// Knihovnu delay musíme sami nadefinovat tímto příkazem&lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Nadefinování portu PB0 jako výstupní&lt;br /&gt;
PORTB=0x00;&lt;br /&gt;
DDRB=0x01;&lt;br /&gt;
&lt;br /&gt;
// Nekonečná smyčka while stále opakuje níže napsaný program &lt;br /&gt;
while (1)&lt;br /&gt;
      {&lt;br /&gt;
&lt;br /&gt;
// Na port PB0 se vyšle log. 1 (lze také zapsat v HEX --&amp;gt; 0x01)&lt;br /&gt;
PORTB = 0b00000001;&lt;br /&gt;
// Vyčká půl sekundy&lt;br /&gt;
delay_ms(500);&lt;br /&gt;
// Na port PB0 se vyšle log. 0 (lze také zapsat v HEX --&amp;gt; 0x00)&lt;br /&gt;
PORTB = 0b00000000;&lt;br /&gt;
// Vyčká půl sekundy&lt;br /&gt;
delay_ms(500);&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání LCD===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nejprve si pomocí Codewizard obsaženého v programu CodeVision, povolit podporu LCD.&lt;br /&gt;
&lt;br /&gt;
[[Soubor:LCD.PNG]]&lt;br /&gt;
&lt;br /&gt;
Poté můžeme začít programovat.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
/*****************************************************&lt;br /&gt;
Project : Vypisování textu na LCD &lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Matěj                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -&lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// knihovnu delay musíme nadefinovat sami, tak, že napíšeme tento kód  &lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Tímto příkazem se automaticky nadefinuje LCD pro použití v programu&lt;br /&gt;
#asm&lt;br /&gt;
   .equ __lcd_port=0x18 ;PORTB&lt;br /&gt;
#endasm&lt;br /&gt;
#include &amp;lt;lcd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Inicializace LCD displaye&lt;br /&gt;
lcd_init(16);&lt;br /&gt;
&lt;br /&gt;
      {            &lt;br /&gt;
// Tímto příkazem nastavíme počáteční polohu textu na displayi (x= 0-16, y= 0-1)&lt;br /&gt;
lcd_gotoxy (0,0);&lt;br /&gt;
// Tímto příkazem vyšleme na LCD text&lt;br /&gt;
lcd_putsf (&amp;quot;Ahoj&amp;quot;); &lt;br /&gt;
// delay nám určuje, po jaké době bude smazán text na displayi&lt;br /&gt;
delay_ms(1000);&lt;br /&gt;
// tímto příkazem smažeme všechen text z LCD&lt;br /&gt;
lcd_clear();&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání motoru===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
 /**************************&lt;br /&gt;
 Chip type               : ATmega16&lt;br /&gt;
 Program type            : Application&lt;br /&gt;
 AVR Core Clock frequency: 18,423000 MHz&lt;br /&gt;
 Memory model            : Small&lt;br /&gt;
 External RAM size       : 0&lt;br /&gt;
 Data Stack size         : 256&lt;br /&gt;
 **************************/&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;mega16.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;  &lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #define F_CPU 18423000&lt;br /&gt;
 #include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #define ADC_VREF_TYPE 0x60&lt;br /&gt;
 int hrana;&lt;br /&gt;
 bit por0;&lt;br /&gt;
&lt;br /&gt;
 //Deklarace globálních proměnných&lt;br /&gt;
 unsigned int read_adc(unsigned char kanal)  {&lt;br /&gt;
 ADMUX=kanal;  &lt;br /&gt;
    ADCSRA|=0x40;  &lt;br /&gt;
    while ((ADCSRA &amp;amp; 0x10)==0);  &lt;br /&gt;
    ADCSRA|= 0x10;  &lt;br /&gt;
 return ADCW;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
 // Input/Output Ports initialization&lt;br /&gt;
 // Port A initialization&lt;br /&gt;
 PORTA=0x00;&lt;br /&gt;
 DDRA=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port B initialization&lt;br /&gt;
 PORTB=0x00;&lt;br /&gt;
 DDRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port C initialization&lt;br /&gt;
 PORTC=0x00;&lt;br /&gt;
 DDRC=0xC0;&lt;br /&gt;
&lt;br /&gt;
 // Port D initialization&lt;br /&gt;
 PORTD=0x00;&lt;br /&gt;
 DDRD=0b11111111;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 0 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer 0 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC0 output: Disconnected&lt;br /&gt;
 TCCR0=0x00;&lt;br /&gt;
 TCNT0=0x00;&lt;br /&gt;
 OCR0=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 1 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer1 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFFFF&lt;br /&gt;
 // OC1A output: Discon.&lt;br /&gt;
 // OC1B output: Discon.&lt;br /&gt;
 // Noise Canceler: Off&lt;br /&gt;
 // Input Capture on Falling Edge&lt;br /&gt;
 // Timer1 Overflow Interrupt: Off&lt;br /&gt;
 // Input Capture Interrupt: Off&lt;br /&gt;
 // Compare A Match Interrupt: Off&lt;br /&gt;
 // Compare B Match Interrupt: Off&lt;br /&gt;
 TCCR1A=0x00;&lt;br /&gt;
 TCCR1B=0x00;&lt;br /&gt;
 TCNT1H=0x00;&lt;br /&gt;
 TCNT1L=0x00;&lt;br /&gt;
 ICR1H=0x00;&lt;br /&gt;
 ICR1L=0x00;&lt;br /&gt;
 OCR1AH=0x00;&lt;br /&gt;
 OCR1AL=0x00;&lt;br /&gt;
 OCR1BH=0x00;&lt;br /&gt;
 OCR1BL=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 2 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer2 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC2 output: Disconnected&lt;br /&gt;
 ASSR=0x00;&lt;br /&gt;
 TCCR2=0x00;&lt;br /&gt;
 TCNT2=0x00;&lt;br /&gt;
 OCR2=0x00;&lt;br /&gt;
&lt;br /&gt;
 // External Interrupt(s) initialization&lt;br /&gt;
 // INT0: Off&lt;br /&gt;
 // INT1: Off&lt;br /&gt;
 // INT2: Off&lt;br /&gt;
 MCUCR=0x00;&lt;br /&gt;
 MCUCSR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer(s)/Counter(s) Interrupt(s) initialization&lt;br /&gt;
 TIMSK=0x00;&lt;br /&gt;
&lt;br /&gt;
 // USART initialization&lt;br /&gt;
 // USART disabled&lt;br /&gt;
 UCSRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Analog Comparator initialization&lt;br /&gt;
 // Analog Comparator: Off&lt;br /&gt;
 // Analog Comparator Input Capture by Timer/Counter 1: Off&lt;br /&gt;
 ACSR=0x80;&lt;br /&gt;
 SFIOR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // ADC initialization&lt;br /&gt;
 // ADC Clock frequency: 575,719 kHz&lt;br /&gt;
 // ADC Voltage Reference: AVCC pin&lt;br /&gt;
 // ADC Auto Trigger Source: Free Running&lt;br /&gt;
 // Only the 8 most significant bits of&lt;br /&gt;
 // the AD conversion result are used&lt;br /&gt;
 ADMUX=ADC_VREF_TYPE &amp;amp; 0xff;&lt;br /&gt;
 ADCSRA=0xA5;&lt;br /&gt;
 SFIOR&amp;amp;=0x1F;&lt;br /&gt;
&lt;br /&gt;
 // SPI initialization&lt;br /&gt;
 // SPI disabled&lt;br /&gt;
 SPCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // TWI initialization&lt;br /&gt;
 // TWI disabled&lt;br /&gt;
 TWCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 DDRC=0b00000011;&lt;br /&gt;
 DDRA=0b00000000;&lt;br /&gt;
 PORTC=0b00000011;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000001;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000010;&lt;br /&gt;
 delay_ms(2000);&lt;br /&gt;
 hrana=(read_adc(0)+read_adc(1))/2;&lt;br /&gt;
 PORTC=0b00000000;&lt;br /&gt;
       while(1){&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       }; &lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01011011;&lt;br /&gt;
       }&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){ PORTD=0b00100111;};&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
        if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt; hrana)){&lt;br /&gt;
         if (por0){&lt;br /&gt;
            PORTD=0b01011011;&lt;br /&gt;
            delay_ms(100);&lt;br /&gt;
            PORTD=0b01101011;&lt;br /&gt;
            delay_ms(2000);&lt;br /&gt;
            por0=0;}else{       &lt;br /&gt;
           PORTD=0b00100111;&lt;br /&gt;
            delay_ms(200);&lt;br /&gt;
             por0=1;&lt;br /&gt;
             };&lt;br /&gt;
           };&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01100011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01010001;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100101;&lt;br /&gt;
       };       &lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10728</id>
		<title>CodeVisionAVR</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10728"/>
		<updated>2011-05-01T09:51:06Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: /* Ovládání LCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===www===&lt;br /&gt;
&lt;br /&gt;
http://www.hpinfotech.ro/html/cvavr.htm &lt;br /&gt;
&lt;br /&gt;
[http://courses.cit.cornell.edu/ee476/codevisionC/cvavrman.pdf Manuál]&lt;br /&gt;
&lt;br /&gt;
[http://www.atmel.com/dyn/resources/prod_documents/doc2500.pdf Getting Started with the CodeVisionAVR C Compiler]&lt;br /&gt;
&lt;br /&gt;
[http://www.hpinfotech.ro/html/cvavr.htm download]&lt;br /&gt;
&lt;br /&gt;
==Úlohy pro začátky==&lt;br /&gt;
&lt;br /&gt;
===Blikání LED===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
Nejprve si musíme navolit PB0 jako výstupní&lt;br /&gt;
&lt;br /&gt;
[[Soubor:PORTB.PNG]]&lt;br /&gt;
&lt;br /&gt;
Poté začneme programovat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*****************************************************&lt;br /&gt;
Chip    : ATmega8&lt;br /&gt;
Project : Blikání s LED&lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Mates                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -                                                        &lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// Knihovnu delay musíme sami nadefinovat tímto příkazem&lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Nadefinování portu PB0 jako výstupní&lt;br /&gt;
PORTB=0x00;&lt;br /&gt;
DDRB=0x01;&lt;br /&gt;
&lt;br /&gt;
// Nekonečná smyčka while stále opakuje níže napsaný program &lt;br /&gt;
while (1)&lt;br /&gt;
      {&lt;br /&gt;
&lt;br /&gt;
// Na port PB0 se vyšle log. 1 (lze také zapsat v HEX --&amp;gt; 0x01)&lt;br /&gt;
PORTB = 0b00000001;&lt;br /&gt;
// Vyčká půl sekundy&lt;br /&gt;
delay_ms(500);&lt;br /&gt;
// Na port PB0 se vyšle log. 0 (lze také zapsat v HEX --&amp;gt; 0x00)&lt;br /&gt;
PORTB = 0b00000000;&lt;br /&gt;
// Vyčká půl sekundy&lt;br /&gt;
delay_ms(500);&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání LCD===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
Nejprve si pomocí Codewizard obsaženého v programu CodeVision, povolit podporu LCD.&lt;br /&gt;
&lt;br /&gt;
[[Soubor:LCD.PNG]]&lt;br /&gt;
&lt;br /&gt;
Poté můžeme začít programovat.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
/*****************************************************&lt;br /&gt;
Project : Vypisování textu na LCD &lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Matěj                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -&lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// knihovnu delay musíme nadefinovat sami, tak, že napíšeme tento kód  &lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Tímto příkazem se automaticky nadefinuje LCD pro použití v programu&lt;br /&gt;
#asm&lt;br /&gt;
   .equ __lcd_port=0x18 ;PORTB&lt;br /&gt;
#endasm&lt;br /&gt;
#include &amp;lt;lcd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Inicializace LCD displaye&lt;br /&gt;
lcd_init(16);&lt;br /&gt;
&lt;br /&gt;
      {            &lt;br /&gt;
// Tímto příkazem nastavíme počáteční polohu textu na displayi (x= 0-16, y= 0-1)&lt;br /&gt;
lcd_gotoxy (0,0);&lt;br /&gt;
// Tímto příkazem vyšleme na LCD text&lt;br /&gt;
lcd_putsf (&amp;quot;Ahoj&amp;quot;); &lt;br /&gt;
// delay nám určuje, po jaké době bude smazán text na displayi&lt;br /&gt;
delay_ms(1000);&lt;br /&gt;
// tímto příkazem smažeme všechen text z LCD&lt;br /&gt;
lcd_clear();&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání motoru===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
 /**************************&lt;br /&gt;
 Chip type               : ATmega16&lt;br /&gt;
 Program type            : Application&lt;br /&gt;
 AVR Core Clock frequency: 18,423000 MHz&lt;br /&gt;
 Memory model            : Small&lt;br /&gt;
 External RAM size       : 0&lt;br /&gt;
 Data Stack size         : 256&lt;br /&gt;
 **************************/&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;mega16.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;  &lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #define F_CPU 18423000&lt;br /&gt;
 #include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #define ADC_VREF_TYPE 0x60&lt;br /&gt;
 int hrana;&lt;br /&gt;
 bit por0;&lt;br /&gt;
&lt;br /&gt;
 //Deklarace globálních proměnných&lt;br /&gt;
 unsigned int read_adc(unsigned char kanal)  {&lt;br /&gt;
 ADMUX=kanal;  &lt;br /&gt;
    ADCSRA|=0x40;  &lt;br /&gt;
    while ((ADCSRA &amp;amp; 0x10)==0);  &lt;br /&gt;
    ADCSRA|= 0x10;  &lt;br /&gt;
 return ADCW;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
 // Input/Output Ports initialization&lt;br /&gt;
 // Port A initialization&lt;br /&gt;
 PORTA=0x00;&lt;br /&gt;
 DDRA=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port B initialization&lt;br /&gt;
 PORTB=0x00;&lt;br /&gt;
 DDRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port C initialization&lt;br /&gt;
 PORTC=0x00;&lt;br /&gt;
 DDRC=0xC0;&lt;br /&gt;
&lt;br /&gt;
 // Port D initialization&lt;br /&gt;
 PORTD=0x00;&lt;br /&gt;
 DDRD=0b11111111;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 0 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer 0 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC0 output: Disconnected&lt;br /&gt;
 TCCR0=0x00;&lt;br /&gt;
 TCNT0=0x00;&lt;br /&gt;
 OCR0=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 1 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer1 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFFFF&lt;br /&gt;
 // OC1A output: Discon.&lt;br /&gt;
 // OC1B output: Discon.&lt;br /&gt;
 // Noise Canceler: Off&lt;br /&gt;
 // Input Capture on Falling Edge&lt;br /&gt;
 // Timer1 Overflow Interrupt: Off&lt;br /&gt;
 // Input Capture Interrupt: Off&lt;br /&gt;
 // Compare A Match Interrupt: Off&lt;br /&gt;
 // Compare B Match Interrupt: Off&lt;br /&gt;
 TCCR1A=0x00;&lt;br /&gt;
 TCCR1B=0x00;&lt;br /&gt;
 TCNT1H=0x00;&lt;br /&gt;
 TCNT1L=0x00;&lt;br /&gt;
 ICR1H=0x00;&lt;br /&gt;
 ICR1L=0x00;&lt;br /&gt;
 OCR1AH=0x00;&lt;br /&gt;
 OCR1AL=0x00;&lt;br /&gt;
 OCR1BH=0x00;&lt;br /&gt;
 OCR1BL=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 2 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer2 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC2 output: Disconnected&lt;br /&gt;
 ASSR=0x00;&lt;br /&gt;
 TCCR2=0x00;&lt;br /&gt;
 TCNT2=0x00;&lt;br /&gt;
 OCR2=0x00;&lt;br /&gt;
&lt;br /&gt;
 // External Interrupt(s) initialization&lt;br /&gt;
 // INT0: Off&lt;br /&gt;
 // INT1: Off&lt;br /&gt;
 // INT2: Off&lt;br /&gt;
 MCUCR=0x00;&lt;br /&gt;
 MCUCSR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer(s)/Counter(s) Interrupt(s) initialization&lt;br /&gt;
 TIMSK=0x00;&lt;br /&gt;
&lt;br /&gt;
 // USART initialization&lt;br /&gt;
 // USART disabled&lt;br /&gt;
 UCSRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Analog Comparator initialization&lt;br /&gt;
 // Analog Comparator: Off&lt;br /&gt;
 // Analog Comparator Input Capture by Timer/Counter 1: Off&lt;br /&gt;
 ACSR=0x80;&lt;br /&gt;
 SFIOR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // ADC initialization&lt;br /&gt;
 // ADC Clock frequency: 575,719 kHz&lt;br /&gt;
 // ADC Voltage Reference: AVCC pin&lt;br /&gt;
 // ADC Auto Trigger Source: Free Running&lt;br /&gt;
 // Only the 8 most significant bits of&lt;br /&gt;
 // the AD conversion result are used&lt;br /&gt;
 ADMUX=ADC_VREF_TYPE &amp;amp; 0xff;&lt;br /&gt;
 ADCSRA=0xA5;&lt;br /&gt;
 SFIOR&amp;amp;=0x1F;&lt;br /&gt;
&lt;br /&gt;
 // SPI initialization&lt;br /&gt;
 // SPI disabled&lt;br /&gt;
 SPCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // TWI initialization&lt;br /&gt;
 // TWI disabled&lt;br /&gt;
 TWCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 DDRC=0b00000011;&lt;br /&gt;
 DDRA=0b00000000;&lt;br /&gt;
 PORTC=0b00000011;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000001;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000010;&lt;br /&gt;
 delay_ms(2000);&lt;br /&gt;
 hrana=(read_adc(0)+read_adc(1))/2;&lt;br /&gt;
 PORTC=0b00000000;&lt;br /&gt;
       while(1){&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       }; &lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01011011;&lt;br /&gt;
       }&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){ PORTD=0b00100111;};&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
        if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt; hrana)){&lt;br /&gt;
         if (por0){&lt;br /&gt;
            PORTD=0b01011011;&lt;br /&gt;
            delay_ms(100);&lt;br /&gt;
            PORTD=0b01101011;&lt;br /&gt;
            delay_ms(2000);&lt;br /&gt;
            por0=0;}else{       &lt;br /&gt;
           PORTD=0b00100111;&lt;br /&gt;
            delay_ms(200);&lt;br /&gt;
             por0=1;&lt;br /&gt;
             };&lt;br /&gt;
           };&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01100011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01010001;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100101;&lt;br /&gt;
       };       &lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10727</id>
		<title>CodeVisionAVR</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10727"/>
		<updated>2011-05-01T09:50:31Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: /* Blikání LED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===www===&lt;br /&gt;
&lt;br /&gt;
http://www.hpinfotech.ro/html/cvavr.htm &lt;br /&gt;
&lt;br /&gt;
[http://courses.cit.cornell.edu/ee476/codevisionC/cvavrman.pdf Manuál]&lt;br /&gt;
&lt;br /&gt;
[http://www.atmel.com/dyn/resources/prod_documents/doc2500.pdf Getting Started with the CodeVisionAVR C Compiler]&lt;br /&gt;
&lt;br /&gt;
[http://www.hpinfotech.ro/html/cvavr.htm download]&lt;br /&gt;
&lt;br /&gt;
==Úlohy pro začátky==&lt;br /&gt;
&lt;br /&gt;
===Blikání LED===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
Nejprve si musíme navolit PB0 jako výstupní&lt;br /&gt;
&lt;br /&gt;
[[Soubor:PORTB.PNG]]&lt;br /&gt;
&lt;br /&gt;
Poté začneme programovat&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*****************************************************&lt;br /&gt;
Chip    : ATmega8&lt;br /&gt;
Project : Blikání s LED&lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Mates                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -                                                        &lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// Knihovnu delay musíme sami nadefinovat tímto příkazem&lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Nadefinování portu PB0 jako výstupní&lt;br /&gt;
PORTB=0x00;&lt;br /&gt;
DDRB=0x01;&lt;br /&gt;
&lt;br /&gt;
// Nekonečná smyčka while stále opakuje níže napsaný program &lt;br /&gt;
while (1)&lt;br /&gt;
      {&lt;br /&gt;
&lt;br /&gt;
// Na port PB0 se vyšle log. 1 (lze také zapsat v HEX --&amp;gt; 0x01)&lt;br /&gt;
PORTB = 0b00000001;&lt;br /&gt;
// Vyčká půl sekundy&lt;br /&gt;
delay_ms(500);&lt;br /&gt;
// Na port PB0 se vyšle log. 0 (lze také zapsat v HEX --&amp;gt; 0x00)&lt;br /&gt;
PORTB = 0b00000000;&lt;br /&gt;
// Vyčká půl sekundy&lt;br /&gt;
delay_ms(500);&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání LCD===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
Nejprve si pomocí Codewizard obsaženého v programu CodeVision, povolit podporu LCD.&lt;br /&gt;
&lt;br /&gt;
[[Soubor:LCD.PNG]]&lt;br /&gt;
&lt;br /&gt;
Poté můžeme začít programovat.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
/*****************************************************&lt;br /&gt;
Project : Vypisování textu na LCD &lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Matěj                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -&lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// knihovnu delay musíme nadefinovat sami, tak, že napíšeme tento kód  &lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Tímto příkazem se automaticky nadefinuje LCD pro použití v programu&lt;br /&gt;
#asm&lt;br /&gt;
   .equ __lcd_port=0x18 ;PORTB&lt;br /&gt;
#endasm&lt;br /&gt;
#include &amp;lt;lcd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Inicializace LCD displaye&lt;br /&gt;
lcd_init(16);&lt;br /&gt;
&lt;br /&gt;
      {            &lt;br /&gt;
// Tímto příkazem nastavíme počáteční polohu textu na displayi (x= 0-16, y= 0-1)&lt;br /&gt;
lcd_gotoxy (0,0);&lt;br /&gt;
// Tímto příkazem vyšleme na LCD text&lt;br /&gt;
lcd_putsf (&amp;quot;Ahoj&amp;quot;); &lt;br /&gt;
// delay nám určuje, po jaké době bude smazán text na displayi&lt;br /&gt;
delay_ms(1000);&lt;br /&gt;
// tímto příkazem smažeme všechen text z LCD&lt;br /&gt;
lcd_clear();&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání motoru===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
 /**************************&lt;br /&gt;
 Chip type               : ATmega16&lt;br /&gt;
 Program type            : Application&lt;br /&gt;
 AVR Core Clock frequency: 18,423000 MHz&lt;br /&gt;
 Memory model            : Small&lt;br /&gt;
 External RAM size       : 0&lt;br /&gt;
 Data Stack size         : 256&lt;br /&gt;
 **************************/&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;mega16.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;  &lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #define F_CPU 18423000&lt;br /&gt;
 #include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #define ADC_VREF_TYPE 0x60&lt;br /&gt;
 int hrana;&lt;br /&gt;
 bit por0;&lt;br /&gt;
&lt;br /&gt;
 //Deklarace globálních proměnných&lt;br /&gt;
 unsigned int read_adc(unsigned char kanal)  {&lt;br /&gt;
 ADMUX=kanal;  &lt;br /&gt;
    ADCSRA|=0x40;  &lt;br /&gt;
    while ((ADCSRA &amp;amp; 0x10)==0);  &lt;br /&gt;
    ADCSRA|= 0x10;  &lt;br /&gt;
 return ADCW;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
 // Input/Output Ports initialization&lt;br /&gt;
 // Port A initialization&lt;br /&gt;
 PORTA=0x00;&lt;br /&gt;
 DDRA=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port B initialization&lt;br /&gt;
 PORTB=0x00;&lt;br /&gt;
 DDRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port C initialization&lt;br /&gt;
 PORTC=0x00;&lt;br /&gt;
 DDRC=0xC0;&lt;br /&gt;
&lt;br /&gt;
 // Port D initialization&lt;br /&gt;
 PORTD=0x00;&lt;br /&gt;
 DDRD=0b11111111;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 0 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer 0 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC0 output: Disconnected&lt;br /&gt;
 TCCR0=0x00;&lt;br /&gt;
 TCNT0=0x00;&lt;br /&gt;
 OCR0=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 1 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer1 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFFFF&lt;br /&gt;
 // OC1A output: Discon.&lt;br /&gt;
 // OC1B output: Discon.&lt;br /&gt;
 // Noise Canceler: Off&lt;br /&gt;
 // Input Capture on Falling Edge&lt;br /&gt;
 // Timer1 Overflow Interrupt: Off&lt;br /&gt;
 // Input Capture Interrupt: Off&lt;br /&gt;
 // Compare A Match Interrupt: Off&lt;br /&gt;
 // Compare B Match Interrupt: Off&lt;br /&gt;
 TCCR1A=0x00;&lt;br /&gt;
 TCCR1B=0x00;&lt;br /&gt;
 TCNT1H=0x00;&lt;br /&gt;
 TCNT1L=0x00;&lt;br /&gt;
 ICR1H=0x00;&lt;br /&gt;
 ICR1L=0x00;&lt;br /&gt;
 OCR1AH=0x00;&lt;br /&gt;
 OCR1AL=0x00;&lt;br /&gt;
 OCR1BH=0x00;&lt;br /&gt;
 OCR1BL=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 2 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer2 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC2 output: Disconnected&lt;br /&gt;
 ASSR=0x00;&lt;br /&gt;
 TCCR2=0x00;&lt;br /&gt;
 TCNT2=0x00;&lt;br /&gt;
 OCR2=0x00;&lt;br /&gt;
&lt;br /&gt;
 // External Interrupt(s) initialization&lt;br /&gt;
 // INT0: Off&lt;br /&gt;
 // INT1: Off&lt;br /&gt;
 // INT2: Off&lt;br /&gt;
 MCUCR=0x00;&lt;br /&gt;
 MCUCSR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer(s)/Counter(s) Interrupt(s) initialization&lt;br /&gt;
 TIMSK=0x00;&lt;br /&gt;
&lt;br /&gt;
 // USART initialization&lt;br /&gt;
 // USART disabled&lt;br /&gt;
 UCSRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Analog Comparator initialization&lt;br /&gt;
 // Analog Comparator: Off&lt;br /&gt;
 // Analog Comparator Input Capture by Timer/Counter 1: Off&lt;br /&gt;
 ACSR=0x80;&lt;br /&gt;
 SFIOR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // ADC initialization&lt;br /&gt;
 // ADC Clock frequency: 575,719 kHz&lt;br /&gt;
 // ADC Voltage Reference: AVCC pin&lt;br /&gt;
 // ADC Auto Trigger Source: Free Running&lt;br /&gt;
 // Only the 8 most significant bits of&lt;br /&gt;
 // the AD conversion result are used&lt;br /&gt;
 ADMUX=ADC_VREF_TYPE &amp;amp; 0xff;&lt;br /&gt;
 ADCSRA=0xA5;&lt;br /&gt;
 SFIOR&amp;amp;=0x1F;&lt;br /&gt;
&lt;br /&gt;
 // SPI initialization&lt;br /&gt;
 // SPI disabled&lt;br /&gt;
 SPCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // TWI initialization&lt;br /&gt;
 // TWI disabled&lt;br /&gt;
 TWCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 DDRC=0b00000011;&lt;br /&gt;
 DDRA=0b00000000;&lt;br /&gt;
 PORTC=0b00000011;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000001;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000010;&lt;br /&gt;
 delay_ms(2000);&lt;br /&gt;
 hrana=(read_adc(0)+read_adc(1))/2;&lt;br /&gt;
 PORTC=0b00000000;&lt;br /&gt;
       while(1){&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       }; &lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01011011;&lt;br /&gt;
       }&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){ PORTD=0b00100111;};&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
        if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt; hrana)){&lt;br /&gt;
         if (por0){&lt;br /&gt;
            PORTD=0b01011011;&lt;br /&gt;
            delay_ms(100);&lt;br /&gt;
            PORTD=0b01101011;&lt;br /&gt;
            delay_ms(2000);&lt;br /&gt;
            por0=0;}else{       &lt;br /&gt;
           PORTD=0b00100111;&lt;br /&gt;
            delay_ms(200);&lt;br /&gt;
             por0=1;&lt;br /&gt;
             };&lt;br /&gt;
           };&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01100011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01010001;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100101;&lt;br /&gt;
       };       &lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10726</id>
		<title>CodeVisionAVR</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10726"/>
		<updated>2011-05-01T09:48:59Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: /* Blikání LED */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===www===&lt;br /&gt;
&lt;br /&gt;
http://www.hpinfotech.ro/html/cvavr.htm &lt;br /&gt;
&lt;br /&gt;
[http://courses.cit.cornell.edu/ee476/codevisionC/cvavrman.pdf Manuál]&lt;br /&gt;
&lt;br /&gt;
[http://www.atmel.com/dyn/resources/prod_documents/doc2500.pdf Getting Started with the CodeVisionAVR C Compiler]&lt;br /&gt;
&lt;br /&gt;
[http://www.hpinfotech.ro/html/cvavr.htm download]&lt;br /&gt;
&lt;br /&gt;
==Úlohy pro začátky==&lt;br /&gt;
&lt;br /&gt;
===Blikání LED===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
Nejprve si musíme navolit PB0 jako výstupní&lt;br /&gt;
[[Soubor:PORTB.PNG]]&lt;br /&gt;
Poté můžeme začít programovat&lt;br /&gt;
&amp;lt;source lang&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
/*****************************************************&lt;br /&gt;
Chip    : ATmega8&lt;br /&gt;
Project : Blikání s LED&lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Mates                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -                                                        &lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// Knihovnu delay musíme sami nadefinovat tímto příkazem&lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Nadefinování portu PB0 jako výstupní&lt;br /&gt;
PORTB=0x00;&lt;br /&gt;
DDRB=0x01;&lt;br /&gt;
&lt;br /&gt;
// Nekonečná smyčka while stále opakuje níže napsaný program &lt;br /&gt;
while (1)&lt;br /&gt;
      {&lt;br /&gt;
&lt;br /&gt;
// Na port PB0 se vyšle log. 1 (lze také zapsat v HEX --&amp;gt; 0x01)&lt;br /&gt;
PORTB = 0b00000001;&lt;br /&gt;
// Vyčká půl sekundy&lt;br /&gt;
delay_ms(500);&lt;br /&gt;
// Na port PB0 se vyšle log. 0 (lze také zapsat v HEX --&amp;gt; 0x00)&lt;br /&gt;
PORTB = 0b00000000;&lt;br /&gt;
// Vyčká půl sekundy&lt;br /&gt;
delay_ms(500);&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání LCD===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
Nejprve si pomocí Codewizard obsaženého v programu CodeVision, povolit podporu LCD.&lt;br /&gt;
&lt;br /&gt;
[[Soubor:LCD.PNG]]&lt;br /&gt;
&lt;br /&gt;
Poté můžeme začít programovat.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
/*****************************************************&lt;br /&gt;
Project : Vypisování textu na LCD &lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Matěj                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -&lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// knihovnu delay musíme nadefinovat sami, tak, že napíšeme tento kód  &lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Tímto příkazem se automaticky nadefinuje LCD pro použití v programu&lt;br /&gt;
#asm&lt;br /&gt;
   .equ __lcd_port=0x18 ;PORTB&lt;br /&gt;
#endasm&lt;br /&gt;
#include &amp;lt;lcd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Inicializace LCD displaye&lt;br /&gt;
lcd_init(16);&lt;br /&gt;
&lt;br /&gt;
      {            &lt;br /&gt;
// Tímto příkazem nastavíme počáteční polohu textu na displayi (x= 0-16, y= 0-1)&lt;br /&gt;
lcd_gotoxy (0,0);&lt;br /&gt;
// Tímto příkazem vyšleme na LCD text&lt;br /&gt;
lcd_putsf (&amp;quot;Ahoj&amp;quot;); &lt;br /&gt;
// delay nám určuje, po jaké době bude smazán text na displayi&lt;br /&gt;
delay_ms(1000);&lt;br /&gt;
// tímto příkazem smažeme všechen text z LCD&lt;br /&gt;
lcd_clear();&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání motoru===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
 /**************************&lt;br /&gt;
 Chip type               : ATmega16&lt;br /&gt;
 Program type            : Application&lt;br /&gt;
 AVR Core Clock frequency: 18,423000 MHz&lt;br /&gt;
 Memory model            : Small&lt;br /&gt;
 External RAM size       : 0&lt;br /&gt;
 Data Stack size         : 256&lt;br /&gt;
 **************************/&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;mega16.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;  &lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #define F_CPU 18423000&lt;br /&gt;
 #include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #define ADC_VREF_TYPE 0x60&lt;br /&gt;
 int hrana;&lt;br /&gt;
 bit por0;&lt;br /&gt;
&lt;br /&gt;
 //Deklarace globálních proměnných&lt;br /&gt;
 unsigned int read_adc(unsigned char kanal)  {&lt;br /&gt;
 ADMUX=kanal;  &lt;br /&gt;
    ADCSRA|=0x40;  &lt;br /&gt;
    while ((ADCSRA &amp;amp; 0x10)==0);  &lt;br /&gt;
    ADCSRA|= 0x10;  &lt;br /&gt;
 return ADCW;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
 // Input/Output Ports initialization&lt;br /&gt;
 // Port A initialization&lt;br /&gt;
 PORTA=0x00;&lt;br /&gt;
 DDRA=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port B initialization&lt;br /&gt;
 PORTB=0x00;&lt;br /&gt;
 DDRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port C initialization&lt;br /&gt;
 PORTC=0x00;&lt;br /&gt;
 DDRC=0xC0;&lt;br /&gt;
&lt;br /&gt;
 // Port D initialization&lt;br /&gt;
 PORTD=0x00;&lt;br /&gt;
 DDRD=0b11111111;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 0 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer 0 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC0 output: Disconnected&lt;br /&gt;
 TCCR0=0x00;&lt;br /&gt;
 TCNT0=0x00;&lt;br /&gt;
 OCR0=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 1 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer1 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFFFF&lt;br /&gt;
 // OC1A output: Discon.&lt;br /&gt;
 // OC1B output: Discon.&lt;br /&gt;
 // Noise Canceler: Off&lt;br /&gt;
 // Input Capture on Falling Edge&lt;br /&gt;
 // Timer1 Overflow Interrupt: Off&lt;br /&gt;
 // Input Capture Interrupt: Off&lt;br /&gt;
 // Compare A Match Interrupt: Off&lt;br /&gt;
 // Compare B Match Interrupt: Off&lt;br /&gt;
 TCCR1A=0x00;&lt;br /&gt;
 TCCR1B=0x00;&lt;br /&gt;
 TCNT1H=0x00;&lt;br /&gt;
 TCNT1L=0x00;&lt;br /&gt;
 ICR1H=0x00;&lt;br /&gt;
 ICR1L=0x00;&lt;br /&gt;
 OCR1AH=0x00;&lt;br /&gt;
 OCR1AL=0x00;&lt;br /&gt;
 OCR1BH=0x00;&lt;br /&gt;
 OCR1BL=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 2 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer2 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC2 output: Disconnected&lt;br /&gt;
 ASSR=0x00;&lt;br /&gt;
 TCCR2=0x00;&lt;br /&gt;
 TCNT2=0x00;&lt;br /&gt;
 OCR2=0x00;&lt;br /&gt;
&lt;br /&gt;
 // External Interrupt(s) initialization&lt;br /&gt;
 // INT0: Off&lt;br /&gt;
 // INT1: Off&lt;br /&gt;
 // INT2: Off&lt;br /&gt;
 MCUCR=0x00;&lt;br /&gt;
 MCUCSR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer(s)/Counter(s) Interrupt(s) initialization&lt;br /&gt;
 TIMSK=0x00;&lt;br /&gt;
&lt;br /&gt;
 // USART initialization&lt;br /&gt;
 // USART disabled&lt;br /&gt;
 UCSRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Analog Comparator initialization&lt;br /&gt;
 // Analog Comparator: Off&lt;br /&gt;
 // Analog Comparator Input Capture by Timer/Counter 1: Off&lt;br /&gt;
 ACSR=0x80;&lt;br /&gt;
 SFIOR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // ADC initialization&lt;br /&gt;
 // ADC Clock frequency: 575,719 kHz&lt;br /&gt;
 // ADC Voltage Reference: AVCC pin&lt;br /&gt;
 // ADC Auto Trigger Source: Free Running&lt;br /&gt;
 // Only the 8 most significant bits of&lt;br /&gt;
 // the AD conversion result are used&lt;br /&gt;
 ADMUX=ADC_VREF_TYPE &amp;amp; 0xff;&lt;br /&gt;
 ADCSRA=0xA5;&lt;br /&gt;
 SFIOR&amp;amp;=0x1F;&lt;br /&gt;
&lt;br /&gt;
 // SPI initialization&lt;br /&gt;
 // SPI disabled&lt;br /&gt;
 SPCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // TWI initialization&lt;br /&gt;
 // TWI disabled&lt;br /&gt;
 TWCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 DDRC=0b00000011;&lt;br /&gt;
 DDRA=0b00000000;&lt;br /&gt;
 PORTC=0b00000011;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000001;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000010;&lt;br /&gt;
 delay_ms(2000);&lt;br /&gt;
 hrana=(read_adc(0)+read_adc(1))/2;&lt;br /&gt;
 PORTC=0b00000000;&lt;br /&gt;
       while(1){&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       }; &lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01011011;&lt;br /&gt;
       }&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){ PORTD=0b00100111;};&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
        if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt; hrana)){&lt;br /&gt;
         if (por0){&lt;br /&gt;
            PORTD=0b01011011;&lt;br /&gt;
            delay_ms(100);&lt;br /&gt;
            PORTD=0b01101011;&lt;br /&gt;
            delay_ms(2000);&lt;br /&gt;
            por0=0;}else{       &lt;br /&gt;
           PORTD=0b00100111;&lt;br /&gt;
            delay_ms(200);&lt;br /&gt;
             por0=1;&lt;br /&gt;
             };&lt;br /&gt;
           };&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01100011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01010001;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100101;&lt;br /&gt;
       };       &lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Soubor:PORTB.PNG&amp;diff=10725</id>
		<title>Soubor:PORTB.PNG</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Soubor:PORTB.PNG&amp;diff=10725"/>
		<updated>2011-05-01T09:47:24Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10724</id>
		<title>CodeVisionAVR</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10724"/>
		<updated>2011-05-01T09:37:51Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: /* Ovládání LCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===www===&lt;br /&gt;
&lt;br /&gt;
http://www.hpinfotech.ro/html/cvavr.htm &lt;br /&gt;
&lt;br /&gt;
[http://courses.cit.cornell.edu/ee476/codevisionC/cvavrman.pdf Manuál]&lt;br /&gt;
&lt;br /&gt;
[http://www.atmel.com/dyn/resources/prod_documents/doc2500.pdf Getting Started with the CodeVisionAVR C Compiler]&lt;br /&gt;
&lt;br /&gt;
[http://www.hpinfotech.ro/html/cvavr.htm download]&lt;br /&gt;
&lt;br /&gt;
==Úlohy pro začátky==&lt;br /&gt;
&lt;br /&gt;
===Blikání LED===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ovládání LCD===&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
Nejprve si pomocí Codewizard obsaženého v programu CodeVision, povolit podporu LCD.&lt;br /&gt;
&lt;br /&gt;
[[Soubor:LCD.PNG]]&lt;br /&gt;
&lt;br /&gt;
Poté můžeme začít programovat.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
/*****************************************************&lt;br /&gt;
Project : Vypisování textu na LCD &lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Matěj                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -&lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt;&lt;br /&gt;
// knihovnu delay musíme nadefinovat sami, tak, že napíšeme tento kód  &lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Tímto příkazem se automaticky nadefinuje LCD pro použití v programu&lt;br /&gt;
#asm&lt;br /&gt;
   .equ __lcd_port=0x18 ;PORTB&lt;br /&gt;
#endasm&lt;br /&gt;
#include &amp;lt;lcd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Inicializace LCD displaye&lt;br /&gt;
lcd_init(16);&lt;br /&gt;
&lt;br /&gt;
      {            &lt;br /&gt;
// Tímto příkazem nastavíme počáteční polohu textu na displayi (x= 0-16, y= 0-1)&lt;br /&gt;
lcd_gotoxy (0,0);&lt;br /&gt;
// Tímto příkazem vyšleme na LCD text&lt;br /&gt;
lcd_putsf (&amp;quot;Ahoj&amp;quot;); &lt;br /&gt;
// delay nám určuje, po jaké době bude smazán text na displayi&lt;br /&gt;
delay_ms(1000);&lt;br /&gt;
// tímto příkazem smažeme všechen text z LCD&lt;br /&gt;
lcd_clear();&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání motoru===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
 /**************************&lt;br /&gt;
 Chip type               : ATmega16&lt;br /&gt;
 Program type            : Application&lt;br /&gt;
 AVR Core Clock frequency: 18,423000 MHz&lt;br /&gt;
 Memory model            : Small&lt;br /&gt;
 External RAM size       : 0&lt;br /&gt;
 Data Stack size         : 256&lt;br /&gt;
 **************************/&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;mega16.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;  &lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #define F_CPU 18423000&lt;br /&gt;
 #include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #define ADC_VREF_TYPE 0x60&lt;br /&gt;
 int hrana;&lt;br /&gt;
 bit por0;&lt;br /&gt;
&lt;br /&gt;
 //Deklarace globálních proměnných&lt;br /&gt;
 unsigned int read_adc(unsigned char kanal)  {&lt;br /&gt;
 ADMUX=kanal;  &lt;br /&gt;
    ADCSRA|=0x40;  &lt;br /&gt;
    while ((ADCSRA &amp;amp; 0x10)==0);  &lt;br /&gt;
    ADCSRA|= 0x10;  &lt;br /&gt;
 return ADCW;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
 // Input/Output Ports initialization&lt;br /&gt;
 // Port A initialization&lt;br /&gt;
 PORTA=0x00;&lt;br /&gt;
 DDRA=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port B initialization&lt;br /&gt;
 PORTB=0x00;&lt;br /&gt;
 DDRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port C initialization&lt;br /&gt;
 PORTC=0x00;&lt;br /&gt;
 DDRC=0xC0;&lt;br /&gt;
&lt;br /&gt;
 // Port D initialization&lt;br /&gt;
 PORTD=0x00;&lt;br /&gt;
 DDRD=0b11111111;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 0 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer 0 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC0 output: Disconnected&lt;br /&gt;
 TCCR0=0x00;&lt;br /&gt;
 TCNT0=0x00;&lt;br /&gt;
 OCR0=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 1 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer1 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFFFF&lt;br /&gt;
 // OC1A output: Discon.&lt;br /&gt;
 // OC1B output: Discon.&lt;br /&gt;
 // Noise Canceler: Off&lt;br /&gt;
 // Input Capture on Falling Edge&lt;br /&gt;
 // Timer1 Overflow Interrupt: Off&lt;br /&gt;
 // Input Capture Interrupt: Off&lt;br /&gt;
 // Compare A Match Interrupt: Off&lt;br /&gt;
 // Compare B Match Interrupt: Off&lt;br /&gt;
 TCCR1A=0x00;&lt;br /&gt;
 TCCR1B=0x00;&lt;br /&gt;
 TCNT1H=0x00;&lt;br /&gt;
 TCNT1L=0x00;&lt;br /&gt;
 ICR1H=0x00;&lt;br /&gt;
 ICR1L=0x00;&lt;br /&gt;
 OCR1AH=0x00;&lt;br /&gt;
 OCR1AL=0x00;&lt;br /&gt;
 OCR1BH=0x00;&lt;br /&gt;
 OCR1BL=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 2 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer2 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC2 output: Disconnected&lt;br /&gt;
 ASSR=0x00;&lt;br /&gt;
 TCCR2=0x00;&lt;br /&gt;
 TCNT2=0x00;&lt;br /&gt;
 OCR2=0x00;&lt;br /&gt;
&lt;br /&gt;
 // External Interrupt(s) initialization&lt;br /&gt;
 // INT0: Off&lt;br /&gt;
 // INT1: Off&lt;br /&gt;
 // INT2: Off&lt;br /&gt;
 MCUCR=0x00;&lt;br /&gt;
 MCUCSR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer(s)/Counter(s) Interrupt(s) initialization&lt;br /&gt;
 TIMSK=0x00;&lt;br /&gt;
&lt;br /&gt;
 // USART initialization&lt;br /&gt;
 // USART disabled&lt;br /&gt;
 UCSRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Analog Comparator initialization&lt;br /&gt;
 // Analog Comparator: Off&lt;br /&gt;
 // Analog Comparator Input Capture by Timer/Counter 1: Off&lt;br /&gt;
 ACSR=0x80;&lt;br /&gt;
 SFIOR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // ADC initialization&lt;br /&gt;
 // ADC Clock frequency: 575,719 kHz&lt;br /&gt;
 // ADC Voltage Reference: AVCC pin&lt;br /&gt;
 // ADC Auto Trigger Source: Free Running&lt;br /&gt;
 // Only the 8 most significant bits of&lt;br /&gt;
 // the AD conversion result are used&lt;br /&gt;
 ADMUX=ADC_VREF_TYPE &amp;amp; 0xff;&lt;br /&gt;
 ADCSRA=0xA5;&lt;br /&gt;
 SFIOR&amp;amp;=0x1F;&lt;br /&gt;
&lt;br /&gt;
 // SPI initialization&lt;br /&gt;
 // SPI disabled&lt;br /&gt;
 SPCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // TWI initialization&lt;br /&gt;
 // TWI disabled&lt;br /&gt;
 TWCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 DDRC=0b00000011;&lt;br /&gt;
 DDRA=0b00000000;&lt;br /&gt;
 PORTC=0b00000011;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000001;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000010;&lt;br /&gt;
 delay_ms(2000);&lt;br /&gt;
 hrana=(read_adc(0)+read_adc(1))/2;&lt;br /&gt;
 PORTC=0b00000000;&lt;br /&gt;
       while(1){&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       }; &lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01011011;&lt;br /&gt;
       }&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){ PORTD=0b00100111;};&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
        if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt; hrana)){&lt;br /&gt;
         if (por0){&lt;br /&gt;
            PORTD=0b01011011;&lt;br /&gt;
            delay_ms(100);&lt;br /&gt;
            PORTD=0b01101011;&lt;br /&gt;
            delay_ms(2000);&lt;br /&gt;
            por0=0;}else{       &lt;br /&gt;
           PORTD=0b00100111;&lt;br /&gt;
            delay_ms(200);&lt;br /&gt;
             por0=1;&lt;br /&gt;
             };&lt;br /&gt;
           };&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01100011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01010001;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100101;&lt;br /&gt;
       };       &lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=Soubor:LCD.PNG&amp;diff=10723</id>
		<title>Soubor:LCD.PNG</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=Soubor:LCD.PNG&amp;diff=10723"/>
		<updated>2011-05-01T09:34:32Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10721</id>
		<title>CodeVisionAVR</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10721"/>
		<updated>2011-05-01T09:32:40Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: /* Ovládání LCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===www===&lt;br /&gt;
&lt;br /&gt;
http://www.hpinfotech.ro/html/cvavr.htm &lt;br /&gt;
&lt;br /&gt;
[http://courses.cit.cornell.edu/ee476/codevisionC/cvavrman.pdf Manuál]&lt;br /&gt;
&lt;br /&gt;
[http://www.atmel.com/dyn/resources/prod_documents/doc2500.pdf Getting Started with the CodeVisionAVR C Compiler]&lt;br /&gt;
&lt;br /&gt;
[http://www.hpinfotech.ro/html/cvavr.htm download]&lt;br /&gt;
&lt;br /&gt;
==Úlohy pro začátky==&lt;br /&gt;
&lt;br /&gt;
===Blikání LED===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ovládání LCD===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
/*****************************************************&lt;br /&gt;
Project : Vypisování textu na LCD &lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Matěj                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -&lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt; &lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Tímto příkazem se automaticky nadefinuje LCD pro použití v programu&lt;br /&gt;
#asm&lt;br /&gt;
   .equ __lcd_port=0x18 ;PORTB&lt;br /&gt;
#endasm&lt;br /&gt;
#include &amp;lt;lcd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Inicializace LCD displaye&lt;br /&gt;
lcd_init(16);&lt;br /&gt;
&lt;br /&gt;
      {            &lt;br /&gt;
// Tímto příkazem nastavíme počáteční polohu textu na displayi (x= 0-16, y= 0-1)&lt;br /&gt;
lcd_gotoxy (0,0);&lt;br /&gt;
// Tímto příkazem vyšleme na LCD text&lt;br /&gt;
lcd_putsf (&amp;quot;Ahoj&amp;quot;); &lt;br /&gt;
// delay nám určuje, po jaké době bude smazán text na displayi&lt;br /&gt;
delay_ms(1000);&lt;br /&gt;
// tímto příkazem smažeme všechen text z LCD&lt;br /&gt;
lcd_clear();&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ovládání motoru===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
 /**************************&lt;br /&gt;
 Chip type               : ATmega16&lt;br /&gt;
 Program type            : Application&lt;br /&gt;
 AVR Core Clock frequency: 18,423000 MHz&lt;br /&gt;
 Memory model            : Small&lt;br /&gt;
 External RAM size       : 0&lt;br /&gt;
 Data Stack size         : 256&lt;br /&gt;
 **************************/&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;mega16.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;  &lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #define F_CPU 18423000&lt;br /&gt;
 #include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #define ADC_VREF_TYPE 0x60&lt;br /&gt;
 int hrana;&lt;br /&gt;
 bit por0;&lt;br /&gt;
&lt;br /&gt;
 //Deklarace globálních proměnných&lt;br /&gt;
 unsigned int read_adc(unsigned char kanal)  {&lt;br /&gt;
 ADMUX=kanal;  &lt;br /&gt;
    ADCSRA|=0x40;  &lt;br /&gt;
    while ((ADCSRA &amp;amp; 0x10)==0);  &lt;br /&gt;
    ADCSRA|= 0x10;  &lt;br /&gt;
 return ADCW;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
 // Input/Output Ports initialization&lt;br /&gt;
 // Port A initialization&lt;br /&gt;
 PORTA=0x00;&lt;br /&gt;
 DDRA=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port B initialization&lt;br /&gt;
 PORTB=0x00;&lt;br /&gt;
 DDRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port C initialization&lt;br /&gt;
 PORTC=0x00;&lt;br /&gt;
 DDRC=0xC0;&lt;br /&gt;
&lt;br /&gt;
 // Port D initialization&lt;br /&gt;
 PORTD=0x00;&lt;br /&gt;
 DDRD=0b11111111;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 0 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer 0 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC0 output: Disconnected&lt;br /&gt;
 TCCR0=0x00;&lt;br /&gt;
 TCNT0=0x00;&lt;br /&gt;
 OCR0=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 1 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer1 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFFFF&lt;br /&gt;
 // OC1A output: Discon.&lt;br /&gt;
 // OC1B output: Discon.&lt;br /&gt;
 // Noise Canceler: Off&lt;br /&gt;
 // Input Capture on Falling Edge&lt;br /&gt;
 // Timer1 Overflow Interrupt: Off&lt;br /&gt;
 // Input Capture Interrupt: Off&lt;br /&gt;
 // Compare A Match Interrupt: Off&lt;br /&gt;
 // Compare B Match Interrupt: Off&lt;br /&gt;
 TCCR1A=0x00;&lt;br /&gt;
 TCCR1B=0x00;&lt;br /&gt;
 TCNT1H=0x00;&lt;br /&gt;
 TCNT1L=0x00;&lt;br /&gt;
 ICR1H=0x00;&lt;br /&gt;
 ICR1L=0x00;&lt;br /&gt;
 OCR1AH=0x00;&lt;br /&gt;
 OCR1AL=0x00;&lt;br /&gt;
 OCR1BH=0x00;&lt;br /&gt;
 OCR1BL=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 2 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer2 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC2 output: Disconnected&lt;br /&gt;
 ASSR=0x00;&lt;br /&gt;
 TCCR2=0x00;&lt;br /&gt;
 TCNT2=0x00;&lt;br /&gt;
 OCR2=0x00;&lt;br /&gt;
&lt;br /&gt;
 // External Interrupt(s) initialization&lt;br /&gt;
 // INT0: Off&lt;br /&gt;
 // INT1: Off&lt;br /&gt;
 // INT2: Off&lt;br /&gt;
 MCUCR=0x00;&lt;br /&gt;
 MCUCSR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer(s)/Counter(s) Interrupt(s) initialization&lt;br /&gt;
 TIMSK=0x00;&lt;br /&gt;
&lt;br /&gt;
 // USART initialization&lt;br /&gt;
 // USART disabled&lt;br /&gt;
 UCSRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Analog Comparator initialization&lt;br /&gt;
 // Analog Comparator: Off&lt;br /&gt;
 // Analog Comparator Input Capture by Timer/Counter 1: Off&lt;br /&gt;
 ACSR=0x80;&lt;br /&gt;
 SFIOR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // ADC initialization&lt;br /&gt;
 // ADC Clock frequency: 575,719 kHz&lt;br /&gt;
 // ADC Voltage Reference: AVCC pin&lt;br /&gt;
 // ADC Auto Trigger Source: Free Running&lt;br /&gt;
 // Only the 8 most significant bits of&lt;br /&gt;
 // the AD conversion result are used&lt;br /&gt;
 ADMUX=ADC_VREF_TYPE &amp;amp; 0xff;&lt;br /&gt;
 ADCSRA=0xA5;&lt;br /&gt;
 SFIOR&amp;amp;=0x1F;&lt;br /&gt;
&lt;br /&gt;
 // SPI initialization&lt;br /&gt;
 // SPI disabled&lt;br /&gt;
 SPCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // TWI initialization&lt;br /&gt;
 // TWI disabled&lt;br /&gt;
 TWCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 DDRC=0b00000011;&lt;br /&gt;
 DDRA=0b00000000;&lt;br /&gt;
 PORTC=0b00000011;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000001;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000010;&lt;br /&gt;
 delay_ms(2000);&lt;br /&gt;
 hrana=(read_adc(0)+read_adc(1))/2;&lt;br /&gt;
 PORTC=0b00000000;&lt;br /&gt;
       while(1){&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       }; &lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01011011;&lt;br /&gt;
       }&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){ PORTD=0b00100111;};&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
        if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt; hrana)){&lt;br /&gt;
         if (por0){&lt;br /&gt;
            PORTD=0b01011011;&lt;br /&gt;
            delay_ms(100);&lt;br /&gt;
            PORTD=0b01101011;&lt;br /&gt;
            delay_ms(2000);&lt;br /&gt;
            por0=0;}else{       &lt;br /&gt;
           PORTD=0b00100111;&lt;br /&gt;
            delay_ms(200);&lt;br /&gt;
             por0=1;&lt;br /&gt;
             };&lt;br /&gt;
           };&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01100011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01010001;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100101;&lt;br /&gt;
       };       &lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10720</id>
		<title>CodeVisionAVR</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10720"/>
		<updated>2011-05-01T09:31:41Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: /* Ovládání LCD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===www===&lt;br /&gt;
&lt;br /&gt;
http://www.hpinfotech.ro/html/cvavr.htm &lt;br /&gt;
&lt;br /&gt;
[http://courses.cit.cornell.edu/ee476/codevisionC/cvavrman.pdf Manuál]&lt;br /&gt;
&lt;br /&gt;
[http://www.atmel.com/dyn/resources/prod_documents/doc2500.pdf Getting Started with the CodeVisionAVR C Compiler]&lt;br /&gt;
&lt;br /&gt;
[http://www.hpinfotech.ro/html/cvavr.htm download]&lt;br /&gt;
&lt;br /&gt;
==Úlohy pro začátky==&lt;br /&gt;
&lt;br /&gt;
===Blikání LED===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ovládání LCD===&lt;br /&gt;
&lt;br /&gt;
/*****************************************************&lt;br /&gt;
Project : Vypisování textu na LCD &lt;br /&gt;
Version : -&lt;br /&gt;
Date    : 1.5.2011&lt;br /&gt;
Author  : Matěj                           &lt;br /&gt;
Company : Zeman                           &lt;br /&gt;
Comments: -&lt;br /&gt;
*****************************************************/&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;mega8.h&amp;gt; &lt;br /&gt;
#include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Tímto příkazem se automaticky nadefinuje LCD pro použití v programu&lt;br /&gt;
#asm&lt;br /&gt;
   .equ __lcd_port=0x18 ;PORTB&lt;br /&gt;
#endasm&lt;br /&gt;
#include &amp;lt;lcd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Začátek hlavního programu&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
// Inicializace LCD displaye&lt;br /&gt;
lcd_init(16);&lt;br /&gt;
&lt;br /&gt;
      {            &lt;br /&gt;
// Tímto příkazem nastavíme počáteční polohu textu na displayi (x= 0-16, y= 0-1)&lt;br /&gt;
lcd_gotoxy (0,0);&lt;br /&gt;
// Tímto příkazem vyšleme na LCD text&lt;br /&gt;
lcd_putsf (&amp;quot;Ahoj&amp;quot;); &lt;br /&gt;
// delay nám určuje, po jaké době bude smazán text na displayi&lt;br /&gt;
delay_ms(1000);&lt;br /&gt;
// tímto příkazem smažeme všechen text z LCD&lt;br /&gt;
lcd_clear();&lt;br /&gt;
&lt;br /&gt;
      };&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
===Ovládání motoru===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt; &lt;br /&gt;
 /**************************&lt;br /&gt;
 Chip type               : ATmega16&lt;br /&gt;
 Program type            : Application&lt;br /&gt;
 AVR Core Clock frequency: 18,423000 MHz&lt;br /&gt;
 Memory model            : Small&lt;br /&gt;
 External RAM size       : 0&lt;br /&gt;
 Data Stack size         : 256&lt;br /&gt;
 **************************/&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;mega16.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;  &lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #define F_CPU 18423000&lt;br /&gt;
 #include &amp;lt;delay.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #define ADC_VREF_TYPE 0x60&lt;br /&gt;
 int hrana;&lt;br /&gt;
 bit por0;&lt;br /&gt;
&lt;br /&gt;
 //Deklarace globálních proměnných&lt;br /&gt;
 unsigned int read_adc(unsigned char kanal)  {&lt;br /&gt;
 ADMUX=kanal;  &lt;br /&gt;
    ADCSRA|=0x40;  &lt;br /&gt;
    while ((ADCSRA &amp;amp; 0x10)==0);  &lt;br /&gt;
    ADCSRA|= 0x10;  &lt;br /&gt;
 return ADCW;&lt;br /&gt;
 } &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
&lt;br /&gt;
 // Input/Output Ports initialization&lt;br /&gt;
 // Port A initialization&lt;br /&gt;
 PORTA=0x00;&lt;br /&gt;
 DDRA=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port B initialization&lt;br /&gt;
 PORTB=0x00;&lt;br /&gt;
 DDRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Port C initialization&lt;br /&gt;
 PORTC=0x00;&lt;br /&gt;
 DDRC=0xC0;&lt;br /&gt;
&lt;br /&gt;
 // Port D initialization&lt;br /&gt;
 PORTD=0x00;&lt;br /&gt;
 DDRD=0b11111111;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 0 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer 0 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC0 output: Disconnected&lt;br /&gt;
 TCCR0=0x00;&lt;br /&gt;
 TCNT0=0x00;&lt;br /&gt;
 OCR0=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 1 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer1 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFFFF&lt;br /&gt;
 // OC1A output: Discon.&lt;br /&gt;
 // OC1B output: Discon.&lt;br /&gt;
 // Noise Canceler: Off&lt;br /&gt;
 // Input Capture on Falling Edge&lt;br /&gt;
 // Timer1 Overflow Interrupt: Off&lt;br /&gt;
 // Input Capture Interrupt: Off&lt;br /&gt;
 // Compare A Match Interrupt: Off&lt;br /&gt;
 // Compare B Match Interrupt: Off&lt;br /&gt;
 TCCR1A=0x00;&lt;br /&gt;
 TCCR1B=0x00;&lt;br /&gt;
 TCNT1H=0x00;&lt;br /&gt;
 TCNT1L=0x00;&lt;br /&gt;
 ICR1H=0x00;&lt;br /&gt;
 ICR1L=0x00;&lt;br /&gt;
 OCR1AH=0x00;&lt;br /&gt;
 OCR1AL=0x00;&lt;br /&gt;
 OCR1BH=0x00;&lt;br /&gt;
 OCR1BL=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer/Counter 2 initialization&lt;br /&gt;
 // Clock source: System Clock&lt;br /&gt;
 // Clock value: Timer2 Stopped&lt;br /&gt;
 // Mode: Normal top=0xFF&lt;br /&gt;
 // OC2 output: Disconnected&lt;br /&gt;
 ASSR=0x00;&lt;br /&gt;
 TCCR2=0x00;&lt;br /&gt;
 TCNT2=0x00;&lt;br /&gt;
 OCR2=0x00;&lt;br /&gt;
&lt;br /&gt;
 // External Interrupt(s) initialization&lt;br /&gt;
 // INT0: Off&lt;br /&gt;
 // INT1: Off&lt;br /&gt;
 // INT2: Off&lt;br /&gt;
 MCUCR=0x00;&lt;br /&gt;
 MCUCSR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Timer(s)/Counter(s) Interrupt(s) initialization&lt;br /&gt;
 TIMSK=0x00;&lt;br /&gt;
&lt;br /&gt;
 // USART initialization&lt;br /&gt;
 // USART disabled&lt;br /&gt;
 UCSRB=0x00;&lt;br /&gt;
&lt;br /&gt;
 // Analog Comparator initialization&lt;br /&gt;
 // Analog Comparator: Off&lt;br /&gt;
 // Analog Comparator Input Capture by Timer/Counter 1: Off&lt;br /&gt;
 ACSR=0x80;&lt;br /&gt;
 SFIOR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // ADC initialization&lt;br /&gt;
 // ADC Clock frequency: 575,719 kHz&lt;br /&gt;
 // ADC Voltage Reference: AVCC pin&lt;br /&gt;
 // ADC Auto Trigger Source: Free Running&lt;br /&gt;
 // Only the 8 most significant bits of&lt;br /&gt;
 // the AD conversion result are used&lt;br /&gt;
 ADMUX=ADC_VREF_TYPE &amp;amp; 0xff;&lt;br /&gt;
 ADCSRA=0xA5;&lt;br /&gt;
 SFIOR&amp;amp;=0x1F;&lt;br /&gt;
&lt;br /&gt;
 // SPI initialization&lt;br /&gt;
 // SPI disabled&lt;br /&gt;
 SPCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 // TWI initialization&lt;br /&gt;
 // TWI disabled&lt;br /&gt;
 TWCR=0x00;&lt;br /&gt;
&lt;br /&gt;
 DDRC=0b00000011;&lt;br /&gt;
 DDRA=0b00000000;&lt;br /&gt;
 PORTC=0b00000011;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000001;&lt;br /&gt;
 delay_ms(200);&lt;br /&gt;
 PORTC=0b00000010;&lt;br /&gt;
 delay_ms(2000);&lt;br /&gt;
 hrana=(read_adc(0)+read_adc(1))/2;&lt;br /&gt;
 PORTC=0b00000000;&lt;br /&gt;
       while(1){&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b01101011;&lt;br /&gt;
       }; &lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01011011;&lt;br /&gt;
       }&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){ PORTD=0b00100111;};&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100111;&lt;br /&gt;
       };&lt;br /&gt;
        if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt; hrana)){&lt;br /&gt;
         if (por0){&lt;br /&gt;
            PORTD=0b01011011;&lt;br /&gt;
            delay_ms(100);&lt;br /&gt;
            PORTD=0b01101011;&lt;br /&gt;
            delay_ms(2000);&lt;br /&gt;
            por0=0;}else{       &lt;br /&gt;
           PORTD=0b00100111;&lt;br /&gt;
            delay_ms(200);&lt;br /&gt;
             por0=1;&lt;br /&gt;
             };&lt;br /&gt;
           };&lt;br /&gt;
        if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01100011;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;lt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b01010001;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;lt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;lt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;gt;hrana)){&lt;br /&gt;
       PORTD=0b00100110;&lt;br /&gt;
       };&lt;br /&gt;
       if ((read_adc(0)&amp;gt;hrana)*(read_adc(1)&amp;gt;hrana)*(read_adc(2)&amp;gt;hrana)*(read_adc(3)&amp;lt;hrana)){&lt;br /&gt;
       PORTD=0b00100101;&lt;br /&gt;
       };       &lt;br /&gt;
 }&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
	<entry>
		<id>http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10554</id>
		<title>CodeVisionAVR</title>
		<link rel="alternate" type="text/html" href="http://wiki.sps-pi.cz/index.php?title=CodeVisionAVR&amp;diff=10554"/>
		<updated>2011-04-26T08:42:49Z</updated>

		<summary type="html">&lt;p&gt;Mazeman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===www===&lt;br /&gt;
&lt;br /&gt;
http://www.hpinfotech.ro/html/cvavr.htm &lt;br /&gt;
&lt;br /&gt;
[http://courses.cit.cornell.edu/ee476/codevisionC/cvavrman.pdf Manuál]&lt;br /&gt;
&lt;br /&gt;
[http://www.atmel.com/dyn/resources/prod_documents/doc2500.pdf Getting Started with the CodeVisionAVR C Compiler]&lt;br /&gt;
&lt;br /&gt;
[http://www.hpinfotech.ro/html/cvavr.htm download]&lt;br /&gt;
&lt;br /&gt;
==Úlohy pro začátky==&lt;br /&gt;
&lt;br /&gt;
===Blikání LED===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ovládání LCD===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Ovládání motoru===&lt;/div&gt;</summary>
		<author><name>Mazeman</name></author>
	</entry>
</feed>