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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-05-21T13:38:54+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=11773&amp;mode</id>
<entry>
<author><name><![CDATA[Łukasz_R]]></name></author>
<updated>2015-05-21T13:38:54+01:00</updated>
<published>2015-05-21T13:38:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129772#p129772</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129772#p129772"/>
<title type="html"><![CDATA[Re: Przetwornik ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129772#p129772"><![CDATA[
Dzięki za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9968">Łukasz_R</a> — 21 maja 2015, o 13:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-05-21T13:25:51+01:00</updated>
<published>2015-05-21T13:25:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129771#p129771</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129771#p129771"/>
<title type="html"><![CDATA[Re: Przetwornik ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129771#p129771"><![CDATA[
<div class="quotetitle">jacekk232 napisał(a):</div><div class="quotecontent"><br />Chyba niedokładnie oglądałeś poradniki o ADC.<br /></div><br />Mi się wydaje, chociaż mogę się mylić - to niech mnie autor sprostuje, ale warto zacząć naukę C od podstaw czyli np od książki:<br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />a nie od samych poradników, bo niestety ten brak wiedzy o podstawach będzie się wciąż mścił i na każdym kroku kolega nie będzie wiedział co się dzieje w programie - gdy tylko coś źle przepisze. Poradniki proponuję traktować jako właśnie uzupełnienie do książek z wydawnictwa Atnel - wtedy wszystko ładnie się w głowie układa w jedną całość.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 21 maja 2015, o 13:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2015-05-21T13:15:44+01:00</updated>
<published>2015-05-21T13:15:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129770#p129770</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129770#p129770"/>
<title type="html"><![CDATA[Re: Przetwornik ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129770#p129770"><![CDATA[
Chyba niedokładnie oglądałeś poradniki o ADC.<br />Zobacz gdzie wrzuciłeś tą linie [syntax=c]wynik = pomiar (PA5);[/syntax]<br />Na początku funkcji main. A ta część kodu wykona się tylko raz, przy starcie programu. <br /><br />Po za tym próbujesz dokonać pomiaru zanim włączysz i odpowiednio ustawisz przetwornik ADC.<br /><br />Przenieś tą linie, w której dokonujesz pomiaru, do pętli while.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 21 maja 2015, o 13:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Łukasz_R]]></name></author>
<updated>2015-05-21T13:22:58+01:00</updated>
<published>2015-05-21T13:02:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129769#p129769</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129769#p129769"/>
<title type="html"><![CDATA[Przetwornik ADC]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11773&amp;p=129769#p129769"><![CDATA[
Witam,<br />jestem nowy na forum. Obejrzałem filmiki o przetworniku ADC i na ich podstawie chciałem napisać program, który będzie porównywał  poziom na wejściu ADC. Jeżeli poziom wyższy to wykonaj coś, jeżeli nie to coś innego. W związku z tym napisałem program, który wstawiam poniżej. Jednak wartość mojego pomiaru (wynik) zawsze jest taka sama, z pewnością mniejsza od 1, niezależnie czy podaje napięcie na nóżkę czy nie. I tutaj mam prośbę do Was abyście sprawdzili mój kod, czy czegoś w nim nie brakuje. Pracuje na Atmega16A jednak jako procesor wybieram Atmega16 a taktowanie 1MHz. <br /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />uint16_t pomiar (uint8_t kanal);<br /><br />#define REF_256 (1&lt;&lt;REFS1)|(1&lt;&lt;REFS0)<br />#define REF_VCC (1&lt;&lt;REFS0)<br />/*<br />#define LED (1&lt;&lt;PB0)<br />#define LED_ON PORTB |= LED<br />#define LED_OFF PORTB &amp;= ~LED<br />#define LED_TOG PORTB ^= LED<br /><br />#define LED2 (1&lt;&lt;PB1)<br />#define LED2_ON PORTB |= LED2<br />#define LED2_OFF PORTB &amp;= ~LED2<br />#define LED2_TOG PORTB ^= LED2<br />*/<br /><br />uint16_t wynik=0;<br />uint16_t porownanie=500;<br />int main(void){<br /><br />wynik = pomiar (PA5);<br /><br /><br />DDRB |= 0xff;<br /><br /><br />//inicjalizacja ADC<br />ADCSRA |= (1&lt;&lt;ADEN); //WŁĄCZENIE PRZETWORNIKA<br />ADCSRA |= (1&lt;&lt;ADPS2); //PRESKALER 16<br />ADMUX |= REF_256; //wybieramy napięcie odniesiania<br /><br />while(1){<br /><br />if (wynik&gt;porownanie){<br />PORTB = 0b00000000;<br />_delay_ms(1000);<br />PORTB = 0b00000001;<br />_delay_ms(1000);<br />}<br />else{<br />PORTB = 0b00001001;<br />_delay_ms(1000);<br />}<br />}<br /><br />}<br /><br />uint16_t pomiar (uint8_t kanal){<br />ADMUX = (ADMUX &amp; 0b11111000) | kanal;<br />ADCSRA |= (1&lt;&lt;ADSC); //start konwersji<br /><br />while (ADCSRA &amp; (1&lt;&lt;ADSC));<br /><br />return ADCW;<br />}[/syntax]<br /><br /><br />Jeżeli zaś chodzi o podłączenie układu jest ono analogiczne do tego z filmiku &quot;Przetwornik ADC w mikrokontrolerach AVR - CZĘŚĆ 03 &quot; (t: 10:38), jednak na nóżkę PA5 podaję bezpośrednio napięcie z potencjometru, który jest podłączony do zasilacza 5v, a napięcie na wyjściu sprawdzam miernikiem żeby nie przekraczało VREF. Masa zasilacza i układu z płytką są połączone. <br /><br />Jakie są przyczyny że program nie działa? Czy źle porównuje wartości pomiaru?<br /><br />Z góry dziękuję za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9968">Łukasz_R</a> — 21 maja 2015, o 13:02</p><hr />
]]></content>
</entry>
</feed>