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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-11-12T20:28:57+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13564&amp;mode</id>
<entry>
<author><name><![CDATA[yazpid]]></name></author>
<updated>2015-11-12T20:28:57+01:00</updated>
<published>2015-11-12T20:28:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13564&amp;p=145214#p145214</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13564&amp;p=145214#p145214"/>
<title type="html"><![CDATA[Czujnik ultradźwiękowy - obsługa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13564&amp;p=145214#p145214"><![CDATA[
Witam chciałem sobie napisać samodzielnie obsługę czujnika ultradźwiękowego odległości US-015. Zasada działania polega na tym, że na 10us dajemy stan wysoki na trigger czujnika po czym mierzymy na wejściu stan wysoki i wykorzystując odpowiedni wzór wyliczamy odległość, proszę powiedzcie mi czemu  zmiennej czas mam zawsze 0, natomiast po wyłączeniu sprawdzania czy na wejściu PD3 jest 0, czas narasta, więc &quot;coś&quot; liczy. <br /><br /><br /><br />[/code]<br /><br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br /><br />#include &quot;myuart/myuart.h&quot;<br />#include &quot;MK_TERMINAL/mk_term.h&quot;<br /><br /><br />volatile uint32_t  odleglosc=0 , sekunda=0;<br />volatile uint32_t  czas=0;<br />volatile uint32_t zmienna=0;<br />volatile uint8_t minuty=0;<br />int main(void)<br />{<br />uart_init( __UBRR );<br />sei();<br /> OCR1A = 1;<br />TIMSK |= (1 &lt;&lt; OCIE1A); //Set interrupt on compare match<br />OCR2 = 8;//PRZYPISANIE DO OCR2 WARTOSCI POCZĄTKOWEJ<br />TCCR1B |=(1&lt;&lt;WGM12);   //CTC<br />TCCR1B |= (1&lt;&lt;CS11); //8 preskaler<br /><br />DDRD &amp;= ~(1&lt;&lt;PD3);//PD3 JAKO WEJSCIE<br />PORTD |= (1&lt;&lt;PD3);// PD3 W STAN WYSOKI<br /><br />DDRB |= (1&lt;&lt;PB0);// PB0 JAKO WYJSCIE<br />PORTB |= ~(1&lt;&lt;PB0);// PB0 W STAN NISKI<br /><br /><br />while(1)<br />{<br /> _delay_ms(100);<br /><br />        PORTB |= (1&lt;&lt;PB0); // PB0 stan wysoki<br />        _delay_us (10);<br />        PORTB &amp;= ~(1&lt;&lt;PB0); // PB0 stan niski<br />            _delay_ms(1);<br /><br /><br /><br />odleglosc = czas/10;//(zmienna*34)/2;<br /> tr_cls(0);<br />    tr_locate(1,1);<br />    tr_pen_color(WHITE);<br />   uart_putint( odleglosc,10);<br />   tr_locate(10,1);<br />      tr_pen_color(WHITE);<br />   uart_putint( czas,10);<br /><br /><br />}<br />}<br /><br /><br /><br /><br />ISR (TIMER1_COMPA_vect)<br /><br /><br />   {<br /><br /><br />if (!(PIND &amp; (1&lt;&lt;PD3)))<br />{<br />czas=0;<br /><br />}<br /><br /><br /><br /><br />if (PIND &amp; (1&lt;&lt;PD3))<br />{<br />czas++;<br /><br />}}<br /><br /><br /><strong><span style="color: #FF0000">Proszę prawidłowo wstawiać kody do postów ... tym razem nie wkleję linka do zaleceń .. to jest zadanie dla kolegi znaleźć jak i wstawić prawidłowo , bo nawet niewłaściwych znaczników bbcode nie umie kolega używać ...  ---&gt; SunRiver </span></strong><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6401">yazpid</a> — 12 lis 2015, o 20:28</p><hr />
]]></content>
</entry>
</feed>