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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-04-08T13:55:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=11315&amp;mode</id>
<entry>
<author><name><![CDATA[m@ciej]]></name></author>
<updated>2015-04-08T13:55:09+01:00</updated>
<published>2015-04-08T13:55:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11315&amp;p=125932#p125932</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11315&amp;p=125932#p125932"/>
<title type="html"><![CDATA[Re: Odczyt ADC na wielu kanałach, prośba o sprawdzenie kodu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11315&amp;p=125932#p125932"><![CDATA[
OK, dzięki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7141">m@ciej</a> — 8 kwi 2015, o 13:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2015-04-08T08:30:08+01:00</updated>
<published>2015-04-08T08:30:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11315&amp;p=125893#p125893</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11315&amp;p=125893#p125893"/>
<title type="html"><![CDATA[Re: Odczyt ADC na wielu kanałach, prośba o sprawdzenie kodu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11315&amp;p=125893#p125893"><![CDATA[
Metoda jak najbardziej słuszna, bo sam z takiej korzystam dla maksymalnej prędkości pętli.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 8 kwi 2015, o 08:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[m@ciej]]></name></author>
<updated>2015-04-08T06:36:36+01:00</updated>
<published>2015-04-08T06:36:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11315&amp;p=125891#p125891</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11315&amp;p=125891#p125891"/>
<title type="html"><![CDATA[Odczyt ADC na wielu kanałach, prośba o sprawdzenie kodu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11315&amp;p=125891#p125891"><![CDATA[
Witam.<br /><br />Po obejrzeniu niemalże wszystkich poradników na temat ADC, chcę zrobić pomiar ADC na wielu kanałach, wpisałem taki oto kod:<br /><br />[syntax=c]//Program dla układu: ADC na wielu kanałach<br />//Procesor: Atmega16<br />//Zegar: 8MHz (wewnętrzny)<br />//Autor: MaS<br />//Kompilowany: 8 kwi 2015<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define REF_256 (1&lt;&lt;REFS1) | (1&lt;&lt;REFS0)<br />#define REF_VCC (1&lt;&lt;REFS0)<br /><br />uint16_t pomiar&#91;7&#93;;<br />uint8_t licznik;<br /><br />int main(void)<br />{<br />// ########### Konfiguracja portów ###########<br />DDRA = 0; //wszystkie jako wejścia<br />DDRB = 0b11111111; //wszystkie jako wyjscia<br />DDRC = 0b11111111;<br />DDRD = 0b11111111;<br />// ###########konfiguracja ADC ############<br />ADCSRA |=(1&lt;&lt;ADEN); //włącz ADC<br />ADCSRA |= (1&lt;&lt;ADPS2) | (1&lt;&lt;ADPS1) | (1&lt;&lt;ADPS0);<br />ADMUX |=REF_VCC;<br />ADCSRA |=(1&lt;&lt;ADSC); //start pierwszej konwersji<br />//###################################<br /><br />while(1)<br />{<br />if(bit_is_clear(ADCSRA,ADSC))//jeśli bit skasowany, konwersja zaszła<br />{<br />pomiar&#91;licznik&#93;=ADCW; //wpisanie do tablicy kolejnych liczników<br />licznik +=1; //zwiększenie licznika o 1<br />if (licznik&gt;7) licznik=0;<br />ADMUX =(ADMUX &amp; 0xF8)|licznik; //przełączenie licznika na nast. kanał<br />ADCSRA |=(1&lt;&lt;ADSC); //start następnej konwersji<br />}<br />}<br />}[/syntax]<br /><br />Według mnie program powinien zadziałać tak:<br />- na początku polecenie pierwszej konwersji<br />- gdy bit jest wyzerowany, pobierz próbkę z kanału 0<br />- zwiększ licznik o 1<br />- sprawdź, czy nie przekroczono zakresu<br />- przełącz multiplekser na następny kanał<br />- wyślij polecenie następnej konwersji<br /><br />Czy moje rozumowanie (i kod) są prawidłowe?<br />Program celowo jest b. prosty, gdyż zależy mi na maksymalnej szybkości jego wykonywania. Potem dojdą jeszcze szybkie przerwania w celu generowania przebiegów dźwiękowych.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7141">m@ciej</a> — 8 kwi 2015, o 06:36</p><hr />
]]></content>
</entry>
</feed>