<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=3348&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-01-29T00:29:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3348&amp;mode</id>
<entry>
<author><name><![CDATA[mirek1968]]></name></author>
<updated>2014-01-29T00:29:09+01:00</updated>
<published>2014-01-29T00:29:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=67141#p67141</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=67141#p67141"/>
<title type="html"><![CDATA[Re: Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=67141#p67141"><![CDATA[
Ja także mam problem z obsługą HC-SR04 na moim procesorze Atmega16 taktowanym kwarcem 16Mhz i proszę o pomoc w modyfikacji kodu tego poniżej,o sam sobie z tym nie poradzę.<br /><br />[syntax=c]//HC-SR04˛2cm--450cm-LCD1602<br />//ATMEGA16<br />//16MHz<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define BUZZER (1&lt;&lt;PD5) //Aktywacja buzzera na pin PB0<br />#define BUZZER_OFF PORTD  |= BUZZER  //Wyłącznie buzzera<br />#define BUZZER_ON PORTD &amp;= ~ BUZZER //Załączanie buzzera<br /><br />#define uint unsigned int<br />#define uchar unsigned char<br />unsigned int  time=0;<br />unsigned long S=0;<br />uchar  flag =0;<br />volatile int num=0;<br />unsigned char  Range&#91;&#93; =&quot;==Range Finder==&quot;;//LCD1602<br />unsigned char  ASC&#91;&#93; = &quot;0123456789.-M&quot;;<br />unsigned char  table&#91;&#93;=&quot;Distance:000.0cm&quot;;<br />unsigned char  table1&#91;&#93;=&quot;!!! Out of range&quot;;<br />uchar cont;<br /><br />/************±5ms************************/<br />void Delay5Ms(void)//<br />{<br />uint TempCyc = 5000;<br />while(TempCyc--);<br />}<br /><br />/*****************±400ms****************/<br />void Delay400Ms(void)<br />{<br />uchar TempCycA = 5;<br />uint TempCycB;<br />while(TempCycA--)<br />{<br />TempCycB=8000;<br />while(TempCycB--);<br />};<br />}<br /><br />void Conut(void)<br />{<br />if(num&gt;256) <br />{<br />flag=1;<br />num=0;<br />}<br />time=num*256+TCNT0;<br />num=0;<br />TCNT0 = 0; <br /><br />S=time*17;<br />S=S/10; <br />if((S&gt;=5000)||flag==1||(S&lt;20))<br />{<br />flag=0;<br />S=0;<br />num=0;<br />for(cont=0;cont&lt;16;cont++) lcd_locate(cont,1),lcd_char(table1&#91;cont&#93;);<br />//LCD1602-cont·table1&#91;cont&#93;<br />}<br />else<br />{<br />for(cont=0;cont&lt;16;cont++) lcd_locate(cont,1),lcd_char(table&#91;cont&#93;);//cm<br />lcd_locate(9,1),lcd_char(ASC&#91;S/1000&#93;);<br />lcd_locate(10,1),lcd_char(ASC&#91;(S/100)%10&#93;);<br />lcd_locate(11,1),lcd_char(ASC&#91;(S/10)%10&#93;);<br />lcd_locate(12,1),lcd_char(ASC&#91;10&#93;);<br />lcd_locate(13,1),lcd_char(ASC&#91;S%10&#93;);<br />}<br />}<br /><br />void Timer_Count(void)<br />{<br />TCCR0 |= (1 &lt;&lt; CS01);    //było |= (1 &lt;&lt; CS01)<br />while(PINC &amp; (1&lt;&lt;PC1));//µ±RX<br />TCCR0 = 0x00;<br />Conut();<br />}<br /><br />/************HC-SR04********************************************/<br />void  StartModule()<br />{<br />uchar i;<br />PORTC |=(1&lt;&lt;PC0);//TX=1<br />for(i=0;i&lt;15;i++);<br />PORTC &amp;=~(1&lt;&lt;PC0);//TX=0;<br />}<br /><br /><br />int main(void)<br />{<br />DDRD |=BUZZER;//ustawienie rejestru buzzera PD5 jako wyjście<br />BUZZER_OFF; //Wyłącznie buzzera<br /><br />    uint a;<br /><br />DDRC |=(1&lt;&lt;PC0);//było DDRC |=0XFD;<br />DDRC &amp;=~(1&lt;&lt;PC1);//<br /><br />TCNT0 = 0;<br />TIMSK |= (1 &lt;&lt; TOIE0);<br />TCCR0 = 0;//0 było &amp;= 0x00<br />sei();<br /><br />Delay400Ms();<br />lcd_init();<br />Delay5Ms();<br />//for(a=0;a&lt;16;a++) lcd_locate(a,0),lcd_char(Range&#91;a&#93;);<br />for(a=0;a&lt;16;a++) lcd_locate(a,1),lcd_char(table&#91;a&#93;);<br />   <br /> while(1)<br />{<br />StartModule();<br />for(a=8000;a&gt;0;a--)<br />{<br />if(PINC &amp; (1&lt;&lt;PC1))//RX==1<br />{<br />Timer_Count();<br />}<br />}<br />}<br />} <br /><br />SIGNAL(SIG_OVERFLOW0)<br />{<br />TCNT0 = 0;<br />num++;<br />}[/syntax]<br /><br />Nie chcę zakładać nowego wątku na temat tego samego czujnika odległości co tu dlatego proszę o pomoc:-)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=922">mirek1968</a> — 29 sty 2014, o 00:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-06-18T20:52:01+01:00</updated>
<published>2013-06-18T20:52:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39621#p39621</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39621#p39621"/>
<title type="html"><![CDATA[Re: Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39621#p39621"><![CDATA[
Wilu88  poczytaj tutaj i będziesz wiedział :<br /><br /><!-- m --><a class="postlink" href="http://sunduino.elektroda.eu/wordpress/sunduino/czujnik-ultradzwiekowe-ping/" >http://sunduino.elektroda.eu/wordpress/ ... kowe-ping/</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 18 cze 2013, o 20:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2013-06-18T20:32:01+01:00</updated>
<published>2013-06-18T20:32:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39620#p39620</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39620#p39620"/>
<title type="html"><![CDATA[Re: Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39620#p39620"><![CDATA[
No i teraz jakieś efekty są <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Po ustawieniu przeszkody 10 cm od czujnika na LCD przy zmiennej PulseWidth mam 541 a licznik_us 270. Czyli aby otrzymać wynik w cm muszę jeszcze to jakoś przerobić? w nocie znalazłem informacje o dzieleniu czasu przez 58. No ale to nie bardzo by się zgadzało gdyż licznik_us ma wartość 270 prędzej by pasowało dzielenie PulseWidth<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 18 cze 2013, o 20:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sz4t4n]]></name></author>
<updated>2013-06-18T20:12:20+01:00</updated>
<published>2013-06-18T20:12:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39619#p39619</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39619#p39619"/>
<title type="html"><![CDATA[Re: Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39619#p39619"><![CDATA[
Wybacz, nie sprawdziłem w nocie procesora tylko pisałem z pamięci. Atmega32 oczywiście ICP1 ma na nodze PD6 a nie PD7<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=377">sz4t4n</a> — 18 cze 2013, o 20:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2013-06-18T18:51:35+01:00</updated>
<published>2013-06-18T18:51:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39605#p39605</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39605#p39605"/>
<title type="html"><![CDATA[Re: Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39605#p39605"><![CDATA[
[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 18-06-2013<br /> *      Author: Tomasz Wilk<br /> */<br /><br /><br />    #include &lt;avr/io.h&gt;<br />    #include &lt;util/delay.h&gt;<br />    #include &lt;avr/interrupt.h&gt;<br />    #include &quot;LCD/lcd44780.h&quot;<br /><br /><br /><br />    void triger(void);<br />    uint8_t licznik_switch=0;<br /><br />    volatile uint16_t PulseWidth;<br />    uint16_t licznik_us=0;<br /><br />    #define KEY_DOWN !(PINC &amp; (1&lt;&lt;PC7))<br /><br />    int main()<br />    {<br /><br />            DDRC |= (1&lt;&lt;PC3);       //wyjscie<br />            PORTC &amp;= ~(1&lt;&lt;PC3); //TRIGER<br /><br />            DDRD &amp;= ~(1&lt;&lt;PD7);      //wejscie ECHO<br />            PORTD &amp;= ~(1&lt;&lt;PD7);     //ICP<br /><br />            DDRC &amp;= ~(1&lt;&lt;PC7); // wejscie<br />            PORTC |= (1&lt;&lt;PC7); // uSWITCH<br /><br />            lcd_init();<br /><br />        TCCR1B |= (1&lt;&lt;ICES1);  /* Zbocze narastające wywoła przerwanie*/<br />        TCCR1B |= (1&lt;&lt;CS11);   /* preskaler = 8 */<br />        //TCCR1B |= (1&lt;&lt;ICNC1); //NOISE CANCELLER<br />        TIMSK |=  (1&lt;&lt;TICIE1);   /* zezwolenie na przerwanie od ICP */<br /><br />        sei();                 /* globalne zezwolenie na przerwania */<br /><br />        lcd_cls();<br /><br />            while(1)<br />            {<br />                    licznik_us=(PulseWidth)/2;//7ms opoznienia z przerwań dziele na 2 bo 2MHz<br />                    lcd_locate(0,0);<br />                    lcd_int(licznik_switch);<br />                    lcd_locate(1,1);<br />                    lcd_int(PulseWidth);<br />                    lcd_locate(1,10);<br />                    lcd_int(licznik_us);<br /><br /><br />                    if(KEY_DOWN)<br />                                    {<br />                                            _delay_ms(80);<br />                                            if(KEY_DOWN)<br />                                            {<br />                                                    lcd_cls();<br />                                                    triger(); //wyzwolenie<br />                                                    licznik_switch++;//potwierdzenie wyzwolenia na LCD<br />                                            }<br />                                    }<br />            }//koniec while(1)<br /><br /><br />    }//koniec main<br />    ISR(TIMER1_CAPT_vect)<br />    {<br />        static uint16_t LastCapture;<br /><br />        if( !(TCCR1B &amp; (1&lt;&lt;ICES1)) ) PulseWidth = ICR1 - LastCapture;<br />        LastCapture = ICR1;<br /><br />        TCCR1B ^= (1&lt;&lt;ICES1); //zmiana zbocza<br />    }<br /><br />    void triger(void)<br />            {<br />                    PORTC &amp;= ~(1&lt;&lt;PC3);<br />                    _delay_us(2);<br />                    PORTC |= (1&lt;&lt;PC3); //wystawienie jedynki na TRIG<br />                    _delay_us(10);          //wymagane 10 uS stanu wysokiego<br />                    PORTC &amp;= ~(1&lt;&lt;PC3);     //wystawienie zera na TRIG<br />            }[/syntax]<br /><br />Mój kod wygląda tak. Na pokąłdzie Atmega32 taktowana wewnętrznym 8 Mhz wyświetlacz podłączony na porcie B. W efekcie na ekranie w momencie naciśnięcia przycisku inkrementuje sie zmienna licznik_switch tyle że jedno przyciśniecie przycisku zwiększa np o 10 reaguje na przytrzymanie klawisza. natomaist dwie dolne wartosci na wyświetlaczu są równe 0.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 18 cze 2013, o 18:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sz4t4n]]></name></author>
<updated>2013-06-18T18:44:38+01:00</updated>
<published>2013-06-18T18:44:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39602#p39602</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39602#p39602"/>
<title type="html"><![CDATA[Re: Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39602#p39602"><![CDATA[
Atmega32 ma ICR1 na PD7 a nie PB0 tak jak ma to miejsce w atmedze8, może to przez to.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=377">sz4t4n</a> — 18 cze 2013, o 18:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2013-06-18T17:11:53+01:00</updated>
<published>2013-06-18T17:11:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39571#p39571</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39571#p39571"/>
<title type="html"><![CDATA[Re: Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39571#p39571"><![CDATA[
Witam<br /><br />Sam z ciekawości zechciałem odpalić ten kod na swojej ATmedze 32. Program się kompiluje jednak zamiast odległości po przetrzymaniu przycisku zwiększa się tylko licznik wyświetlany na ekranie i tyle. Dla jakiej częstotliwości jest ten kod? Bo rozumiem że reszta rejestrów pasuje do Atmegi 32?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 18 cze 2013, o 17:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sz4t4n]]></name></author>
<updated>2013-06-18T15:26:38+01:00</updated>
<published>2013-06-18T15:26:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39560#p39560</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39560#p39560"/>
<title type="html"><![CDATA[Re: Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39560#p39560"><![CDATA[
Poniżej masz kod dla atmegi8 ( kod pochodzi z linku który wcześniej podałem po bardzo niewielkich modyfikacjach). Zobacz czy działa Ci na tym. Pozmieniaj sobie tylko biblioteki do wyświetlacza bo widzę, że masz inne.<br /><br />echo - PB0<br />trigger - PB3<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br /><br /><br />void triger(void);<br />uint8_t licznik_switch=0;<br /><br />volatile uint16_t PulseWidth;<br />uint16_t licznik_us=0;<br /><br />#define KEY_DOWN !(PINB &amp; (1&lt;&lt;PB2))<br /><br />int main()<br />{<br /><br />DDRB |= (1&lt;&lt;PB3);//wyjscie<br />PORTB &amp;= ~(1&lt;&lt;PB3); //TRIGER<br /><br />DDRB &amp;= ~(1&lt;&lt;PB0);//wejscie ECHO<br />PORTB &amp;= ~(1&lt;&lt;PB0);//ICP<br /><br />DDRB &amp;= ~(1&lt;&lt;PB2); // wejscie<br />PORTB |= (1&lt;&lt;PB2); // uSWITCH<br /><br />lcd_init();<br /><br />    TCCR1B |= (1&lt;&lt;ICES1);  /* Zbocze narastające wywoła przerwanie*/<br />    TCCR1B |= (1&lt;&lt;CS11);   /* preskaler = 8 */<br />    //TCCR1B |= (1&lt;&lt;ICNC1); //NOISE CANCELLER<br />    TIMSK |=  (1&lt;&lt;TICIE1);   /* zezwolenie na przerwanie od ICP */<br /><br />    sei();                 /* globalne zezwolenie na przerwania */<br /><br />    lcd_cls();<br /><br />while(1)<br />{<br />licznik_us=(PulseWidth)/2;//7ms opoznienia z przerwań dziele na 2 bo 2MHz<br />lcd_locate(0,0);<br />lcd_int(licznik_switch);<br />lcd_locate(1,1);<br />lcd_int(PulseWidth);<br />lcd_locate(1,10);<br />lcd_int(licznik_us);<br /><br /><br />if(KEY_DOWN)<br />{<br />_delay_ms(80);<br />if(KEY_DOWN)<br />{<br />lcd_cls();<br />triger(); //wyzwolenie<br />licznik_switch++;//potwierdzenie wyzwolenia na LCD<br />}<br />}<br />}//koniec while(1)<br /><br /><br />}//koniec main<br />ISR(TIMER1_CAPT_vect)<br />{<br />    static uint16_t LastCapture;<br /><br />    if( !(TCCR1B &amp; (1&lt;&lt;ICES1)) ) PulseWidth = ICR1 - LastCapture;<br />    LastCapture = ICR1;<br /><br />    TCCR1B ^= (1&lt;&lt;ICES1); //zmiana zbocza<br />}<br /><br />void triger(void)<br />{<br />PORTB &amp;= ~(1&lt;&lt;PB3);<br />_delay_us(2);<br />PORTB |= (1&lt;&lt;PB3); //wystawienie jedynki na TRIG<br />_delay_us(10);//wymagane 10 uS stanu wysokiego<br />PORTB &amp;= ~(1&lt;&lt;PB3);//wystawienie zera na TRIG<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=377">sz4t4n</a> — 18 cze 2013, o 15:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lukych92]]></name></author>
<updated>2013-06-17T22:45:18+01:00</updated>
<published>2013-06-17T22:45:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39523#p39523</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39523#p39523"/>
<title type="html"><![CDATA[Re: Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39523#p39523"><![CDATA[
Wykombinowałem coś takiego (niestety dalej nie działa <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ) :<br />[syntax=c]void Trigger(void)            <br />{ <br />PORTB&amp;=~(1&lt;&lt;PB0);<br />_delay_us(2);<br />PORTB|=(1&lt;&lt;PB0);<br />_delay_us(11);<br />PORTB&amp;=~(1&lt;&lt;PB0);<br />}<br /><br />volatile unsigned long result = 0;0;<br />volatile uint32_t licznik = 0;<br />int flaga;<br /><br /><br />int main(void)<br />{<br />char odleglosc1&#91;1&#93;;<br />char *napis=&quot;Dystans: &quot;;<br /><br />        DDRB |= (1&lt;&lt;PB0); // PB0 wyjsciowy<br />        PORTB |= ~(1&lt;&lt;PB0); // PB0 stan niski<br /> <br />        DDRD |= ~(1&lt;&lt;PD3); // PD2 wejsciowy<br />        PORTD |= (1&lt;&lt;PD3); // PD2 podciagniete do VCC<br /><br />//Inicjalizacja_serwa();<br />ustawienie_wyswietlacza();<br /><br /><br />// INT1<br />// włączamy przerwanie od INT1, podłaczamy Echo do INT1<br />MCUCR |= (1 &lt;&lt; ISC11) | (1 &lt;&lt; ISC10); <br />GICR |= (1 &lt;&lt; INT1);      // włączamy INT1<br />       <br /><br />TIMSK |= (1&lt;&lt;TOIE2);<br />OCR2=8;<br /><br />sei(); // globalna zgoda na przerwania<br />/*<br />TCCR1B|=(1&lt;&lt;ICES1);//NARASTAJACE<br />TCCR1B |= (1&lt;&lt;CS10); //PRESKALER 1<br />TIMSK |=  (1&lt;&lt;TICIE1); //PRZERWANIE WL<br />*/<br /><br />//int numDelays = 0;<br />//int i=0;<br /><br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(napis);<br /><br />while(1)<br />{<br /><br />//Sterowanie_serwem();<br /><br />Trigger(); // uruchomienie pomiaru !!<br />sprintf(odleglosc1,&quot;%4.0ld mm&quot;,result);<br />LCD_GoTo(9,0);<br />LCD_WriteText(odleglosc1);<br />_delay_ms(350);<br />}<br /><br />return 0;<br />}<br /><br />ISR(TIMER0_OVF_vect)//125 NA SEK<br />{<br />licznik++; // zwiekaszanie licznika<br />}<br /> <br />ISR(INT1_vect)<br />{<br />if(flaga==0)<br />{<br />TCCR2 |= (1&lt;&lt;WGM21);<br />TCCR2 |= (1&lt;&lt;CS00);<br /><br />MCUCR &amp;= ~(1&lt;&lt;ISC10);<br /><br />flaga=1;<br />}<br />else<br />{<br />TCCR2 &amp;= ~((1&lt;&lt;CS22) | (1&lt;&lt;CS21) | (1&lt;&lt;CS20));<br /><br />MCUCR |= (1 &lt;&lt; ISC11) | (1 &lt;&lt; ISC10);<br /><br />result=licznik/58;<br />licznik=0;<br />flaga=0;<br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1414">lukych92</a> — 17 cze 2013, o 22:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sz4t4n]]></name></author>
<updated>2013-06-17T21:53:21+01:00</updated>
<published>2013-06-17T21:53:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39520#p39520</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39520#p39520"/>
<title type="html"><![CDATA[Re: Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39520#p39520"><![CDATA[
Cześć,<br /><br />polecam użyć do tego celu wejście ICP1. Tutaj był poruszany ten temat <a href="http://forum.atnel.pl/topic3090.html"  class="postlink">http://forum.atnel.pl/topic3090.html</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=377">sz4t4n</a> — 17 cze 2013, o 21:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lukych92]]></name></author>
<updated>2013-06-17T21:37:21+01:00</updated>
<published>2013-06-17T21:37:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39517#p39517</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39517#p39517"/>
<title type="html"><![CDATA[Sonar HC-SR04 Atmega8.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3348&amp;p=39517#p39517"><![CDATA[
Witam,<br /><br />Chce zmierzyć odległość sonarem HC-SR04 pod atmega8, niestety nie wiem za bardzo jak to zrobić. Nie wiem co powinno być wykonywane w przerwaniu INT1.<br /><br />Oto mój kawałek kodu:<br />[syntax=c]int main(void)<br />{<br />char odleglosc1&#91;1&#93;;<br />char *napis=&quot;Dystans: &quot;;<br /><br />DDRB&amp;=~(1&lt;&lt;PB0);//ECHO<br />PORTB &amp;= ~(1&lt;&lt;PB0);<br /><br />ustawienie_wyswietlacza();<br /><br /><br />// INT1<br />// włączamy przerwanie od INT1, podłaczamy Echo do INT1<br />MCUCR |= (1 &lt;&lt; ISC11) | (1 &lt;&lt; ISC10); <br />GICR |= (1 &lt;&lt; INT1);      // włączamy INT1<br />       <br />TCCR0 = (1&lt;&lt;CS00); // preskaler 1<br />TCNT0 = 0; // wartosc timera = 0<br />TIMSK = (1&lt;&lt;TOIE0); // włączamy przerwanie timera<br /><br />sei(); // globalna zgoda na przerwania<br /><br /><br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(napis);<br /><br />while(1)<br />{<br />sprintf(odleglosc1,&quot;%4.0ld mm&quot;,result);<br />LCD_GoTo(9,0);<br />LCD_WriteText(odleglosc1);<br />        Trigger(); // uruchomienie pomiaru !!<br />}<br /><br />return 0;<br />}<br /><br />ISR(TIMER0_OVF_vect)//125 NA SEK<br />{<br />   licznik++; // zwiekaszanie licznika<br />}<br /> <br />ISR(INT1_vect)<br />{<br />   // ?<br />}[/syntax]<br /><br /><span style="color: #FF0000">Kody umieszczamy przy pomocy syntax=c - Zielony J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1414">lukych92</a> — 17 cze 2013, o 21:37</p><hr />
]]></content>
</entry>
</feed>