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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-05-13T22:12:28+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3107&amp;mode</id>
<entry>
<author><name><![CDATA[slen]]></name></author>
<updated>2013-05-13T22:12:28+01:00</updated>
<published>2013-05-13T22:12:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36879#p36879</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36879#p36879"/>
<title type="html"><![CDATA[Re: Brak aktualizacji pomiaru przez ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36879#p36879"><![CDATA[
Zachęty z książki o dużych możliwościach eclipse mnie zachęciły i prawie od początku go wykorzystuję (filmy oczwyiście oglądałem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ), ale niezależnie od tego czy pisałem ADCSR czy ADCSRA, eclipse nie wyżucało mi żadnych błędów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1318">slen</a> — 13 maja 2013, o 22:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-05-13T21:19:57+01:00</updated>
<published>2013-05-13T21:19:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36872#p36872</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36872#p36872"/>
<title type="html"><![CDATA[Re: Brak aktualizacji pomiaru przez ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36872#p36872"><![CDATA[
A jak miałeś nazwę ADCSR to nie pokazywały ci się WARNINGI ? albo błędy ?<br /><br />Przy okazji w czym piszesz ? może nie w Eclipse i dlatego nie zauważasz tych błędów ?<br /><br />jeśli nie to jak najszybciej przesiądź się na Eclipsika - obejrzyj lekcje VIDEO na płycie DVD dołączonej do książki ok?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 maja 2013, o 21:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[slen]]></name></author>
<updated>2013-05-13T20:43:35+01:00</updated>
<published>2013-05-13T20:43:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36866#p36866</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36866#p36866"/>
<title type="html"><![CDATA[Re: Brak aktualizacji pomiaru przez ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36866#p36866"><![CDATA[
Naniosłem dwie poprawki ( tą z ADCW, oraz ADMUX), do tego zmieniłem nazwy rejestrów ADCSR na ADCSRA i program działa poprawnie.<br />Dzięki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1318">slen</a> — 13 maja 2013, o 20:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-05-13T19:55:18+01:00</updated>
<published>2013-05-13T19:55:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36855#p36855</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36855#p36855"/>
<title type="html"><![CDATA[Re: Brak aktualizacji pomiaru przez ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36855#p36855"><![CDATA[
odnośnie tej linijki <br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">ADMUX |= (ADMUX &amp; 0xF8) | kanal;</div><br /><br />to powiedz mi zaglądasz choć czasem do WAŻNYCH aktualizacji do kodów z książki na naszej stronie? <br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/uaktualnienia-programow-do-dvd.html" >http://atnel.pl/uaktualnienia-programow-do-dvd.html</a><!-- m --><br /><br />jeśli nie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> to bardzo proszę bo tu jest babolek - który akurat w twoim wypadku nie ma znaczenia no ale im dalej tym bardziej się na nim przejedziesz<br /><br />kolejna rzecz, po co to?<br /><br />[syntax=c]adc = ADCH;                             // przekazanie zawartości rejestrów ADCH i ADCL<br />        adc = (adc&lt;&lt;8);                         // do zmiennej &quot;adc&quot; oraz zwrócenie zawartości zmiennej &quot;adc&quot;<br />        adc |= ADCL;                            // jako wynik działania funkcji[/syntax]<br /><br />skoro DOKŁADNIE to samo robi makro<br /><br />ADCW <br /><br />którego użyłem w książce a które zapewnia ci od razu AVR GCC ?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br /><div class="quotetitle">slen napisał(a):</div><div class="quotecontent"><br />to w zależności od stopnia nagrzania czujnika zaświeci odpowiednią ilość diod lecz potem nie aktualizuje pomiaru.<br /></div><br /><br />Bo masz źle skonstruowane warunki i powiedz mi w którym miejscu kody ty w ogóle próbujesz aktualizować pomiar ? bo czegoś nie rozumiem ? i co to u ciebie znaczy aktualizacja ok ?<br /><br />to wtedy coś pewnie uda się podpowiedzieć<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 13 maja 2013, o 19:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[slen]]></name></author>
<updated>2013-05-13T19:21:16+01:00</updated>
<published>2013-05-13T19:21:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36850#p36850</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36850#p36850"/>
<title type="html"><![CDATA[Brak aktualizacji pomiaru przez ADC.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3107&amp;p=36850#p36850"><![CDATA[
Witam  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />Piszę bo napotkałem problem nad którym już troche się głowię i nie mogę znaleźć rozwiązania.<br />Przerabiam teraz dział o ADC w książce Pana Kardasia i zbudowałem sobie prosty układ na ATmega8, kilka diod LED i dzielnik napięcia z czujnikiem który zmienia swój opór pod wpływem zmian temperatury (na pin ADC podawane jest napięcie z zakresu 1,5V - 2,7V w zależności od nagrzania czujnika). Niestety program nie działa do końca prawidłowo, tzn. jak podłącze napięcie do mikrokontrolera to w zależności od stopnia nagrzania czujnika zaświeci odpowiednią ilość diod lecz potem nie aktualizuje pomiaru. <br /><br />Oto kod:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />uint16_t adc = 0;// deklaracja zmiennej globalnej<br />uint16_t pomiar (uint8_t kanal); // deklaracja funkcji pomiaru<br /><br />// GŁÓWNA FUNKCJA programu<br />int main(void){<br /><br />// ***** wstępne ustawienia ADC *****<br />// wybór wewnętrznego napięcia odniesienia = 2,56V<br />ADMUX |= (1&lt;&lt;REFS1) | (1&lt;&lt;REFS0);<br />// włączenie modułu ADC oraz wybór preskalera na 64<br />ADCSR |= (1&lt;&lt;ADEN) | (1&lt;&lt;ADPS2) | (1&lt;&lt;ADPS1);<br /><br />DDRD |= 0xFF;   // cały port D pracuje jako wyjściowy - podłączone diody LED<br />PORTD |= 0xFF; // wygaszenie wszystkich diod LED<br />uint16_t wynik = 0;// deklaracja zmiennej przechowującej wynik pomiaru<br /><br />// nieskończona pętla, w której będziemy dokonywać pomiaru<br />// oraz wyświtlać wynik na diodach LED<br />while(1){<br />wynik = pomiar(3);// przekazanie wartości uzyskanej z pomiaru do zmiennej &quot;wynik&quot;<br />if(wynik &lt; 600) PORTD = ~(1&lt;&lt;PD0);// jeśli niska temp. zaświeć jedną diodę<br />else if(wynik &lt; 650) PORTD = ~((1&lt;&lt;PD1) | (1&lt;&lt;PD0));// temp. up = more LED<br />else if(wynik &lt; 700) PORTD = ~((1&lt;&lt;PD2) | (1&lt;&lt;PD1) |(1&lt;&lt;PD0));<br />else if(wynik &lt; 750) PORTD = ~((1&lt;&lt;PD3) | (1&lt;&lt;PD2) | (1&lt;&lt;PD1) |(1&lt;&lt;PD0));<br />else if(wynik &lt; 800) PORTD = ~((1&lt;&lt;PD4) | (1&lt;&lt;PD3) | (1&lt;&lt;PD2) | (1&lt;&lt;PD1) |(1&lt;&lt;PD0));<br />else if(wynik &lt; 850) PORTD = ~((1&lt;&lt;PD5) | (1&lt;&lt;PD4) | (1&lt;&lt;PD3) | (1&lt;&lt;PD2) | (1&lt;&lt;PD1) |(1&lt;&lt;PD0));<br />else if(wynik &lt; 900) PORTD = ~((1&lt;&lt;PD6) | (1&lt;&lt;PD5) | (1&lt;&lt;PD4) | (1&lt;&lt;PD3) | (1&lt;&lt;PD2) | (1&lt;&lt;PD1) |(1&lt;&lt;PD0));<br />else if(wynik &lt;1050) PORTD = 0x00;<br />}<br />}<br /><br />// DEFINIJA funkcji która dokonuje pomiaru na wybranym kanale<br />uint16_t pomiar (uint8_t kanal){<br />adc=0;<br />// ustawienie wybranego kanału ADC w rej. ADMUX<br />ADMUX |= (ADMUX &amp; 0xF8) | kanal;<br />// START pomiaru przez ustawienie bitu ADSC w rej. ADCSRA<br />ADCSR |= (1&lt;&lt;ADSC);<br />// oczekiwanie na koniec pomiaru (dopóki bit ADSC jest =1)<br />while( ADCSR &amp; (1&lt;&lt;ADSC));<br /><br />adc = ADCH;// przekazanie zawartości rejestrów ADCH i ADCL<br />adc = (adc&lt;&lt;8);// do zmiennej &quot;adc&quot; oraz zwrócenie zawartości zmiennej &quot;adc&quot;<br />adc |= ADCL;// jako wynik działania funkcji<br />return adc;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1318">slen</a> — 13 maja 2013, o 19:21</p><hr />
]]></content>
</entry>
</feed>