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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-04-13T19:39:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=15117&amp;mode</id>
<entry>
<author><name><![CDATA[lukasz94w]]></name></author>
<updated>2016-04-13T19:39:30+01:00</updated>
<published>2016-04-13T19:39:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158475#p158475</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158475#p158475"/>
<title type="html"><![CDATA[Re: Sterowanie PWM - napięciowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158475#p158475"><![CDATA[
Ok, dzięki za pomoc <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=13539">lukasz94w</a> — 13 kwi 2016, o 19:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2016-04-13T19:21:24+01:00</updated>
<published>2016-04-13T19:21:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158473#p158473</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158473#p158473"/>
<title type="html"><![CDATA[Re: Sterowanie PWM - napięciowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158473#p158473"><![CDATA[
Tak, jak najbardziej możesz tak zrobić. W końcu to są też zmienne <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Oczywiście później musisz znowu odpalić kolejny pomiar.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 13 kwi 2016, o 19:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lukasz94w]]></name></author>
<updated>2016-04-13T19:13:33+01:00</updated>
<published>2016-04-13T19:13:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158471#p158471</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158471#p158471"/>
<title type="html"><![CDATA[Re: Sterowanie PWM - napięciowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158471#p158471"><![CDATA[
Jest to pomiar na żądanie, ustawiam odpowiednią wartość w rejestrze (bit ADSC). Wiem, że można robić to w przerwaniach, narazie chciałbym jednak ogarnąć podstawy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />. Podsumowując mogę wstawić w pętli while następujący kod? Mam nadzieję, że nie robię zbrodni <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />.<br /><br />[syntax=c]while(1)<br />{<br />OCR0=ADCH//wstawic operacje przypisania rejestrowi OCR0 wartosci z rejestru ADCH<br />_delay_ms(5);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13539">lukasz94w</a> — 13 kwi 2016, o 19:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2016-04-13T19:02:42+01:00</updated>
<published>2016-04-13T19:02:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158470#p158470</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158470#p158470"/>
<title type="html"><![CDATA[Re: Sterowanie PWM - napięciowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158470#p158470"><![CDATA[
Witaj<br />Wartość w ADCH jak i W OCR0 jest binarna, rejestr to jest pamięć cyfrowa, i ona liczbę tylko w postaci binarnej jest w stanie przechowywać. Możesz normalnie przypisać te wartość. <br />Musi działać.<br /><br />Inną sprawą jest tryb pracy przetwornika ADC czy to ma być pomiar jednorazowy czy freerunnig mode. Czy chcesz korzystać z przerwania itd.<br />Konwersja napięcia w ADC trochę trwa. ADC potrafi generować przerwanie gdy zakończy konwersję. Ale to już inne zagadnienie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 13 kwi 2016, o 19:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lukasz94w]]></name></author>
<updated>2016-04-13T18:20:18+01:00</updated>
<published>2016-04-13T18:20:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158466#p158466</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158466#p158466"/>
<title type="html"><![CDATA[Sterowanie PWM - napięciowo]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15117&amp;p=158466#p158466"><![CDATA[
Witam, to mój drugi temat na tym forum. Mam problem z pewnym zagadnieniem. Mam napisać kod realizujący następującą funkcję: pomiar napięcia za pomocą ADC mikrokontrolera (ATmega32), oraz regulacja wypełnienia (PWM) diody przy pomocy tegoż napięcia. Wymyśliłem iż będę przypisywał wartość rejestru ADCH do OCR0 i tutaj pojawia się problem. Czy mogę tak po prostu przypisać wartość, czy potrzebna jest operacja zmiany wartości bitowej na dziesiętna rejestru ADCH i dopiero później przypisanie jej do OCR0? Poniżej znajduje się kod programu. Proszę o porady.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/delay.h&gt;<br />#include &lt;avr/io.h&gt;<br /><br />uint16_t pomiar(uint8_t kanal);<br /><br />int main(void)<br />{<br />ADMUX |= (1&lt;&lt;REFS0); //napiecie referencyjne – VCC<br />ADMUX |= (1&lt;&lt;ADLAR); //ustawienie bitu powoduje mozliwosc odczytu napiecia 8 bitowego z rejestru ADCH (patrz ATmega32 str 217)<br />ADCSRA |= (1&lt;&lt;ADEN)|(1&lt;&lt;ADPS1)|(1&lt;&lt;ADPS0); //wlaczenie ADC i ustawienie preskalera na 8<br /><br />TCCR0 |=(1&lt;&lt;WGM00) |(1&lt;&lt;WGM01); //tryb Fast PWM<br />TCCR0 |=(1&lt;&lt;COM01) |(1&lt;&lt;COM00); //clear 0C0 at TOP <br />TCCR0 |=(1&lt;&lt;CS00); //preskaler = 1<br /> <br />DDRB|=(1&lt;&lt;PB3); //kierunek wyjsciowy (do podlaczenia diody)<br /><br /><br /><br />while(1)<br />{<br />//wstawic operacje przypisania rejestrowi OCR0 wartosci z rejestru ADCH<br />_delay_ms(5);<br />}<br /><br />uint16_t pomiar(uint8_t kanal)<br />{<br />ADMUX = (ADMUX &amp; 0xF8) | kanal;<br />ADCSRA |= (1&lt;&lt;ADSC);<br />while( ADCSRA &amp; (1&lt;&lt;ADSC) );<br />return ADCH; //zwracana wartosc napiecia (8 bitowa)<br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13539">lukasz94w</a> — 13 kwi 2016, o 18:20</p><hr />
]]></content>
</entry>
</feed>