<?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=11219&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-03-29T23:06:36+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11219&amp;mode</id>
<entry>
<author><name><![CDATA[tapy]]></name></author>
<updated>2015-03-29T23:06:36+01:00</updated>
<published>2015-03-29T23:06:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11219&amp;p=125030#p125030</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11219&amp;p=125030#p125030"/>
<title type="html"><![CDATA[Re: HCSR 04 zwieszanie sie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11219&amp;p=125030#p125030"><![CDATA[
Problem nie jest czasem związany z flagą &quot;flaga&quot;? Jeśli odbicie jest dłuższe, lub co gorsza jest wiele odbić to mogą się tu pojawić problemy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3948">tapy</a> — 29 mar 2015, o 23:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ostr]]></name></author>
<updated>2015-03-29T18:14:36+01:00</updated>
<published>2015-03-29T18:14:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11219&amp;p=124989#p124989</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11219&amp;p=124989#p124989"/>
<title type="html"><![CDATA[HCSR 04 zwieszanie sie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11219&amp;p=124989#p124989"><![CDATA[
witam , moj problem polega na tym ze wszystko dziala ok , kiedy mierze odleglosc podsuwajac przed czujnik jakis prosty niewielki przedmiot typu polowa kartki a4 , wskazania sa dobre wszystko jest ok lub kiedy celuje w sufit czujnikiem . Kiedy przedmiot odsune od zasiegu dzialania czujnika a w jego zasiegu sa wtedy rozne rzeczy znajdujace sie w pokoju biurko, lozko itd badz kiedy czujnik chcesz obrocic z sufitu w strone sciany i czasami jest jakis inny przedmiot w zasiegu w tym momencie procesor sie zwiesza i juz dalej nie mierzy, podejrzewam ze ma to zwiazek z flagami w programie, ale jakos nie moge wymyslec jaka sytuacja powoduje to ze dalej juz nie mierzy . Atmega 32<br />Pozdrawiam<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br /><br /><br />#include &quot;../OLED/daw_sdd1306.h&quot;<br />#include &quot;moduly.h&quot;<br />#include &quot;../ikony/logo.h&quot;<br /><br /><br />void sonar (void);<br />void tlo (void);<br /><br /><br />volatile  uint16_t PulseWidth=0, flaga_tim=0;;<br />volatile uint8_t flaga=0;<br />uint16_t wynik;<br /><br /> void hcsr04( void )<br /> {<br /> TIMSK |= (1&lt;&lt;TICIE1) | (1&lt;&lt;OCIE0); //odblokowanie przerwania ICP1, compare match<br /><br /> TCCR1B |=  (1&lt;&lt;CS11) | (1&lt;&lt;ICES1) | (1&lt;&lt;ICNC1) ; //preskaler=8,zbocze narastajace ICP1,noise canceller<br />     TCCR0 |= (1&lt;&lt;WGM01) | (1&lt;&lt;CS02) ;//preskaler i tryb ctc<br />     OCR0 = 63;<br /><br /><br /> DDRD |= 1&lt;&lt;PD5;//trig<br /> DDRD&amp;=~(1&lt;&lt;PD6);//ECHO<br /> PORTD &amp;= ~(1&lt;&lt;PD6);<br /> sei();<br /><br /> DDRB = 0xFF;<br /><br /> tlo();<br /><br />    while(1)<br />    {<br />    if ( flaga_tim==1 &amp;&amp; flaga ==0)<br />    {<br />    PORTB ^= 1&lt;&lt;PB0;<br /> flaga_tim =0;<br /> sonar();//trigger<br />    }<br /><br />    if (flaga  &amp;&amp; (PulseWidth&lt;300))<br />{<br />daw_ssd1306_fillRect(0,0,128,9,1);  //czyszczenie paska odleglosci<br />daw_ssd1306_fillRect(50,26,35,14,0);//czyszczenie odleglosci<br /><br />wynik = (-(PulseWidth) + 300)*0.42666;<br /><br />daw_ssd1306_put_int(49,26,PulseWidth,2,1,0);//wyswietlanie odleglosci<br />daw_ssd1306_fillRect(0,0,wynik,9,0);//wyswietlanie paska<br />daw_ssd1306_display();<br />flaga = 0;<br />}<br /><br />    }<br /><br /> }<br /><br /><br />ISR(TIMER1_CAPT_vect)<br />{<br />static uint16_t LastCapture;<br /><br />if ( !(TCCR1B &amp; (1&lt;&lt;ICES1)) )<br />{<br />PulseWidth = (ICR1 - LastCapture)/58;<br />flaga = 1;<br />}<br />    LastCapture = ICR1;<br />    TCCR1B ^= (1&lt;&lt;ICES1); //zmiana zbocza<br /> }<br /><br /><br />ISR(TIMER0_COMP_vect)<br />{<br />static uint16_t i=0;<br />        if(i==100)<br />        {//co sek<br />                flaga_tim=1;<br />                i=0;<br />        }<br />        else<br />        {<br />                i++;<br />        }<br /><br />}<br /><br /><br /><br />void sonar (void)<br />{<br />PORTD &amp;= ~(1&lt;&lt;PD5);<br />_delay_us(5);<br />PORTD |= (1&lt;&lt;PD5);<br />_delay_us(15);<br />PORTD &amp;= ~(1&lt;&lt;PD5);<br />}<br /><br /><br />void tlo (void)<br />{<br />samochod();// tlo obrazek<br /><br />daw_ssd1306_drawFastVline(0,10,5,1);<br />daw_ssd1306_put_int(-1,16,300,1,1,0);<br /><br />daw_ssd1306_drawFastVline(42,10,5,1);<br />daw_ssd1306_put_int(37,16,200,1,1,0);<br /><br />daw_ssd1306_drawFastVline(84,10,5,1);<br />daw_ssd1306_put_int(79,16,100,1,1,0);<br /><br />daw_ssd1306_drawFastVline(127,10,5,1);<br />daw_ssd1306_put_int(123,16,0,1,1,0);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3780">ostr</a> — 29 mar 2015, o 18:14</p><hr />
]]></content>
</entry>
</feed>