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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-05-11T15:56:35+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=3089&amp;mode</id>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2013-05-11T15:56:35+01:00</updated>
<published>2013-05-11T15:56:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3089&amp;p=36707#p36707</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3089&amp;p=36707#p36707"/>
<title type="html"><![CDATA[Re: ATMEGA ADC i wewnętrzny wzmacniacz.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3089&amp;p=36707#p36707"><![CDATA[
[syntax=c]ADMUX = ADMUXVAL | 9;//ADC1 Positive Differential Input, ADC0 Negative Differentail Input[/syntax]<br /> spróbuj zmienić na: <br />[syntax=c]ADMUX |= (1&lt;&lt;MUX0) | (1&lt;&lt;MUX3);[/syntax]<br /><br />Ale mogę się mylić <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=823">janeczqu</a> — 11 maja 2013, o 15:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ublizzard]]></name></author>
<updated>2013-05-11T12:59:26+01:00</updated>
<published>2013-05-11T12:59:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3089&amp;p=36700#p36700</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3089&amp;p=36700#p36700"/>
<title type="html"><![CDATA[ATMEGA ADC i wewnętrzny wzmacniacz.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3089&amp;p=36700#p36700"><![CDATA[
Chciałbym użyć wewnętrznego wzmacniacza w Atmega 16. Niestety bardzo mało jest informacji w sieci na ten temat (albo ja nie umiem znaleźć).<br />Wg noty katalogowej mam:<br /><a href="http://forum.atnel.pl/_obrazki/o/1224/adbf44c3dc9d092e454f5fd2331196d8.PNG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/1224/adbf44c3dc9d092e454f5fd2331196d8.PNG" alt="Obrazek" /></a><br />Czyli wybieram sobie:<br />[syntax=c]ADMUX = ADMUXVAL | 9;//ADC1 Positive Differential Input, ADC0 Negative Differentail Input[/syntax]<br />Nie wiem, co źle robię, ale z tego co zrozumiałem napięcie pomiędzy ADC0 i ADC1 jest wzmacniane 10x, więc podłączam:<br />do ADC0 masę, a do ADC1 0V-0,227V. Wyświetlacz pokazuje mi: 4,731V, bez względu jaka jest różnica potencjałów między ADC0 i ADC1.<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;hd44780.h&quot;<br />//definicja napięcia referencyjnego<br />#define VREF 4.74<br />#define ADMUXVAL (1&lt;&lt;REFS0)//VCC jako napięcie referencyjne<br /><br />volatile float adc;//zmienna do obliczeń napięcia<br /><br />int main(void)<br />{<br />char wynik&#91;&#93;=&quot;           &quot;;//bufor tekstowy, wyczyszczenie bufora<br />//Inicjalizacja ADC<br />ADCSRA =   (1&lt;&lt;ADEN) //włączenie ADC<br />|(1&lt;&lt;ADPS0)//Ustawienie preskalera na 128, 8MHz/128=62,5kHz<br />|(1&lt;&lt;ADPS1)//czyli miescie się w przedziale 50-200kHz<br />|(1&lt;&lt;ADPS2);<br />DDRA &amp;=~ (1&lt;&lt;PA5);            //Ustawienie Wejścia ADC<br />DDRA &amp;=~ (1&lt;&lt;PA4);            //Ustawienie Wejścia ADC<br />DDRA &amp;=~ (1&lt;&lt;PA0);<br />DDRA &amp;=~ (1&lt;&lt;PA1);<br /><br />    lcd_init();<br />    LCD_DISPLAY(LCDDISPLAY);<br /><br />    while(1)<br />    {<br />        LCD_CLEAR;<br /><br />        LCD_LOCATE(0,0);<br />        lcd_puts(&quot;ADC0:&quot;);<br />        LCD_LOCATE(9,0);<br />        lcd_puts(&quot;ADC1:&quot;);<br /><br />        ADMUX = ADMUXVAL | 9;//ADC1 Positive Differential Input, ADC0 Negative Differentail Input <br /><br />        ADCSRA |= (1&lt;&lt;ADSC);//ADSC: Uruchomienie pojedynczej konwersji<br />        while(ADCSRA &amp; (1&lt;&lt;ADSC)); //czeka na zakończenie konwersji<br /><br />        adc=ADC*VREF/1024;      //przeliczenie wartości na napięcie<br />        sprintf(wynik,&quot;U=%1.3f&quot;,adc);   //konwersja na łańcuch znakowy<br />        LCD_LOCATE(0,1);<br />        lcd_puts(wynik);<br /><br />        //----------------------------------------------------------------------------------<br />        ADMUX = ADMUXVAL | 4;//wybór kanału pomiarowego ADC4<br /><br />        ADCSRA |= (1&lt;&lt;ADSC);//ADSC: Uruchomienie pojedynczej konwersji<br />        while(ADCSRA &amp; (1&lt;&lt;ADSC)); //czeka na zakończenie konwersji<br /><br />        adc=ADC*VREF/1024;      //przeliczenie wartości na napięcie<br />        sprintf(wynik,&quot;U=%1.3f&quot;,adc);   //konwersja na łańcuch znakowy<br />        LCD_LOCATE(9,1);<br />        lcd_puts(wynik);<br /><br />        _delay_ms (500);<br />    }<br />    return 0;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1224">ublizzard</a> — 11 maja 2013, o 12:59</p><hr />
]]></content>
</entry>
</feed>