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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-02T16:29:25+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19721&amp;mode</id>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2017-12-02T16:29:25+01:00</updated>
<published>2017-12-02T16:29:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199892#p199892</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199892#p199892"/>
<title type="html"><![CDATA[Re: Pomiar szerokości impulsu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199892#p199892"><![CDATA[
Witam<br /><br />Częstotliwość impulsów to 64Hz, wypełnienie od 10% do 80%. Reguluję wypełnienie i układ zachowuje się jak opisałem wyżej czyli do pewnej wielkości jest ok później klapa.<br />Impulsy mam z generatora na układzie TL494 (mały moduł na płytce kupiony na Allegro).<br />Również zastanawiałem się czy problem nie jest po stronie sprzętowej więc dla testu zrobiłem tak<br />[syntax=c]ISR(TIMER1_CAPT_vect)//przerwanie ICP do ECHO<br />{<br />    static uint16_t LastCapture;<br /><br />    if(TCCR1B &amp; (1&lt;&lt;ICES1)) //jeśli zbocze rosnące<br />    {<br />    LED_ON;<br />    TCCR1B &amp;=~(1&lt;&lt;ICES1); //zmiana zbocza<br />    LastCapture = ICR1;<br />    }<br />    else<br />    {<br />    LED_OFF;<br />    TCCR1B |= (1&lt;&lt;ICES1); //zmiana zbocza<br />    PulseWidth = ICR1 - LastCapture;<br />    }<br />}[/syntax]<br /><br />Podglądam oscyloskopem przebieg &quot;oryginalny&quot; oraz przebieg na diodzie LED i jest identyczny. Wniosek z tego, że przerwanie dobrze się wykonuje bo gdy przychodzi zbocze rosnące zapala diodę, zbocze opadające ją gasi.<br />Obserwując przebieg badany również nie widzę, żadnych niechcianych impulsów. Dodatkowo podłączyłem tez inny generator (układ z AVT z wieloma DIP switchami) i jest tak samo.<br />Kurde zaczyna mnie to wkurzać, wciąż jakieś kłody, non stop pod górkę a najgorsze jest to, że to ja gdzieś robię błąd.<br /><br />edit<br />Nie ma to większego znaczenia, ale dopiszę procesor Atmega32, 11059200 Hz<br /><br />edit<br /><strong>QuadMan</strong>Zastanowiło mnie coś w twojej wypowiedzi więc jeszcze raz sprawdziłem układ od strony sprzętu i wygląd na to, że winny jest generator TL494. Podłączyłem jeszcze raz generator impulsów AVT2633 i jest ok. Reguluję wypełnienie w szerokim zakresie a w terminalu mam piękne wyniki od pojedynczych wartości do np 18000. Wniosek z tego, że wcześniej w ferworze walki zacząłem deptać po swoich śladach i jednak coś nie do końca właściwie sprawdziłem z zamieniając generatory.<br />Tak czy siak dziękuję za pomoc wszystkim, mam nadzieję, że teraz ruszę z miejsca w poszukiwaniu kolejnych problemów  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br />Dzięki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 2 gru 2017, o 16:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2017-12-02T12:59:17+01:00</updated>
<published>2017-12-02T12:59:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199871#p199871</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199871#p199871"/>
<title type="html"><![CDATA[Re: Pomiar szerokości impulsu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199871#p199871"><![CDATA[
Witam,<br /><br /><div class="quotetitle">roske napisał(a):</div><div class="quotecontent"><br />Noise Canceller próbkuje sygnał przez 4 takty zegara więc tak jakby, z założenia, długość impulsu nie może być krótsza niż okres F_CPU/4<br /></div><br /><br />Ale nawet przy F_CPU=8MHz to raptem 0.5us. Zastanawiam się, czy w układzie Autora nie ma jakichś zakłóceń w postaci takich krótkotrwałych &quot;szpilek&quot;, które pojawiają się zaraz po pierwszym impulsie ( wyzwalającym pomiar ). W układach cyfrowych o takie zakłócenia nietrudno, stąd moje pytanie.<br /><br />Pozdrawiam, QuadMan.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 2 gru 2017, o 12:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2017-12-01T23:46:56+01:00</updated>
<published>2017-12-01T23:46:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199852#p199852</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199852#p199852"/>
<title type="html"><![CDATA[Re: Pomiar szerokości impulsu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199852#p199852"><![CDATA[
Witam,<br /><br />A co jest źródłem impulsów, których długość mierzysz?<br /><br />Pozdrawiam, QuadMan.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 1 gru 2017, o 23:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2017-12-01T22:02:36+01:00</updated>
<published>2017-12-01T22:02:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199845#p199845</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199845#p199845"/>
<title type="html"><![CDATA[Re: Pomiar szerokości impulsu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199845#p199845"><![CDATA[
Kurcze jednak ATOMIC_BLOCK... nic nie dało. Wydaje mi się, że rozumiem działanie mechanizmu pomiaru długości impulsu. Nie rozumiem natomiast dla czego u mnie tak się to zachowuje. <br />Zrobiłem &quot;pierwszą&quot; reakcję na zbocze rosnące, &quot;drugą&quot; na zbocze opadające. W &quot;drugim&quot; przerwaniu obliczam długość impulsu i jest tak jak dotychczas, że do pewnej wartości jest ok za każdym razem wynik mniej więcej 2500. Natomiast jak tylko skrócę impuls do wartości ok. 2000 tyknięć timera to zazwyczaj mam 0 lub 1 czasami wynik właściwy. <br />[syntax=c]ISR(TIMER1_CAPT_vect)//przerwanie ICP do ECHO<br />{<br />    static uint16_t LastCapture;<br /><br />    if(TCCR1B &amp; (1&lt;&lt;ICES1)) //jeśli zbocze rosnące<br />    {<br />    TCCR1B &amp;=~(1&lt;&lt;ICES1); //zmiana zbocza<br />    LastCapture = ICR1;<br />    }<br />    else<br />    {<br />    TCCR1B |= (1&lt;&lt;ICES1); //zmiana zbocza<br />    PulseWidth = ICR1 - LastCapture;<br />    }<br /><br />}[/syntax]<br />Gdzie robię błąd? Długość impulsu nie &quot;przekręca&quot; timera zresztą to nie ma znaczenia, zmienna PulseWidth jest volatine. O co tu chodzi???<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 1 gru 2017, o 22:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2017-12-01T13:07:42+01:00</updated>
<published>2017-12-01T13:07:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199819#p199819</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199819#p199819"/>
<title type="html"><![CDATA[Re: Pomiar szerokości impulsu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199819#p199819"><![CDATA[
Dziękuję za szybka odpowiedź.<br />Wrócę z pracy i posiedzę nad waszymi sugestiami. Wczoraj do późna w nocy prowadziłem walkę, niestety bez efektów.Tak się zastanawiałem czy to czasem nie jakieś &quot;atomy&quot; tu mieszają  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  <br /><br />Dzięki na razie koledzy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 1 gru 2017, o 13:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2017-12-01T12:40:09+01:00</updated>
<published>2017-12-01T12:40:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199813#p199813</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199813#p199813"/>
<title type="html"><![CDATA[Re: Pomiar szerokości impulsu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199813#p199813"><![CDATA[
Poczytaj w wątek <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic2743.html" >topic2743.html</a><!-- l --><br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 1 gru 2017, o 12:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2017-12-01T11:33:47+01:00</updated>
<published>2017-12-01T11:33:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199809#p199809</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199809#p199809"/>
<title type="html"><![CDATA[Pomiar szerokości impulsu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19721&amp;p=199809#p199809"><![CDATA[
Próbuję napisać trochę bardziej zaawansowany jak na mnie, program. Zgodnie z zaleceniami Mirka <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> staram się pisać to etapowo. Doszedłem do części odpowiedzialnej za pomiar szerokości impulsu i mam małe zdziwienie. W celu przetestowania czy wszystko jest ok wysyłam wartość rejestru ICP prze UART. Co się okazuję, że do jakieś szerokości impulsu wyniki są prawidłowe niestety po przekroczeniu pewnej wartości mam zazwyczaj 0 lub 1 i od czasu do czasu prawidłową wartość. Nie za bardzo rozumiem gdzie jest błąd i przyczyna.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;MKUART/mkuart.h&quot;<br />#include &quot;common.h&quot;<br /><br /><br />int main(void)<br />{<br />DDRD &amp;= ~(1&lt;&lt;PD6);//pin ICP<br />PORTD |= (1&lt;&lt;PD6);<br /><br /><br />TCCR1B |= (1&lt;&lt;CS10) | (1&lt;&lt;CS11);// prescaler 64<br />TCCR1B |= (1&lt;&lt;ICES1);//reakcja na zbocze rosnące<br />TCCR1B |= (1&lt;&lt;ICNC1);// filtr cyfrowy<br />TIMSK |= (1&lt;&lt;TICIE1);// Przerwanie od ICP<br />//timer programowy tic/przerwanie co 10ms********config Timer2<br />TCCR2 |= (1&lt;&lt;WGM21);//tryb CTC<br />TCCR2 |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);//prescaler 1024<br />OCR2 = 107;// przerwanie porównania co 10ms (100Hz) dokładnie sprawdzone z oscyloskopem<br />TIMSK |= (1&lt;&lt;OCIE2);//włączenie przerwania od trybu porównania<br /><br />USART_Init( __UBRR );<br /><br />sei();/* włączamy globalne przerwania */<br /><br />while(1)<br />{<br />if(!timer1)// co 1 sek string<br />{<br />timer1 = 50;<br />wyslij(PulseWidth);<br />}<br />}<br />}<br /><br /><br />ISR(TIMER1_CAPT_vect)<br />{<br />if(!(TCCR1B &amp; (1&lt;&lt;ICES1)))//jeśli jest ustawione na zbocze opadające<br />{<br />PulseWidth = ICR1;//przepisz wartość<br />}<br />else<br />{<br />TCNT1 = 0;//jeśli zbocze rosnące wyzeruj<br />}<br /><br />TCCR1B ^= (1&lt;&lt;ICES1);//reakcja na przeciwne zbocze<br />}<br /><br />// przerwanie Timer2 timer programowy<br />ISR (TIMER2_COMP_vect)//przerwanie co 1ms<br />{<br />if(timer1) timer1--;<br />}[/syntax]<br /><br />W czasie prób sprawdzałem zapalając diodę w przerwaniu na początku impulsu i na końcu gasząc. Potwierdziło mi to, że przerwanie działa bez zarzutu, dioda odzwierciedlała przebieg mierzony. Niestety jak napisałem wyżej do wartości ok 2000 jest ok później na UART otrzymuję 0 lub 1  od czasu do czasu właściwą wartość licznika.<br />Program jest normalnie w osobnych plikach, ale połączyłem to żeby było łatwiej przeanalizować i wszystko w jednym miejscu. <br />Czy problem jest w przesyłaniu wartości przez UART czy w liczeniu przez licznik? Co i gdzie się gubi?<br />Podpowiedzcie coś proszę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 1 gru 2017, o 11:33</p><hr />
]]></content>
</entry>
</feed>