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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-07-19T13:04:22+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1302&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-07-19T13:04:22+01:00</updated>
<published>2012-07-19T13:04:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10229#p10229</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10229#p10229"/>
<title type="html"><![CDATA[Re: ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10229#p10229"><![CDATA[
Uwaga!!!!!! pisałem na forum już to niejednokrotnie w tej linii jest błąd:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />ADMUX <strong><span style="color: #FF0000"><span style="font-size: 150%; line-height: normal">|=</span></span></strong> (ADMUX &amp; 0xF8)| kanal;<br /></div><br /><br />ma być tak:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />ADMUX <strong><span style="color: #008000"><span style="font-size: 150%; line-height: normal">=</span></span></strong> (ADMUX &amp; 0xF8)| kanal;<br /></div><br /><br />(to nic że działa gdy jest tak jak w pierwszym przypadku z błędem - bo działa tylko dla jednego kanału, a dla dwóch albo przy zmianie będzie ZONK)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 lip 2012, o 13:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[developer85]]></name></author>
<updated>2012-07-19T10:41:04+01:00</updated>
<published>2012-07-19T10:41:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10224#p10224</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10224#p10224"/>
<title type="html"><![CDATA[Re: ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10224#p10224"><![CDATA[
A ja rozwiązałem to inaczej. Ustawiłem bit ADLAR i zwróciłem i przesunąłem wartość ADCW&gt;&gt;8.<br />[syntax=c]ADMUX |= (1&lt;&lt;REFS0)|(1&lt;&lt;ADLAR);[/syntax] <br /><br />[syntax=c]return (ADCW&gt;&gt;8);[/syntax]<br /><br />i działa super.<br />Wielkie dzięki za wytłumaczenie:)<br /><br />Pozdrawiam <br />Arek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=390">developer85</a> — 19 lip 2012, o 10:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2012-07-19T10:23:57+01:00</updated>
<published>2012-07-19T10:23:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10221#p10221</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10221#p10221"/>
<title type="html"><![CDATA[Re: ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10221#p10221"><![CDATA[
Możesz tak przerobić funkcję<br /><br />[syntax=c]uint8_t pomiar (uint8_t kanal)<br />{<br />        ADMUX |= (ADMUX &amp; 0xF8)| kanal; //ustawienie wybranego kanalu w rejestrze ADMUX<br />        ADCSRA |= (1&lt;&lt;ADSC);  //start pomiaru przez ustawienie bitu ADSC w rejestrze ADCSRA<br />        while (ADCSRA &amp; (1&lt;&lt;ADSC)); //oczekiwanie na koniec pomiaru (dopóki bit ADSC =1)<br />        return ADH;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 19 lip 2012, o 10:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2012-07-19T10:15:19+01:00</updated>
<published>2012-07-19T10:15:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10220#p10220</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10220#p10220"/>
<title type="html"><![CDATA[Re: ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10220#p10220"><![CDATA[
<div class="quotetitle">arko_go napisał(a):</div><div class="quotecontent"><br />return ADCW;<br /></div><br /><br />Zwracasz dwa bajty z pomiary (ADCH i ADCL scalone w jeden bajt) czyli 16bitów, ale sześciu pierwszych jako tako nie ma czyli de fakto 10 bitów.<br /><br /><div class="quotetitle">arko_go napisał(a):</div><div class="quotecontent"><br />lcd_int(pomiar (5));<br /></div><br /><br />Wyrzucasz na LCD liczbę int, czyli z zakresu −32768 do +32767. Dlatego zamiast np. liczby 40000 na wyświetlaczu otrzymasz wartość ujemną (licznik się przekręci). Jeśli chcesz rozdzielczość 8 bitową to musisz zrobić coś takiego<br /><br />[syntax=c]uint8_t wynik=( (pomiar(5) &amp; 0xFFFC ) &gt;&gt; 2);[/syntax]<br /><br />Działa to tak, że zerujesz dwa bity najmłodsze (najmniej znaczące) i zamiast 10 bitów masz już 8, ale należy całość jeszcze przesunąć o dwa miejsca w prawo, aby wynik zmieścił się w jednym bajcie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 19 lip 2012, o 10:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[developer85]]></name></author>
<updated>2012-07-19T09:26:17+01:00</updated>
<published>2012-07-19T09:26:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10217#p10217</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10217#p10217"/>
<title type="html"><![CDATA[ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1302&amp;p=10217#p10217"><![CDATA[
Witam.<br />Próbuje zrobić sterowanie silnikiem DC za pomocą PWM. PWM jest wysterowany za pomocą potencjometru, a wartośc jest pobierana z<br />ADC. <br />Potrzebuje rozdzielczość 8 bitową przetwornika - czyli włączam w rejestrze ADMUX |= (1&lt;&lt;ADLAR); ale nie wiem co dalej. <br />Zakres jest teraz do 32655 jak pokręcam dalej to przeskakuje na wartości ujemne.<br />[syntax=c]ADMUX |= (1&lt;&lt;REFS0)|(1&lt;&lt;ADLAR); // wybór napięcia odniesienia w postaci VCC<br />ADCSRA |= (1&lt;&lt;ADEN)|(1&lt;&lt;ADPS1)|(1&lt;&lt;ADPS0); // włączenie modułu ADC oraz ustawienie preskalera 64<br /><br />while(1)<br />{<br />lcd_cls();<br /><br />lcd_int(pomiar (5));<br />_delay_ms(100);<br />if( KEY_DOWN1 ) {<br />_delay_ms(80); //czas drgania styków<br /><br />OCR0;<br />_delay_ms(1);<br /><br />DC_PRAWO;<br />} else if ( KEY_DOWN2 ) {<br />_delay_ms(80);<br /><br />OCR0;<br />_delay_ms(1);<br /><br />   DC_LEWO;<br />} else {<br />DC_STOP;<br />}<br /><br /><br />}<br /><br /><br />}<br /><br />uint16_t pomiar (uint8_t kanal)<br />{<br />ADMUX |= (ADMUX &amp; 0xF8)| kanal; //ustawienie wybranego kanalu w rejestrze ADMUX<br />ADCSRA |= (1&lt;&lt;ADSC);  //start pomiaru przez ustawienie bitu ADSC w rejestrze ADCSRA<br />while (ADCSRA &amp; (1&lt;&lt;ADSC)); //oczekiwanie na koniec pomiaru (dopóki bit ADSC =1)<br />// po zakończeniu pomiaru, gdy bit ADSC=0, zwrócenie wyniku w postaci<br />// 16-to bitowej wartości z rejestrów ADCH i ADCL<br />return ADCW;<br />}[/syntax]<br /><br />Co to za rejestr ADCW?<br />Gdzie mogę ustawić na piechotę rejestry ADCH i ADCL??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=390">developer85</a> — 19 lip 2012, o 09:26</p><hr />
]]></content>
</entry>
</feed>