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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-08-28T20:47:59+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1453&amp;mode</id>
<entry>
<author><name><![CDATA[Hass-pol]]></name></author>
<updated>2012-08-28T20:47:59+01:00</updated>
<published>2012-08-28T20:47:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13923#p13923</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13923#p13923"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13923#p13923"><![CDATA[
Trochę podkręciłem rozdzielczość do 1V. Nie jest to idealne rozwiązanie, ale widzę że działa.<br /><br />[syntax=c]<br />if (vBus == 1){<br />pomiarVbus0 = pomiar(0);<br />_delay_us(100);<br />pomiarVbus0 = pomiarVbus0 * 2;<br /><br />pomiarVbus1 = pomiar(0);<br />_delay_us(100);<br />pomiarVbus1 = pomiarVbus1 * 2;<br /><br />wynikVbus = (pomiarVbus0 + pomiarVbus1)/2;<br />_delay_us(100);<br />wynikVrest = (wynikVbus/10) % 10;<br />if (wynikVrest &gt;= 5) {<br />wynikVbus = wynikVbus +1 ;<br />}<br />tft_fill_rect(175,95, 28,10, white);<br />tft_putint(175,95, wynikVbus, black, white);  // kanal 0<br />_delay_us(100);<br />}<br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=213">Hass-pol</a> — 28 sie 2012, o 20:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-27T22:42:26+01:00</updated>
<published>2012-08-27T22:42:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13861#p13861</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13861#p13861"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13861#p13861"><![CDATA[
<div class="quotetitle">lukas12 napisał(a):</div><div class="quotecontent"><br />1.<div class="quotetitle">Hass-pol napisał(a):</div><div class="quotecontent">Obecnie mam ustawiony prescaler na 128 - 20MHz / 128 = 156,25 kHz czyli mieści się w przedziale 50k - 200kHz.<br /></div><br />Mi wychodzi 6,4ns.</div><br /><br />Może jest już późno ale mi się wydaje że to będzie jednak 6,4 us czyli ~156 kHz czyli tu OK<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br /><div class="quotetitle">Hass-pol napisał(a):</div><div class="quotecontent"><br />I teraz proszę kolegów o pomoc, czy dobrze rozumiem: ustawienie 10 bit'owej rozdzielczości daje mi 1023 możliwe pomiary (licząc 0)<br />czyli nie mogę uzyskiwać wyników z podziałką co np. 0,1V ? mogę przypisać np ADC 1 = 1V czyli przy ADC 1023 = 1023V. Jeśli chciałbym dokonywać pomiaru do 1500V to pewnie muszę przyjąć podziałkę 2V tak ? czyli np ADC 50 = 100V. Dobrze rozumiem ?<br /></div><br /><br />Za to tutaj nie za bardzo rozumiem jak kolega rozumuje i o co chodzi z tym przyjmowaniem podziałki. Jeśli nie chcesz zakresów robić to robisz dzielnik i przy napięciu odniesienia VREF=1,1V otrzymujesz minimalną rozdzielczość 1,46V. I tego nie przeskoczysz, gorzej z uwagi na błędy przetworników i tak musisz się wręcz liczyć ze stratą co najmniej jednego najmłodszego bitu a zatem taka średnia rozdzielczość wyjdzie ci ok 3V. Jeśli cię to zadowala to ok a jeśli nie to trza sięgnąć po zewnętrzny i lepszy przetwornik....  Ale pewnie przy tak gigantycznym zakresie taka dokładność pewnie cię też zadowoli ?<br /><br /><br /><div class="quotetitle">Hass-pol napisał(a):</div><div class="quotecontent"><br />Jak bym nie liczył i jaki bym nie przyjął VREF to i tak mam 1024 zakres pomiarowy, prawda ?<br /></div><br />Ale to nie jest kwestia nawet liczenia, bo 10 bitów to max 1024 i skąd miałoby być więcej albo mniej ?<br /><br /><div class="quotetitle">Hass-pol napisał(a):</div><div class="quotecontent"><br />Żeby liczyć z większą dokładnością co do podziałki, musiałbym utworzyć zakresy (jak w multimetrze uniwersalnym) uwzględniając odpowiedni współczynnik podziału, a tego wolałbym uniknąć. Chociaż dokładność napięciowa z 2V podziałką też mogłaby być <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br /><br />Dokładnie albo zakresy albo zewnętrzny lepszy przetwornik, np 12-bitowy<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 27 sie 2012, o 22:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lukas12]]></name></author>
<updated>2012-08-27T20:12:08+01:00</updated>
<published>2012-08-27T20:12:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13844#p13844</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13844#p13844"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13844#p13844"><![CDATA[
1.<div class="quotetitle">Hass-pol napisał(a):</div><div class="quotecontent"><br />Obecnie mam ustawiony prescaler na 128 - 20MHz / 128 = 156,25 kHz czyli mieści się w przedziale 50k - 200kHz.<br /></div><br />Mi wychodzi 6,4ns.<br /><br /><br />2. <div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />I teraz proszę kolegów o pomoc, czy dobrze rozumiem: ustawienie 10 bit'owej rozdzielczości daje mi 1023 możliwe pomiary (licząc 0)<br />czyli nie mogę uzyskiwać wyników z podziałką co np. 0,1V ? mogę przypisać np ADC 1 = 1V czyli przy ADC 1023 = 1023V. Jeśli chciałbym dokonywać pomiaru do 1500V to pewnie muszę przyjąć podziałkę 2V tak ? czyli np ADC 50 = 100V. Dobrze rozumiem ?<br /></div><br /><br />Dobrze myślisz<br />Nie lepiej zrobić podział np. 1,46<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=513">lukas12</a> — 27 sie 2012, o 20:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hass-pol]]></name></author>
<updated>2012-08-27T19:39:44+01:00</updated>
<published>2012-08-27T19:39:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13833#p13833</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13833#p13833"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13833#p13833"><![CDATA[
Nie tak do końca uciekł <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><br />Nie dało mi to spokoju i trochę zgłębiałem temat przetworników. Przetestuję &quot;Free runing mode&quot;, zobaczę jak się będzie zachowywał. <br />Jedną z funkcji mojego projektu ma być &quot;kreślenie&quot; charakterystyk z tego co odczyta dany kanał ( to czy wyniki będą wyświetlane w czasie rzeczywistym, czy po pomiarze zostaną podane wyniki uśrednione, max czy min to jest kwestią ustawień) jednak zbieranie sampli będzie musiało się odbywać po każdym cyklu 8'miu kanałów (lub - odczyt kanal (0) -&gt; zapisać wynik, odczyt kanal(1) -&gt; zapisać wynik.... ) muszę tylko policzyć czy czas na zapisanie pomiaru będzie na tyle długi aby zmieścił się w przedziale &quot;13 μs - 260 μs Conversion Time&quot; Chciałbym uzyskać maksymalną ilość sampli na sekundę. <br /><br />Obecnie mam ustawiony prescaler na 128 - 20MHz / 128 = 156,25 kHz czyli mieści się w przedziale 50k - 200kHz.<br /><br />[syntax=c]<br />ADMUX |= (1&lt;&lt;REFS0) ;<br />ADCSRA |= (1&lt;&lt;ADEN) | (1&lt;&lt;ADPS0) | (1&lt;&lt;ADPS1)| (1&lt;&lt;ADPS2);[/syntax]<br /><br />[syntax=c]<br />if (adc == 1){<br />setCurrentFont(&amp;DefaultFontInfo);<br />if (vBus == 1){<br />pomiarVbus = pomiar(0);<br />tft_fill_rect(175,95, 28,10, white);<br />tft_putint(175,95, pomiarVbus, black, white);         // kanal 0<br />}<br />if (inverter == 1)<br />pomiarRr = pomiar(1);<br />tft_fill_rect(96,55, 25,10, white);<br />tft_putint(96,55, pomiarRi, black, white);       // kanal 1<br />pomiarSr = pomiar(2);<br />tft_fill_rect(175,55, 25,10, white);<br />tft_putint(175,55, pomiarSi, black, white);// kanal 2<br />pomiarTr = pomiar(3);<br />tft_fill_rect(254,55, 25,10, white);<br />tft_putint(254,55, pomiarTi, black, white);// kanal 3<br />}<br />if (rectifire == 1){<br />pomiarRi = pomiar(4);<br />tft_fill_rect(96,75, 25,10, white);<br />tft_putint(96,75, pomiarRr, black, white);       // kanal 4<br />pomiarSi = pomiar(5);<br />tft_fill_rect(175,75, 25,10, white);<br />tft_putint(175,75, pomiarSr, black, white);// kanal 5<br />pomiarTi = pomiar(6);<br />tft_fill_rect(254,75, 25,10, white);<br />tft_putint(254,75, pomiarTr, black, white);// kanal 6<br />}<br />[/syntax]<br /><br />Moje pomiary nie muszą być precyzyjne co do miejsca po przecinku, bo mój pomiar np napięcia będzie do 1500V, wiec przy takim zakresie 932,1 czy 932,2 nie robi większej różnicy.<br /><br />I teraz proszę kolegów o pomoc, czy dobrze rozumiem: ustawienie 10 bit'owej rozdzielczości daje mi 1023 możliwe pomiary (licząc 0)<br />czyli nie mogę uzyskiwać wyników z podziałką co np. 0,1V ? mogę przypisać np ADC 1 = 1V czyli przy ADC 1023 = 1023V. Jeśli chciałbym dokonywać pomiaru do 1500V to pewnie muszę przyjąć podziałkę 2V tak ? czyli np ADC 50 = 100V. Dobrze rozumiem ?<br /><br />Jak bym nie liczył i jaki bym nie przyjął VREF to i tak mam 1024 zakres pomiarowy, prawda ?<br /><br />Żeby liczyć z większą dokładnością co do podziałki, musiałbym utworzyć zakresy (jak w multimetrze uniwersalnym) uwzględniając odpowiedni współczynnik podziału, a tego wolałbym uniknąć. Chociaż dokładność napięciowa z 2V podziałką też mogłaby być <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=213">Hass-pol</a> — 27 sie 2012, o 19:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-26T22:19:17+01:00</updated>
<published>2012-08-26T22:19:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13783#p13783</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13783#p13783"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13783#p13783"><![CDATA[
Hass-pol --&gt; zdecydowanie źle odbierasz to co mówię a szczególnie gdy piszesz że mogę cię mieć za nieuka. Ok jeśli czytałeś tylko to o ADC co w mojej książce to jest hmmm na prawdę strasznie mało (przyznaję się sam jak widzisz że mało napisałem na ten temat). Nie wiem też co może być strasznego w przyznaniu się np do tego że ciężko idzie czytanie not PDF np ze względu na słabszą znajomość angielskiego. Kurczę - sam piszę ci i przyznaję się że wcale nie znam super angielskiego, ale jeśli ktoś pyta czego nie rozumie a nocie a ja akurat wiem to chętnie wytłumaczę .... A na pewno nie opisywałem w książce wprost tego co jest w PDF'ie. Poza tym ktoś tu na naszym forum zdaje się kolega Jaglarz - przechowuje na swojej stronce różne PDFy do avr'ków w języku polskim więc i chociażby z nich można skorzstać. Więc nie rozumiem twojego oburzenia za to że zwracam tylko uwagę na tak istotną rzecz. A już na pewno nie mam zamiaru pisać za kogoś programu....<br /><br />I tym bardziej, że jak teraz napisałeś piszesz go w zakresie pomiarów o których do tej pory - od strony praktycznej, nie miałem zielonego pojęcia. Za to teraz przychodzi mi na myśl że rozwiązaniem które może warto ci podsunąć w takim przypadku jest skorzystanie z tzw trybu &quot;Free runing mode&quot; i to na przerwaniach. <br /><br />Bo co z tego że ty piszesz o jakichś 260us pomiędzy czym ? pomiędzy pomiarem pomiędzy zmianą kanału ? czy pomiędzy w ogóle kolejnymi próbkami ? Bo przecież skoro korzystasz aż z 8 kanałów to przecież zaczyna to mieć spore znaczenie. A jednocześnie po drodze może wykonujesz jakieś operacje na TFT (tu może się mylę) ale jeśli np takich szczegółów nawet nie możesz napisać bo się obrażasz jakbym ci dokuczał no to trudno ....<br /><br />Tymczasem - odpalenie pomiaru na przerwaniach z cykliczną zmianą kanałów, pozwoliłoby ci uniezależnić się z marszu od zależności czasowych związanych z operacjami na TFT a jednocześnie tak dobrać częstotliwość pomiarów aby uzyskać precyzyjnie największą możliwą częstotliwość samych pomiarów. <br /><br />Tymczasem ty cały czas trzymasz się tych &quot;ręcznych&quot; pomiarów ..... No i kolejna sprawa warto abyś się np zastanowił jaka precyzja przetwornika jest ci potrzebna ? bo jeśli niekoniecznie 10-bitów, i wystarczyłoby 8 bitów do ustalenia charakterystyki to pozwoliłoby ci dobierając najmniejszy możliwy preskaler uzyskać na prawdę największą możliwą do przyjęcia częstotliwość pomiarów .....<br /><br />no... wszystko ładnie - można się nagadać - tylko autor uciekł - trudno.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2012, o 22:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hass-pol]]></name></author>
<updated>2012-08-26T20:20:55+01:00</updated>
<published>2012-08-26T20:20:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13771#p13771</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13771#p13771"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13771#p13771"><![CDATA[
Czytałem o tym w wersji polskiej w Twojej książce na stronie 236 <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> proszę nie miej mnie za nieuka czy lenia, bo co bym nie napisał to wychodzi na to że nic nie czytam i liczę tylko na to że Wy napiszecie mi cały kod.<br /><br />Chcę wyznaczać charakterystykę prądową (trójfazową), zależy mi na tak częstym próbkowaniu jak to jest możliwe. Nie interesuje mnie teoria i twierdzenie Nyquista i wiem że 100Hz będzie za mało, bo w sieci nie mamy idealnego źródła, że o idealnie symetrycznym odbiorniku nie wspomnę. <br /><br />Zależy mi na zoptymalizowaniu tak kodu żebym mógł wykreślić przybliżoną charakterystykę.<br /><br />Poradzę sobie. Dziękuję za pomoc. Temat uważam za zamknięty.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=213">Hass-pol</a> — 26 sie 2012, o 20:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-26T19:51:35+01:00</updated>
<published>2012-08-26T19:51:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13766#p13766</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13766#p13766"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13766#p13766"><![CDATA[
Wiesz co ???? a może opisz co ty chcesz w ogóle osiągnąć bo może brniesz jak owad do świeczki żeby się poparzyć ? <br /><br />przy okazji przeczytaj sobie podrozdział w ADC od m32 pt:<br /><br />&quot;Prescaling and Conversion Timing&quot;<br /><br />i napisz ew czego tam nie rozumiesz to może będzie łatwiej wyjaśnić bo te przykłady które tu podajesz powodują że nie wiem w ogóle jak myśleć o tych twoich pytaniach.....<br /><br />dlatego jak mówię - napisz co mierzysz że aż tak często niby potrzebujesz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2012, o 19:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hass-pol]]></name></author>
<updated>2012-08-26T19:13:13+01:00</updated>
<published>2012-08-26T19:13:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13763#p13763</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13763#p13763"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13763#p13763"><![CDATA[
Tak robię.<br /><br />[syntax=c]pomiarRr = pomiar(1);<br /><br />uint16_t pomiar(uint8_t kanal)<br />{<br />ADMUX = (ADMUX &amp; 0xF8);<br />ADMUX = (1&lt;&lt;REFS0)| kanal;    <br />ADCSRA |= (1&lt;&lt;ADSC);<br />while ((ADCSRA &amp; (1&lt;&lt;ADSC)) ); <br />ADCSRA|=(1&lt;&lt;ADIF); <br />return  (ADCW);<br />}<br /><br />[/syntax]<br /><br />zastanawiałem się tylko czy zamiast:<br /><br />[syntax=c]<br />pomiarRr = pomiar(1);<br />_delay_us(260);<br />pomiarSr = pomiar(2);[/syntax]<br /><br />mogę zamiast opóźnienia wstawić funkcję wyświetlenia wyniku, zamiast wyświetlania wszystkich, po tym jak już je odczytam (sorry za za dużo zamiast <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> )<br /><br />[syntax=c]<br />pomiarRr = pomiar(1);<br />tft_fill_rect(96,55, 25,10, white);<br />tft_putint(96,55, pomiarRi, black, white);<br />pomiarSr = pomiar(2)<br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=213">Hass-pol</a> — 26 sie 2012, o 19:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-08-26T19:01:29+01:00</updated>
<published>2012-08-26T19:01:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13760#p13760</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13760#p13760"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13760#p13760"><![CDATA[
A dlaczego w przerwaniu od ADC nie zmieniać kanału i wrzucać pomiaru do bufora?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 26 sie 2012, o 19:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hass-pol]]></name></author>
<updated>2012-08-26T18:55:24+01:00</updated>
<published>2012-08-26T18:55:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13759#p13759</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13759#p13759"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13759#p13759"><![CDATA[
Czytałem to <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> spokojnie znam angielski.<br />Czyli mogę z zamkniętymi oczami, nic nie licząc zastosować przerwę 260us ? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Chodziło mi o praktyczne podejście. W teorii wszystko może pięknie wyglądać. <br /><br />Nigdy nie miałeś zderzenia teorii z rzeczywistością ? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=213">Hass-pol</a> — 26 sie 2012, o 18:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-08-26T17:59:19+01:00</updated>
<published>2012-08-26T17:59:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13751#p13751</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13751#p13751"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13751#p13751"><![CDATA[
Hass-pol --&gt; gdzieś czytałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> gdzieś coś pisano <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> gdzieś coś słyszałeś <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .....(nie wiesz jeszcze dlaczego)<br /><br />ale na te wszystkie twoje pytania są odpowiedzi i wyjaśnienia w PDF'ach szczególnie odnoście ADC i czasów pomiarów<br /><br />zobacz otwieram notę m32 i zaglądam na pierwszą stronę rozdziału o ADC<br /><br />no przecież od razu pewne informacje rzucają się aż w oczy<br /><br /><img src="http://forum.atnel.pl/_obrazki/o/54_f338853406aa2a7a50b9e29522dba3fa.jpg" alt="Obrazek" /><br /><br />rozumiałbym, żebyś napisał wcześniej np że może masz kłopoty z czytaniem not po angielsku, co rozumiem bo przecież nie każdy zna perfect angielski, ja też nie znam aż tak biegle tego języka ....<br /><br />ale nie wiem też czy nie dotarła do ciebie jedna z najważniejszych myśli, którą z uporem maniaka przypominam co chwilę w pierwszej książce - noty PDF , panowie - noty - to podstawa....<br /><br />Jeśli więc gdzieś coś tam w necie czytasz i nie wiesz o co chodzi to zawsze staraj się przynajmniej sprawdzić w nocie i jak tu czegoś nie rozumiesz to wtedy śmiało dopytuj .... bo zobacz sam ile czasu tracisz na te poszukiwania ....<br /><br />zaznaczyłem też fragment mówiący o czasach konwersji, i dalej w kolejnych podrozdziałach jest to wyjaśnione co do pojedynczych taktów - a ty piszesz że ci się udało co 1ms .... to nie jest kwestia czy się uda czy się nie uda .... <br /><br />jak odpowiednio dobierzesz preskaler ADC do F_CPU i będziesz działał w zakresie dopuszczalnej częstotliwości ADC, która też jest podana w PDF to uzyskasz dokładne czasy bez żadnej zbędnej zwłoki ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2012, o 17:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hass-pol]]></name></author>
<updated>2012-08-26T17:33:26+01:00</updated>
<published>2012-08-26T17:33:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13748#p13748</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13748#p13748"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13748#p13748"><![CDATA[
Witam,<br />Nie chce tworzyć nowego tematu, ten zszedł i tak na inny (choć cały czas w ADC) temat.<br />Mam pytanie to praktyków, chcę robić pomiary wszystkich 8 kanałów na raz.<br />Układ pomiarowy w przyszłości będzie na ATmega128 TQFP64, 20MHz. <br />Obecnie testy robię na ATmega32 20MHz. <br />Mirek napisał w książce że to w jakiej obudowie jest uC, ma znaczenie dla pomiaru (nie wiem jeszcze dlaczego).<br /><br />Mnie najbardziej interesuje najmniejszy możliwy czas pomiaru pomiędzy każdym kanałem? Chciałbym żeby uC miał czas &quot;złapać oddech&quot; i nie pogubić/zakłucić pomiaru. Obecnie mam 1ms i działa dobrze, ale gdzieś wyczytałem że można zejść do 250us.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=213">Hass-pol</a> — 26 sie 2012, o 17:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atomik1234]]></name></author>
<updated>2012-08-22T15:55:25+01:00</updated>
<published>2012-08-22T15:55:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13300#p13300</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13300#p13300"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13300#p13300"><![CDATA[
Dziękuję za szybką odpowiedź. Wszystko już zrozumiałem. Temat do zamknięcia.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=528">atomik1234</a> — 22 sie 2012, o 15:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xamrex]]></name></author>
<updated>2012-08-22T14:36:25+01:00</updated>
<published>2012-08-22T14:36:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13297#p13297</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13297#p13297"/>
<title type="html"><![CDATA[Re: problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13297#p13297"><![CDATA[
Na stronie głównej bloga jest świetny artykuł.<br /><!-- m --><a class="postlink" href="http://www.mirekk36.blogspot.com/2012/08/avr-gcc-domyslna-promocja-do-typu-int.html" >http://www.mirekk36.blogspot.com/2012/0 ... u-int.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=74">xamrex</a> — 22 sie 2012, o 14:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atomik1234]]></name></author>
<updated>2012-08-22T13:44:55+01:00</updated>
<published>2012-08-22T13:44:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13291#p13291</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13291#p13291"/>
<title type="html"><![CDATA[problem z przeliczaniem wartości pomiaru ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1453&amp;p=13291#p13291"><![CDATA[
Witam. Napisałem program obsługi miernika napięcia. Posiadam płytkę startową ATB.<br /><br />[syntax=c]<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &quot;HD44780.h&quot;<br />// ADMUX- konfiguracja przetwornika ADC<br />uint16_t pomiar(uint8_t kanal);<br />void przelicznik(uint16_t wartosc);<br />uint8_t cz_c=2;<br />uint8_t cz_u;<br />int main(void)<br />{<br />LCD_Initalize();<br /><br />ADMUX |= (1&lt;&lt;REFS0) ; //Vin napięcie porównawcze zasilanie proc<br />ADCSRA |= (1&lt;&lt;ADEN);   //włączenie przetwornika<br />ADCSRA|= (1&lt;&lt;ADPS1) | (1&lt;&lt;ADPS2);// preskaler  na 64<br />while(1)<br />{<br />LCD_Clear();<br />LCD_GoTo(0,0);<br />LCD_WriteText(&quot;wynik pomiaru:&quot;);<br />LCD_GoTo(1,1);<br />LCD_Write_int(pomiar(0));<br />przelicznik(pomiar(0));<br />LCD_GoTo(9,1);<br />LCD_Write_int(cz_c);<br />LCD_WriteText(&quot;.&quot;);<br />LCD_Write_int(cz_u);<br />_delay_ms(100);<br />}<br />}<br />uint16_t pomiar(uint8_t kanal)<br />{<br />ADMUX |= (ADMUX &amp; 0xF8) | kanal ;// ustawienie kanalu<br />ADCSRA |= (1&lt;&lt;ADSC); // START pomiaru<br />while (ADCSRA &amp; (1&lt;&lt;ADSC));//oczekiwanie na zakączenie pomiaru<br />return ADCW;// zwrot wartosci pomiaru<br /><br /><br />}<br /> void przelicznik(uint16_t wartosc)<br /> {<br /> // ADC*Vref/1024*Wpodziału<br /> uint32_t wynik;<br /><br /> wynik=wartosc*49*15;//wartosc przeliczona * 1000000<br />cz_c=wynik/100000;//czesc dziesietna<br />cz_u=(wynik/1000)%100;//czesc ulamkowa<br /><br /> }<br />[/syntax]<br /><br /><span style="color: #FF0000">EDIT: W przyszłości proszę używać znaczników syntax=c zamiast code</span><br /><br />Problem w moim programie jest taki że Przeliczona wartość pomiaru jest zupełnie inna od prawidłowej wartości. <br />Nie wiem gdzie popełniam błąd ponieważ gdy przeliczam wartość ADCW za pomocą kalkulatora według funkcji przelicznik to wartość wychodzi poprawna. A na wyświetlaczu pojawiają się dziwne wartości zmienych cz_c i cz_u.<br />Proszę o wskazówki gdzie popełniłem błąd.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=528">atomik1234</a> — 22 sie 2012, o 13:44</p><hr />
]]></content>
</entry>
</feed>