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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-04-11T13:15:26+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=18102&amp;mode</id>
<entry>
<author><name><![CDATA[mczarny]]></name></author>
<updated>2017-04-11T13:15:26+01:00</updated>
<published>2017-04-11T13:15:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186878#p186878</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186878#p186878"/>
<title type="html"><![CDATA[Re: Problem z czujnikiem HC-sr04]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186878#p186878"><![CDATA[
W którym miejscu obliczasz odległość?<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />test distance = (high level time × velocity of sound (340m/s) / 2<br /><br />gdzie:<br /><br />    test distance - odległość mierzona<br />    high level time - czas trwania stanu wysokiego <br />    velocity of sound - prędkość rozchodzenia się fali dźwiękowej w powietrzu - 340 m/s<br /></div><br />bo jakoś tego nie widzę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4651">mczarny</a> — 11 kwi 2017, o 13:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[prezes1993]]></name></author>
<updated>2017-04-09T18:20:31+01:00</updated>
<published>2017-04-09T18:20:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186738#p186738</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186738#p186738"/>
<title type="html"><![CDATA[Re: Problem z czujnikiem HC-sr04]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186738#p186738"><![CDATA[
Zrobiłem jeszcze kod w oparciu o przerwanie.<br />[syntax=c]#include  &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include&lt;stdio.h&gt;<br />#include&lt;hd44780.c&gt;<br />#include&lt;avr/interrupt.h&gt;<br /><br />#define TRIG PC1<br />#define ECHO PD2<br /><br />volatile int  echo_flag =0;<br />volatile int  time =0;<br />char ekran&#91;6&#93;;<br /><br /><br /><br />int main(){<br />    DDRD = 0x00; // ustawienie portu D jako wejscia<br />    PORTD = 0xFF;<br />    TCCR1B |= (1 &lt;&lt; CS10); //Ustawia timer(zlicza impulsy równolegle względem procesora)<br />    TCNT1 = 0;<br /><br />    EICRA |= (1&lt;&lt;INT0); // włączenie przerwania dla INT0<br />    EIMSK |= (1&lt;&lt;ISC00); //Zmiana stanu na INT0 generuje przerwanie<br />    sei(); // włączenie globalnego systemu przerwań<br />    lcd_init();<br />    LCD_DISPLAY(LCDDISPLAY);<br />    LCD_CLEAR;<br /><br />while(1){<br />PORTC |= (1 &lt;&lt; TRIG);<br />_delay_us(10);<br /> PORTC &amp;= ~(1 &lt;&lt; TRIG);<br /> echo_flag = 0;<br /> _delay_ms(100);<br /><br />}<br /><br />}<br /><br />ISR(INT0_vect)<br />{<br />if(echo_flag == 0) {<br /><br />        TCNT1 = 0; // Zeruje wartość timera<br />       echo_flag = 1; }<br /><br /><br />    else if(echo_flag == 1){<br /><br /><br />        int time = 0;<br />        time = TCNT1;<br />         LCD_LOCATE(0,0);<br />         sprintf(ekran,&quot;%i&quot;, time);<br />         lcd_puts(ekran);<br />        echo_flag = 0;<br />}<br /><br />}[/syntax]<br /><br />Niestety występuje ten sam problem wyświetlania dziwnych wartości. Ktoś pomoże ??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16900">prezes1993</a> — 9 kwi 2017, o 18:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[prezes1993]]></name></author>
<updated>2017-04-09T16:04:27+01:00</updated>
<published>2017-04-09T16:04:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186731#p186731</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186731#p186731"/>
<title type="html"><![CDATA[Re: Problem z czujnikiem HC-sr04]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186731#p186731"><![CDATA[
Trochę zmieniłem kod. Wartości zwiększają się i zmniejszają wraz z odległością od przeszkody lecz i tak jest. Na początku są wartości np 200,300, a po chwili 20000, 30000 na tych samych odległościach. Przy ok. 900000 licznik się przepełnia i pokazuje liczby od 10000. Ktoś może coś pomóc ? Z góry dzięki. Poniżej kod:<br /><br />[syntax=c]#include &lt;stdio.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;hd44780.c&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />volatile int impulsy=0;<br />char ekran&#91;5&#93;;<br /><br />int main(void){<br />        DDRD |= (1&lt;&lt;PD0); //TRIGER jako wyjście<br />        PORTD &amp;= ~(1&lt;&lt;PD0); //  0 na TRIGGER<br />        DDRB &amp;= ~(1&lt;&lt;PB0);<br />        PORTB |= (1&lt;&lt;PB0);//ECHO jako wejście<br />       PORTB &amp;= ~(1&lt;&lt;PB0); //  0 na ECHO<br />         //Timer<br />         lcd_init();<br />        LCD_DISPLAY(LCDDISPLAY);<br />        LCD_CLEAR;<br /><br /><br />        while(1){<br />                PORTD |= (1&lt;&lt;PD0);<br />                _delay_us(400);<br />                PORTD &amp;= ~(1&lt;&lt;PD0);<br /><br />                while((PINB &amp; (1&lt;&lt;PB0)) ==0){<br />                TCNT1 = 0;<br />                    TCCR1B |= (1&lt;&lt;CS12);<br />                }<br /><br />                while((PINB &amp; (1&lt;&lt;PB0))!= 0){<br />                  LCD_LOCATE(0,1);<br />                 lcd_puts(&quot;ok&quot;);<br />                        impulsy = TCNT1;<br /><br />                }<br /><br />                 LCD_LOCATE(0,0);<br />                 sprintf(ekran,&quot;%d&quot;, impulsy);<br />                 lcd_puts(ekran);<br />_delay_ms(1000);<br />        }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16900">prezes1993</a> — 9 kwi 2017, o 16:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[prezes1993]]></name></author>
<updated>2017-04-08T16:09:35+01:00</updated>
<published>2017-04-08T16:09:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186635#p186635</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186635#p186635"/>
<title type="html"><![CDATA[Re: Problem z czujnikiem HC-sr04]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186635#p186635"><![CDATA[
Faktycznie, ale port ECHO ma być wejściem źle zapisałem komentarz . Poniżej wstawiam kod z poprawionym komentarzem<br /><br />[syntax=c]* main.c<br /> *<br /> *  Created on: 8 kwi 2017<br /> *      Author: Szymon Sobczak<br /> */<br />#include &lt;stdio.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;hd44780.c&gt;<br />#include &lt;avr/interrupt.h&gt;<br /> <br />volatile int impulsy;<br />char ekran&#91;10&#93;;<br /> <br />int main(void){<br />        DDRD |= (1&lt;&lt;PD0); //TRIGER jako wyjście<br />        PORTD &amp;= ~(1&lt;&lt;PD0); //  0 na TRIGGER<br />        DDRB &amp;= ~(1&lt;&lt;PB0); //ECHO jako wejście<br />        PORTB &amp;= ~(1&lt;&lt;PB0); //  0 na ECHO<br />        TCCR1B |= (1&lt;&lt;CS12); //Timer<br />         lcd_init();<br />        LCD_DISPLAY(LCDDISPLAY);<br />        LCD_CLEAR;<br /> <br />        while(1){<br />                PORTD |= (1&lt;&lt;PD0);<br />                _delay_us(100);<br />                PORTD &amp;= ~(1&lt;&lt;PD0);<br /> <br />                while((PINB &amp; (1&lt;&lt;PB0)) ==0){<br />                TCNT1 = 0;<br />                }<br /> <br />                while((PINB &amp; (1&lt;&lt;PB0))!= 0){<br /> <br /> <br />                        impulsy = TCNT1;<br /> <br />                }<br /> <br />                 LCD_LOCATE(0,0);<br />                 sprintf(ekran,&quot;%i&quot;, impulsy);<br />                 lcd_puts(ekran);<br />        }<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Dodam jeszcze że pracuję na ATMEDZE328P taktowana 16MHz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16900">prezes1993</a> — 8 kwi 2017, o 16:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michaeleagle]]></name></author>
<updated>2017-04-08T15:57:17+01:00</updated>
<published>2017-04-08T15:57:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186634#p186634</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186634#p186634"/>
<title type="html"><![CDATA[Re: Problem z czujnikiem HC-sr04]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186634#p186634"><![CDATA[
Masz napisane &quot;Echo jako wyjście&quot; a masz tam iloczyn logiczny zamiast |= <br />Wobec czego port ustawiasz jako wejście a nie wyjście<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16396">michaeleagle</a> — 8 kwi 2017, o 15:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[prezes1993]]></name></author>
<updated>2017-04-08T15:37:45+01:00</updated>
<published>2017-04-08T15:37:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186632#p186632</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186632#p186632"/>
<title type="html"><![CDATA[Problem z czujnikiem HC-sr04]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18102&amp;p=186632#p186632"><![CDATA[
Witam.<br />Napisałem program do obsługi czujnika HC-sr04. Program ma wyświetlać na LCD wartość z timera( na razie nie zamieniałem jej na cm). Niestety program nie działa tak jak powinien tzn wartość z timera nie wzrasta wraz z oddalaniem i przybliżaniem przeszkody.<br />Poniżej zamieszczam mój kod i chciałbym prosić o pomoc w wyłapaniu błędów.<br /><br /><br />[syntax=c]* main.c<br /> *<br /> *  Created on: 8 kwi 2017<br /> *      Author: Szymon Sobczak<br /> */<br />#include &lt;stdio.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;hd44780.c&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />volatile int impulsy;<br />char ekran&#91;10&#93;;<br /><br />int main(void){<br />DDRD |= (1&lt;&lt;PD0); //TRIGER jako wyjście<br />PORTD &amp;= ~(1&lt;&lt;PD0); //  0 na TRIGGER<br />DDRB &amp;= ~(1&lt;&lt;PB0); //ECHO jako wyjście<br />PORTB &amp;= ~(1&lt;&lt;PB0); //  1 na ECHO<br />TCCR1B |= (1&lt;&lt;CS12); //Timer<br /> lcd_init();<br />LCD_DISPLAY(LCDDISPLAY);<br />LCD_CLEAR;<br /><br />while(1){<br />PORTD |= (1&lt;&lt;PD0);<br />_delay_us(100);<br />PORTD &amp;= ~(1&lt;&lt;PD0);<br /><br />while((PINB &amp; (1&lt;&lt;PB0)) ==0){<br />TCNT1 = 0;<br />}<br /><br />while((PINB &amp; (1&lt;&lt;PB0))!= 0){<br /><br /><br />impulsy = TCNT1;<br /><br />}<br /><br /> LCD_LOCATE(0,0);<br /> sprintf(ekran,&quot;%i&quot;, impulsy);<br /> lcd_puts(ekran);<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16900">prezes1993</a> — 8 kwi 2017, o 15:37</p><hr />
]]></content>
</entry>
</feed>