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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-11-10T19:30:31+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13524&amp;mode</id>
<entry>
<author><name><![CDATA[mglowinski93]]></name></author>
<updated>2015-11-10T19:30:31+01:00</updated>
<published>2015-11-10T19:30:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=145004#p145004</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=145004#p145004"/>
<title type="html"><![CDATA[Re: Przetwornik ADC w pętli]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=145004#p145004"><![CDATA[
Rozwiązałem problem<br /><br />ustawienia ADC :<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">ADCSRA |= (1 &lt;&lt; ADPS2) | (1 &lt;&lt; ADPS1) | (0 &lt;&lt; ADPS0); //Podział 8MHz przez 64 (zakres musi byc miedzy 50kHz a 200kHz) <br />ADMUX |= ((1 &lt;&lt; REFS0)|(0&lt;&lt; REFS1)); //Vref to napięcie zasilania <br />ADMUX |= (0 &lt;&lt; ADLAR); // wynik przesuniety do lewej, caly wynik znaczacy w ADCH, ostatnie bity (po przecinku) w ADCL <br />ADMUX |= ((0 &lt;&lt; MUX1)|(0&lt;&lt; MUX2)|(0 &lt;&lt; MUX3)|(0&lt;&lt; MUX4)|(0&lt;&lt;MUX1)); //Ustawiamy ADC0 jako aktywne <br />ADCSRA |= (1 &lt;&lt; ADATE); // to wlacza przetwornik w tryb dzialania ciaglego <br />ADCSRA |= (1 &lt;&lt; ADEN); // to wlacza przetwornik <br />ADCSRA |= (1 &lt;&lt; ADSC); // start przetwarzania od tego momentu adc mierzy w kolko</div><br /><br />zmieniłem kod <div class="codetitle"><b>Code:</b></div><div class="codecontent">a=(0b00000011&amp;ADCH)*256+ADCL </div> na <div class="codetitle"><b>Code:</b></div><div class="codecontent">a=ADCW</div>, choć nie wiem co to za różnica <br /><br />dodatkowo zmieniłem opóźnienie z 500 ms na 1 ms i wszystko zaczęło pięknie działać<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5183">mglowinski93</a> — 10 lis 2015, o 19:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mglowinski93]]></name></author>
<updated>2015-11-10T09:10:13+01:00</updated>
<published>2015-11-10T09:10:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=144962#p144962</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=144962#p144962"/>
<title type="html"><![CDATA[Re: Przetwornik ADC w pętli]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=144962#p144962"><![CDATA[
Nawet gry umieściłem ADCSRA |= (1&lt;&lt;ADSC) w pętli while to i tak nie pomogło ;-/<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 50 minutach ]</span></strong><br /><br />Próbowałem też coś takiego :<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">ADCSRA |= (1 &lt;&lt; ADPS2) | (1 &lt;&lt; ADPS1) | (1 &lt;&lt; ADPS0); // podzial F_cpu przez 128, ma być 50-200KHz<br />ADMUX |= ((1 &lt;&lt; REFS0)|(0&lt;&lt; REFS1)); <br />ADMUX |= (0 &lt;&lt; ADLAR); <br />ADMUX |= ((0 &lt;&lt; MUX1)|(0&lt;&lt; MUX2)|(0 &lt;&lt; MUX3)|(0&lt;&lt; MUX4)|(0&lt;&lt;MUX1)); <br />ADCSRA |= (1 &lt;&lt; ADATE); <br />ADCSRA |= (1 &lt;&lt; ADEN);<br />ADCSRA |= (1 &lt;&lt; ADSC); <br /></div><br />Ale też nie działa<br /><br />Może problem jest w innym miejscu z kodzie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5183">mglowinski93</a> — 10 lis 2015, o 09:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2015-11-10T00:06:42+01:00</updated>
<published>2015-11-10T00:06:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=144955#p144955</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=144955#p144955"/>
<title type="html"><![CDATA[Re: Przetwornik ADC w pętli]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=144955#p144955"><![CDATA[
Przede wszystkim wstaw kod wg tej instrukcji <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><br /><br />Ta linia włącza pomiar [syntax=c]ADCSRA |= (1&lt;&lt;ADSC);[/syntax]<br />A gdzie się ona znajduje w twoim programie? Na początku funkcji main przed pętlą główną. Czyli po starcie programu następuje jednorazowy pomiar, potem program przechodzi do pętli głównej, w której nie ma polecenia dokonania pomiaru.<br /><br />Polecam obejrzenie tych poradników<br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/06/przetwornik-adc-w-avr-dla-poczatkujacych.html" >http://mirekk36.blogspot.com/2013/06/pr ... acych.html</a><!-- m --><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/06/przetwornik-adc-w-avr-czesc-02.html" >http://mirekk36.blogspot.com/2013/06/pr ... sc-02.html</a><!-- m --><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/06/przetwornik-adc-w-avr-czesc-03.html" >http://mirekk36.blogspot.com/2013/06/pr ... sc-03.html</a><!-- m --><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/06/przetwornik-adc-w-avr-czesc-04.html" >http://mirekk36.blogspot.com/2013/06/pr ... sc-04.html</a><!-- m --><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/07/przetwornik-adc-w-avr-czesc-05.html" >http://mirekk36.blogspot.com/2013/07/pr ... sc-05.html</a><!-- m --><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/12/przetwornik-adc-czesc-06.html" >http://mirekk36.blogspot.com/2013/12/pr ... sc-06.html</a><!-- m --><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2014/02/avr-adc-usrednianie-czyli-cyfrowy-filtr.html" >http://mirekk36.blogspot.com/2014/02/av ... filtr.html</a><!-- m --><br /><br />Trochę tego jest ale warto. Na pewno wiele ci się wyjaśni.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 10 lis 2015, o 00:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mglowinski93]]></name></author>
<updated>2015-11-09T23:22:35+01:00</updated>
<published>2015-11-09T23:22:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=144952#p144952</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=144952#p144952"/>
<title type="html"><![CDATA[Przetwornik ADC w pętli]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13524&amp;p=144952#p144952"><![CDATA[
Witam, <br />chciałem zrobić cykliczny odczyt wartości napięcia na mikrokontrolerze ATmega32. <br />Kod PRAWIE działa, aby odświeżyć pomiar muszę wgrać panownie program do ATmegi. <br />Gdzie może być problem? <br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#include&lt;avr/io.h&gt;<br />#include&lt;util/delay.h&gt;<br />#include&quot;HD44780.h&quot;<br /><br />volatile int a=0;<br />volatile float wynikV=0;<br />volatile int calosc=0;<br />volatile int reszta;<br />char wynik&#91;4&#93;;<br />char wynik2&#91;4&#93;;<br /><br />int main(void)<br />{<br /><br />ADMUX|=(1&lt;&lt;REFS0);<br />ADCSRA|=(1&lt;&lt;ADEN)|(1&lt;&lt;ADPS2)|(1&lt;&lt;ADPS1)|(1&lt;&lt;ADPS0)|(1&lt;&lt;MUX0)|(1&lt;&lt;MUX2);<br />ADCSRA|=(1&lt;&lt;ADSC);<br />   LCD_Initalize();   //inicjalizacja LCD<br /><br /><br />   LCD_GoTo(0, 0);      //Ustawienie kursora w pozycji (0,0)<br />   LCD_WriteText(&quot;Napiecie : &quot;);<br />   LCD_GoTo(16,0);<br />   LCD_WriteText(&quot;Volt&quot;);<br />   LCD_GoTo(12,0);<br />   LCD_WriteText(&quot;,&quot;);<br /><br /><br /><br />   while(1)<br />   {<br />            a=(0b00000011&amp;ADCH)*256+ADCL;<br />            wynikV=a*5;<br />            wynikV=wynikV/1023;<br />            calosc=wynikV;<br />            reszta=wynikV*100-calosc*100;<br /><br />            itoa(calosc,wynik,10);<br />            itoa(reszta,wynik2,10);<br />            LCD_GoTo(11,0);<br />            LCD_WriteText(wynik);<br /><br />            LCD_GoTo(13,0);<br />            LCD_WriteText(wynik2);<br />           _delay_ms(500);<br />}<br />return 0;<br />}<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5183">mglowinski93</a> — 9 lis 2015, o 23:22</p><hr />
]]></content>
</entry>
</feed>