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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-07-21T18:21:01+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3609&amp;mode</id>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2013-07-21T18:21:01+01:00</updated>
<published>2013-07-21T18:21:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42623#p42623</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42623#p42623"/>
<title type="html"><![CDATA[Re: M32 i pomiar napięcia różnicowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42623#p42623"><![CDATA[
[syntax=c]/*<br /> * main1.c<br /> *<br /> *  Created on: 21-07-2013 <br /> *       Autor: janeczqu<br /> *<br /> */<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;util/delay.h&gt;<br />#include &quot;lcd44780.h&quot;<br /><br />uint16_t wynik;<br /><br />int main(void)<br />{<br />//robimy pomiar na 01101 ADC3 ADC2 10x<br />ADMUX |= (1&lt;&lt;MUX3) |(1&lt;&lt;MUX2) | (1&lt;&lt;MUX0);<br />//1 1 Internal 2.56V Voltage Reference with external capacitor at AREF pin<br />ADMUX |=  (1&lt;&lt;REFS0) | (1&lt;&lt;REFS1);<br />lcd_init();<br />lcd_cls();<br />for(;;)<br />{<br />lcd_cls();<br />ADCSRA |= (1 &lt;&lt; ADEN) |(1&lt;&lt;ADPS2)| (1 &lt;&lt; ADPS1); //prescaler 64 8mhz/64=125k<br />ADCSRA |= (1 &lt;&lt; ADSC); //pomiar<br />while (ADCSRA &amp; (1 &lt;&lt; ADSC));<br />wynik=ADCW;<br />if (wynik&gt;512)<br />{<br />wynik= wynik-512; <br />wynik= 512-wynik;<br />}<br />else <br />{<br />wynik =0-wynik;<br />}<br />lcd_int(wynik);<br />_delay_ms(200);<br />}<br />}[/syntax]<br /><br /><br />Dopiero teraz ruszyło, dzięki Mirku <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />dobra - samo rzutowanie nic nie da  przecież wynik jest TYLKO 10-bitowy trzeba to jakoś ręcznie zamienić np tak<br /></div><br />Chyba teraz siedziałem nad tym z dwie godziny zanim ostatecznie przybrało to taką formę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=823">janeczqu</a> — 21 lip 2013, o 18:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-21T16:12:23+01:00</updated>
<published>2013-07-21T16:12:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42604#p42604</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42604#p42604"/>
<title type="html"><![CDATA[Re: M32 i pomiar napięcia różnicowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42604#p42604"><![CDATA[
<div class="quotetitle">janeczqu napisał(a):</div><div class="quotecontent"><br />nadal ujemnych wartości nie widzę<br /></div><br /><br />bardziej mi chodzi o to czy widzisz wartości dodatnie większe niż 511 ? bo jeśli tak to może będzie trzeba zrobić rzutowanie na int ? nie mam tego teraz jak sprawdzić więc jak będzie mini-kod to szybciej nam sprawdzanie pójdzie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 18 minutach ]</span></strong><br /><br />dobra - samo rzutowanie nic nie da <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> przecież wynik jest TYLKO 10-bitowy trzeba to jakoś ręcznie zamienić np tak<br /><br />[syntax=c]if( ADCW&gt;512 ) return ADCW-512;<br />else return ADCW *-1;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 lip 2013, o 16:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2013-07-21T16:15:46+01:00</updated>
<published>2013-07-21T15:20:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42591#p42591</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42591#p42591"/>
<title type="html"><![CDATA[Re: M32 i pomiar napięcia różnicowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42591#p42591"><![CDATA[
1. za pomocą tej pętli chciałem wykonać 1000 pomiarów i je przeanalizować <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale ok, usuwam<br />2. poprawiam<br />3. co do wyników: nadal ujemnych wartości nie widzę<br />4. zaraz upraszczam kod maksymalnie i zobaczę czy coś się zmieni <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Edyta:<br />No i nowe testy przeprowadziłem na tym programie:<br /><br />[syntax=c]/*<br /> * main1.c<br /> *<br /> *  Created on: 21-07-2013 <br /> *       Autor: janeczqu<br /> *<br /> */<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;util/delay.h&gt;<br />#include &quot;lcd44780.h&quot;<br /><br />uint16_t wynik;<br /><br />int main(void)<br />{<br />//robimy pomiar na 01101 ADC3 ADC2 10x<br />ADMUX |= (1&lt;&lt;MUX3) |(1&lt;&lt;MUX2) | (1&lt;&lt;MUX0);<br />//1 1 Internal 2.56V Voltage Reference with external capacitor at AREF pin<br />ADMUX |= (1&lt;&lt;REFS1) | (1&lt;&lt;REFS0);<br />lcd_init();<br />lcd_cls();<br />for(;;)<br />{<br />lcd_cls();<br />ADCSRA |= (1 &lt;&lt; ADEN) |(1&lt;&lt;ADPS2)| (1 &lt;&lt; ADPS1); //prescaler 64 8mhz/64=125k<br />ADCSRA |= (1 &lt;&lt; ADSC); //pomiar<br />while (ADCSRA &amp; (1 &lt;&lt; ADSC));<br />wynik=ADCW;<br />lcd_int(wynik);<br />_delay_ms(200);<br />}<br />}[/syntax]<br /><br /><br /><br />Obserwacje:<br />-zwarte wejścia (tylko z sobą): wyświetlana wartość: przeważnie 0, sporadycznie 1023<br />-przy zwartych wejściach do masy lub vcc, Vref, dowolnego napięcia: wyniki podobne<br />-przy podaniu napięcia różnicowego na poziomie 1-2mV- 1ynik 1023 nie pojawił się nawet raz<br /><br /><br />Mam kolejne (mam nadzieję że tym razem poprawne) &quot;teorie&quot; dlaczego tak się dzieje, ale najpierw kolejne testy<br />o wynikach będę informował na bieżąco <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=823">janeczqu</a> — 21 lip 2013, o 15:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-21T14:53:25+01:00</updated>
<published>2013-07-21T14:53:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42581#p42581</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42581#p42581"/>
<title type="html"><![CDATA[Re: M32 i pomiar napięcia różnicowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42581#p42581"><![CDATA[
<div class="quotetitle">janeczqu napisał(a):</div><div class="quotecontent"><br />Nie wiem czy dobrze zmieniłem, ale wyniki takie same :/<br /></div><br /><br />ale wiesz co ? jak ja mam problemy w kodzie to staram się ograniczyć go do wielkości poziomki - czyli minimum i sprawdzania konkretnego miejsca. Ja się troszkę gubię po tej wypowiedzi bo nie wiem jakie wyniki są takie same ?<br /><br />proponowałbym zostawić w kodzie jedną funkcję do pomiaru różnicowego i wyświetlać jej wynik tylko na LCD, to wsio<br /><br />no i jak mówisz że wyniki są takie same to znaczy że co ? widzisz liczby ujemne ? czy widzisz liczby dodatnie w zakresie 0 - 1023 ? bo jeśli to drugie to coś trzeba poprawić - ale teraz rozumiesz że do analizy widziałbym kod w postaci poziomki a nie arbuza <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />poza tym takich kilka uwag luźnych do całego kodu<br /><br />1. weź tą całą pętlę<br /><br />[syntax=c]for (licznik=1;licznik&lt;1001;licznik++) {<br /><br />}[/syntax]<br /><br />zastąp po prostu:<br /><br />[syntax=c]while(1) {<br /><br />}[/syntax]<br /><br />tak jest zdrowiej<br /><br />2. polecenie <span style="color: #0040FF"><strong>sei();</strong></span> dawaj zawsze tuż przed pętlą główną programu while(1) a nie gdzieś na początku - tak też będzie zdrowiej<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 lip 2013, o 14:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2013-07-21T14:35:59+01:00</updated>
<published>2013-07-21T14:35:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42573#p42573</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42573#p42573"/>
<title type="html"><![CDATA[Re: M32 i pomiar napięcia różnicowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42573#p42573"><![CDATA[
Nie wiem czy dobrze zmieniłem, ale wyniki takie same :/<br />poprawiony kod:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 21-07-2013<br /> *      Author: janeczqu<br /> */<br /><br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;util/delay.h&gt;<br />#include&quot;uart/uart.h&quot;<br />#include &quot;lcd44780.h&quot;<br /><br />int16_t zmienna;<br />int16_t pomiar_p (void);<br />int16_t pomiar_k(void);<br />int16_t pomiar(void);<br />uint16_t licznik;<br /><br />int main(void)<br />{<br />uart_init(0, __UBRR0);<br />sei();<br /><br />ADCSRA |= (1 &lt;&lt; ADEN) |(1&lt;&lt;ADPS2)| (1 &lt;&lt; ADPS1); //prescaler 64 8mhz/64=125k<br /><br />uart_put_string(0, &quot;start pomiaru\r\n&quot;);<br />uart_put_string(0, &quot;ADC0 ADC0-ADC0 ADC1-ADC0 nr pomiaru&quot;);<br />uart_put_string(0, &quot;\r\n&quot;);<br /><br /><br />lcd_init();<br />lcd_cls();<br /><br />for (licznik=1;licznik&lt;1001;licznik++)<br />{<br />lcd_cls();<br />zmienna = (pomiar_p()); //robimy pomiar na 00010 ADC2<br />uart_put_int(0, zmienna);<br />uart_put_string(0, &quot; &quot;);<br />lcd_int (zmienna);<br />lcd_str(&quot; &quot;);<br />zmienna = (pomiar_k()); //robimy pomiar na 01100 ADC2 ADC2 10x<br />uart_put_int(0, zmienna);<br />uart_put_string(0, &quot; &quot;);<br />lcd_int(zmienna);<br />lcd_str(&quot; &quot;);<br />zmienna = (pomiar()); //robimy pomiar na 01101 ADC3 ADC2 10x<br />uart_put_int(0, zmienna);<br />uart_put_string(0, &quot; &quot;);<br />uart_put_int(0, licznik);<br />uart_put_string(0, &quot; &quot;);<br />lcd_int(zmienna);<br />uart_put_string(0, &quot;\r\n&quot;);<br />_delay_ms (50);<br />}<br />}<br />int16_t pomiar_p(void)<br />{<br />//robimy pomiar na 00010 ADC2          tak dla pewnoci i porównania<br />ADMUX =0;<br />ADMUX |= (1&lt;&lt;MUX1); // adc 2<br />ADMUX |= (1&lt;&lt;REFS1) | (1&lt;&lt;REFS0); //1 1 Internal 2.56V Voltage Reference with external capacitor at AREF pin<br />ADCSRA |= (1 &lt;&lt; ADEN) |(1&lt;&lt;ADPS2)| (1 &lt;&lt; ADPS1); //prescaler 64 8mhz/64=125k<br />ADCSRA |= (1 &lt;&lt; ADSC); //pomiar<br />while (ADCSRA &amp; (1 &lt;&lt; ADSC));<br />return ADCW ;<br />}<br /><br />int16_t pomiar_k(void)<br />{<br />//robimy pomiar na 01100 ADC2 ADC2 10x pomiar &quot;błędu&quot; WO<br />ADMUX |= (1&lt;&lt;MUX3) | (1&lt;&lt;MUX2);<br />ADMUX |= (1&lt;&lt;REFS1) | (1&lt;&lt;REFS0); //1 1 Internal 2.56V Voltage Reference with external capacitor at AREF pin<br />ADCSRA |= (1 &lt;&lt; ADEN) |(1&lt;&lt;ADPS2)| (1 &lt;&lt; ADPS1); //prescaler 64 8mhz/64=125k<br />ADCSRA |= (1 &lt;&lt; ADSC); //pomiar<br />while (ADCSRA &amp; (1 &lt;&lt; ADSC));<br />return ADCW ;<br />}<br />int16_t pomiar(void)<br />{<br />//robimy pomiar na 01101 ADC3 ADC2 10x pomiar własciwy<br />ADMUX |= (1&lt;&lt;MUX3) |(1&lt;&lt;MUX2) | (1&lt;&lt;MUX0);<br />ADMUX |= (1&lt;&lt;REFS1) | (1&lt;&lt;REFS0); //1 1 Internal 2.56V Voltage Reference with external capacitor at AREF pin<br />ADCSRA |= (1 &lt;&lt; ADEN) |(1&lt;&lt;ADPS2)| (1 &lt;&lt; ADPS1); //prescaler 64 8mhz/64=125k<br />ADCSRA |= (1 &lt;&lt; ADSC); //pomiar<br />while (ADCSRA &amp; (1 &lt;&lt; ADSC));<br />return ADCW ;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=823">janeczqu</a> — 21 lip 2013, o 14:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-07-21T10:42:24+01:00</updated>
<published>2013-07-21T10:42:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42551#p42551</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42551#p42551"/>
<title type="html"><![CDATA[Re: M32 i pomiar napięcia różnicowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42551#p42551"><![CDATA[
Najpierw dopytam o kilka rzeczy, czy zwrócił kolega uwagę na dość ważne informacje ze strony <span style="color: #0040FF">251 <strong>bluebooka</strong></span> ?<br /><br />Czy kolega zwrócił uwagę na ten tekst z noty PDF ?<br /><br /><img src="http://forum.atnel.pl/_obrazki/o/54/040e0fe06089b0c617ede21d68fea210.jpg" alt="Obrazek" /><br /><br />a już tłumaczę dlaczego się upewniam, ano dlatego że kolega pisze tak:<br /><br /><div class="quotetitle">janeczqu napisał(a):</div><div class="quotecontent"><br />wg. mojej wiedzy powinien wynosić on 512 plus minus parę %, tu natomiast wynosi 0 lub wartości w pobliżu 1023<br /></div><br /><br />widzi kolega ? .... nie może być wartości 1023 - ona nie może się u kolegi pojawiać ... chyba że ? no chyba właśnie że kolega nie dostrzegł tego kociego niuansu jaki jest w prockach ATmega - czyli ograniczenia zakresu do od -512 do +511 <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> czyli wartość pomiaru trzeba sobie zamienić na typ integer i obserwować jako liczbę ze znakiem wtedy NIGDY nie pojawi się wartość 1023 z ADC (dodam hmm może przypomnę bo w bluebooku piszę o tym, procki ATtiny mierzą od 0 do 1023 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> czyli dlatego mamy większy zakres )<br /><br />a pomiary zaczną wydawać się prawidłowe<br /><br />to na razie tak na szybko - informacja - proszę to przetrawić i sprawdzić a jak jeszcze będzie coś niejasne to proszę pytać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 lip 2013, o 10:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2013-07-21T10:13:37+01:00</updated>
<published>2013-07-21T10:13:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42549#p42549</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42549#p42549"/>
<title type="html"><![CDATA[M32 i pomiar napięcia różnicowego]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3609&amp;p=42549#p42549"><![CDATA[
Ostatnim czasem &quot;bawię&quot; się (albo raczej próbuję) z pomiarem różnicowym za pomocą procesora M32. Poniżej listing programu który wyświetla wyniki trzech pomiarów zarówno na ekranie za pomocą terminala (oraz genialnego softu napisanego przez kolegę Antystatyczny) jak i wyświetlacza LCD 2x16. M32, taktowanie oscylatorem wewnętrznym 8MHz:<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 21-07-2013<br /> *      Author: janeczqu<br /> */<br /><br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;util/delay.h&gt;<br />#include&quot;uart/uart.h&quot;<br />#include &quot;lcd44780.h&quot;<br /><br />uint16_t zmienna;<br />uint16_t pomiar_p (void);<br />uint16_t pomiar_k(void);<br />uint16_t pomiar(void);<br />uint16_t licznik;<br /><br />int main(void)<br />{<br />uart_init(0, __UBRR0);<br />sei();<br /><br />ADCSRA |= (1 &lt;&lt; ADEN) |(1&lt;&lt;ADPS2)| (1 &lt;&lt; ADPS1); //prescaler 64 8mhz/64=125k<br /><br />uart_put_string(0, &quot;start pomiaru\r\n&quot;);<br />uart_put_string(0, &quot;ADC0 ADC0-ADC0 ADC1-ADC0 nr pomiaru&quot;);<br />uart_put_string(0, &quot;\r\n&quot;);<br /><br /><br />lcd_init();<br />lcd_cls();<br /><br />while (1)<br />{<br />for (licznik=1;licznik&lt;1001;licznik++)<br />{<br />lcd_cls();<br />zmienna = (pomiar_p()); //robimy pomiar na 00010 ADC2<br />uart_put_int(0, zmienna);<br />uart_put_string(0, &quot; &quot;);<br />lcd_int (zmienna);<br />lcd_str(&quot; &quot;);<br />zmienna = (pomiar_k()); //robimy pomiar na 01100 ADC2 ADC2 10x<br />uart_put_int(0, zmienna);<br />uart_put_string(0, &quot; &quot;);<br />lcd_int(zmienna);<br />lcd_str(&quot; &quot;);<br />zmienna = (pomiar()); //robimy pomiar na 01101 ADC3 ADC2 10x<br />uart_put_int(0, zmienna);<br />uart_put_string(0, &quot; &quot;);<br />uart_put_int(0, licznik);<br />uart_put_string(0, &quot; &quot;);<br />lcd_int(zmienna);<br />uart_put_string(0, &quot;\r\n&quot;);<br />_delay_ms (50);<br />}<br />}<br /><br />}<br />uint16_t pomiar_p(void)<br />{<br />//robimy pomiar na 00010 ADC2          tak dla pewnoci i porównania<br />ADMUX =0;<br />ADMUX |= (1&lt;&lt;MUX1); // adc 2<br />ADMUX |= (1&lt;&lt;REFS1) | (1&lt;&lt;REFS0); //1 1 Internal 2.56V Voltage Reference with external capacitor at AREF pin<br />ADCSRA |= (1 &lt;&lt; ADEN) |(1&lt;&lt;ADPS2)| (1 &lt;&lt; ADPS1); //prescaler 64 8mhz/64=125k<br />ADCSRA |= (1 &lt;&lt; ADSC); //pomiar<br />while (ADCSRA &amp; (1 &lt;&lt; ADSC));<br />return ADCW ;<br />}<br /><br />uint16_t pomiar_k(void)<br />{<br />//robimy pomiar na 01100 ADC2 ADC2 10x pomiar &quot;błędu&quot; WO<br />ADMUX |= (1&lt;&lt;MUX3) | (1&lt;&lt;MUX2);<br />ADMUX |= (1&lt;&lt;REFS1) | (1&lt;&lt;REFS0); //1 1 Internal 2.56V Voltage Reference with external capacitor at AREF pin<br />ADCSRA |= (1 &lt;&lt; ADEN) |(1&lt;&lt;ADPS2)| (1 &lt;&lt; ADPS1); //prescaler 64 8mhz/64=125k<br />ADCSRA |= (1 &lt;&lt; ADSC); //pomiar<br />while (ADCSRA &amp; (1 &lt;&lt; ADSC));<br />return ADCW ;<br />}<br />uint16_t pomiar(void)<br />{<br />//robimy pomiar na 01101 ADC3 ADC2 10x pomiar własciwy<br />ADMUX |= (1&lt;&lt;MUX3) | (1&lt;&lt;MUX0);<br />ADMUX |= (1&lt;&lt;REFS1) | (1&lt;&lt;REFS0); //1 1 Internal 2.56V Voltage Reference with external capacitor at AREF pin<br />ADCSRA |= (1 &lt;&lt; ADEN) |(1&lt;&lt;ADPS2)| (1 &lt;&lt; ADPS1); //prescaler 64 8mhz/64=125k<br />ADCSRA |= (1 &lt;&lt; ADSC); //pomiar<br />while (ADCSRA &amp; (1 &lt;&lt; ADSC));<br />return ADCW ;<br />}[/syntax]<br /><br />Program kompiluje się bez żadnych błędów czy ostrzeżeń. Niestety wyniki pomiarów są całkowicie odległe od rzeczywistości (dotyczy napięcia różnicowego). Poniżej w pliku wyniki skopiowane z terminala. Wszystkie wejścia podłączone do masy.<br /><br />Jak widać w przedstawionym logu:<br />-pomiar napięcia na ADC2 wykonywany jest prawidłowo- przy wejściu zwartym do masy wynik wynosi 0<br />-pomiar &quot;błędu&quot; wewnętrznego WO w procesorze - wynik jest błędny a w dodatku niestabilny - wg. mojej wiedzy powinien wynosić on 512 plus minus parę %, tu natomiast wynosi 0 lub wartości w pobliżu 1023<br />-pomiar napięcia różnicowego- wyniki nie są stabilne- często pojawia się maksymalny (1023 lub wartości zbliżone)<br /><br />I teraz garść pytań: czy to ja coś robię czy ten procek pod względem pomiarów różnicowych to kompletna porażka? Producent co prawda pod * informuje nas: &quot;The differential input channels are not tested for devices in PDIP Package. This feature is only guaranteed to work for devices in TQFP and QFN/MLF Packages&quot; ale dotyczy to g=200x, w moim przypadku wykorzystuję kanały z g=10x.<br />Nie wymagam jakiegoś super dokładnego pomiaru, ale nie chcę też umieszczać zewnętrznego WO <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=823">janeczqu</a> — 21 lip 2013, o 10:13</p><hr />
]]></content>
</entry>
</feed>