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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-10-24T21:51:11+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1103&amp;mode</id>
<entry>
<author><name><![CDATA[szymon12w]]></name></author>
<updated>2014-10-24T21:51:11+01:00</updated>
<published>2014-10-24T21:51:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=100557#p100557</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=100557#p100557"/>
<title type="html"><![CDATA[Re: ADC - ADIF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=100557#p100557"><![CDATA[
Nie, te zapisy są błędne, musisz odczytać wartości z rejestrów, a samo ADIF to tylko makro do liczby 4, a ADSC to makro liczby 6.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2336">szymon12w</a> — 24 paź 2014, o 21:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2014-10-24T21:22:07+01:00</updated>
<published>2014-10-24T21:22:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=100553#p100553</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=100553#p100553"/>
<title type="html"><![CDATA[Re: ADC - ADIF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=100553#p100553"><![CDATA[
Cz poprawny jest też zapis skrócony:<br />[syntax=c]while(!ADIF);[/syntax]<br />lub<br />[syntax=c]while(ADSC);[/syntax]<br />??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 24 paź 2014, o 21:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Michal_PB1]]></name></author>
<updated>2012-05-23T16:01:14+01:00</updated>
<published>2012-05-23T16:01:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=6955#p6955</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=6955#p6955"/>
<title type="html"><![CDATA[Re: ADC - ADIF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=6955#p6955"><![CDATA[
aha, rozumiem różnice i dziękuję za wskazanie błędu jak i za wytłumaczenie <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=97">Michal_PB1</a> — 23 maja 2012, o 16:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-05-23T15:19:04+01:00</updated>
<published>2012-05-23T15:19:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=6954#p6954</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=6954#p6954"/>
<title type="html"><![CDATA[Re: ADC - ADIF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=6954#p6954"><![CDATA[
Jest mała różnica w działaniu ADSC i ADIF<br /><br /><br />ADSC - jest tak długo ustawiony na 1 jak długo trwa pomiar i po tym fakcie jest zerowany przez procek<br /><br />ADIF - to flaga przerwania i jest ona zapalana gdy pomiar zostanie ukończony<br /><br />oczywiście programowo można sprawdzać i to i to<br /><br />tylko że w przypadku ADSC czekamy w pętli aż się wyzeruje<br /><br />natomiast w przypadku ADIF czekamy aż pojawi się jedynka<br /><br />oczywiście po zezwoleniu na pomiar czyli po ustawieniu ADSC na jeden<br /><br />ty masz w kodzie błąd bo masz tak<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">while(ADCSRA &amp; (1&lt;&lt;ADIF)) </div><br /><br />a gdzie jest średnik na końcu ? z tego wynika że bez średnika gdy zostanie ustawiona flaga czyli pomiar zakończony do dopiero wtedy wyświetli się coś na LCD. Ale że i tak to wszystko odbywa się strasznie szybko to dla twoich oczu nie ma to żadnej różnicy.<br /><br />powinieneś mieć albo tak:<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">while( !( ADCSRA &amp; (1&lt;&lt;ADIF)) ) ;</div><br /><br />czyli po zezwoleniu na pomiar trwa pętla nieskończona aż do czasu gdy flaga będzie = 1<br /><br />albo powinieneś tak:<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">while( ADCSRA &amp; (1&lt;&lt;ADSC) ) ;</div><br /><br />czyli pętla trwa dotąd dokąd bit ADSC jest = 1<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 23 maja 2012, o 15:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Michal_PB1]]></name></author>
<updated>2012-05-23T14:54:51+01:00</updated>
<published>2012-05-23T14:54:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=6951#p6951</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=6951#p6951"/>
<title type="html"><![CDATA[ADC - ADIF]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1103&amp;p=6951#p6951"><![CDATA[
Witam Serdecznie<br /><br />Pisząc program do obsługi ADC (ATmega8), mam jedną niepewność mianowicie w nocie widnieje:<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />After the conversion is complete (ADIF is high), the conversion result can be found in the ADC<br />Result Registers (ADCL, ADCH).<br /></div><br />czyli, że po zakończeniu konwersji ADIF przyjmuje stan wysoki - 1 i wtedy można odczytać wartość pomiaru z bitów ADCL i ADCH<br />i tu wszystko jest jasne tylko teraz przeglądając program napisany w książce nie sprawdza się ADIF, lecz ADSC i teraz nie wiem czy ta wersja jest poprawna z ADIF. Dodam, że testowałem z ADIF jak i również ADSC i obie działają tak samo. Poniżej mój program<br /><br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2012-05-20<br /> *      Author: Michal_PB1<br /> */<br /><br />//Dołączenie podstawowych bibliotek<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//Dolaczenie wlasnych bibliotek<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />//Główna funkcja<br />int main (void)<br />{<br /><br />//Ustawienia ADC<br /><br />//konwersja zakonczona ADIF = 1<br />//wybor napiecia odniesienia REFS0..1<br />ADMUX |= (1&lt;&lt;REFS1 | 1&lt;&lt;REFS0);//napiecie odniesienia 2,56V<br />//wybor kanału ADC do pomiary MUX0..3<br />//wlaczenie przetwornika ADC poprzez ustawienie stanu H do ADEN = 1<br />ADCSRA |= (1&lt;&lt;ADEN);//wlaczenie przetwornika ADC<br />//ustawienia preskalera ADPS0..2<br />ADCSRA |= (1&lt;&lt;ADPS2 | 1&lt;&lt;ADPS1 | 1&lt;&lt;ADPS0);//preskaler 128 (62,5kHz)<br />//rozdzielczosc 8-bitowa ADLAR = 1 odczyt z ADCH<br />ADMUX |= (1&lt;&lt;ADLAR);//rozdzielczosc 8-bitowa (256) - odczyt ADCH<br /><br />lcd_init();//inicjalizacja LCD<br /><br />while(1)<br />{<br />lcd_cls();<br />lcd_locate(0,0);<br />ADMUX |= (1&lt;&lt;MUX2 | 1&lt;&lt;MUX0);//kanal ADC5<br />ADCSRA |= (1&lt;&lt;ADSC);//rozpoczecie konwersji<br />while(ADCSRA &amp; (1&lt;&lt;ADIF))//sprawdzanie zakonczenia konwersji<br />lcd_int(ADCH);//odczyt pomiaru<br />_delay_ms(200);<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=97">Michal_PB1</a> — 23 maja 2012, o 14:54</p><hr />
]]></content>
</entry>
</feed>