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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-02-19T14:23:32+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2372&amp;mode</id>
<entry>
<author><name><![CDATA[Michał11]]></name></author>
<updated>2013-02-19T14:23:32+01:00</updated>
<published>2013-02-19T14:23:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28657#p28657</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28657#p28657"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28657#p28657"><![CDATA[
Co do tego regulatora, zastosowałem trzy mosfety IRFP2807 połączone równolegle, jeden driver tc4429, obciążenie ciągłe 0-40A , odbiorniki będą różne ale najczęściej silniki i odbiorniki rezystancyjne.<br />Układ ma na wyjściu kondensator 14,000uF i diodę zabezpieczająca SB560.<br /><br />Poprzednio robiłem testy na ne555 częstotliwości 1,2kHz jednym mosfecie IRFP064N bez drivera, kondensatorze 14,000uF  i diodzie zabezpieczającej SB560 na wyjściu. Mosfet odlatywał przy 30A a radiator żebrowany,aluminiowy 15x9cm wys.2,5cm był tak gorący że bym mógł sobie na niego czajnik wstawić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=477">Michał11</a> — 19 lut 2013, o 14:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Domanoid]]></name></author>
<updated>2013-02-19T11:20:52+01:00</updated>
<published>2013-02-19T11:20:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28647#p28647</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28647#p28647"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28647#p28647"><![CDATA[
Hmm, jeśli można.. to może podpowiemy coś więcej jeśli byśmy wiedzieli jakie drivery i jakie mosfety, typ obciążenia. Wiemy że do 40A ciągłego prądu. Możliwe, że coś jeszcze zrobimy w zakresie pomocy dla Twojego projektu <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=750">Domanoid</a> — 19 lut 2013, o 11:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janeczqu]]></name></author>
<updated>2013-02-19T11:01:38+01:00</updated>
<published>2013-02-19T11:01:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28640#p28640</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28640#p28640"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28640#p28640"><![CDATA[
<div class="quotetitle">Michał11 napisał(a):</div><div class="quotecontent"><br />Było to dla mnie bardzo ważne pomieważ, przy małej częstotliwości (1kHz) i natężeniu 40A mogłem na radiatorze usmażyć sobie jajecznice <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  Przy takiej częstotliwości i dodaniu dwóch wentylatorów myślę że temperatura radiatora będzie do ogarnięcia.<br /></div><br /><br />Myślę że twój problem nie leży w częstotliwości PWM lecz w stratach dynamicznych spowodowanych zbyt słaby driverem- straty na mosfecie głównie powstają podczas ładowania/rozładowania pojemności bramki. Im wyższa częstotliwość tym trudniej w krótkim czasie przeładować tą pojemność- straty rosną. <br /><br />Nie wiem jakie masz obciążenie ale ja bym częstotliwość wybrał możliwie najniższą- zmieniłbym driver na bardziej wydajny, zresztą przy trzech tranzystorach optymalnym rozwiązaniem są trzy osobne drivery.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=823">janeczqu</a> — 19 lut 2013, o 11:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Michał11]]></name></author>
<updated>2013-02-19T08:48:44+01:00</updated>
<published>2013-02-19T08:48:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28633#p28633</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28633#p28633"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28633#p28633"><![CDATA[
Przed chwilą wgrałem soft i ustawiłem fusy na taki jak mówiłeś........ I sukces jest 100kHz na oscyloskopie pięknie zmienia się wypełnienie. Muszę jeszcze wrzucić to na radiator, bo atmega u mnie będzie sterowała driver a driver będzie otwierał 3 mosfety. Mosfety będą obciążone prądem przy pracy ciągłej do 40A i napięciu 12V więc jeszcze odezwę się jak się zachowuje w takim układzie.<br />Bardzo dziękuję wam za pomoc a w szczególności koledze Domanoid, proszę podaj mi na pw swój adres zamieszkania, wyśle Ci prezent za pomoc, który napewno przyda Ci się w swoim warsztacie-co to jest-niespodzianka. Ale paczkę wyślę dopiero za miesiąc, ponieważ nie mam jeszcze u siebie tego urządzenia, wartość urządzenia wynosi ok.200zł (jak dla mnie), markowe takie urządzenia w tej klasie dokładności i z takimi opcjami kosztują ok 1500zł (a i tak brakuje im kilku funkcji).<br /><br />Z tym czym nie mogłem sobie poradzić przez miesiąc kol. Domanoid zrobił to przez jeden dzień, jeszce raz gratulacje.<br /><br />Było to dla mnie bardzo ważne pomieważ, przy małej częstotliwości (1kHz) i natężeniu 40A mogłem na radiatorze usmażyć sobie jajecznice <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  Przy takiej częstotliwości i dodaniu dwóch wentylatorów myślę że temperatura radiatora będzie do ogarnięcia.<br /><br />Pozdrawiam i na razie dziękuję za pomoc, wkrótce się odezwe.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=477">Michał11</a> — 19 lut 2013, o 08:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-02-19T07:56:15+01:00</updated>
<published>2013-02-19T07:56:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28630#p28630</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28630#p28630"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28630#p28630"><![CDATA[
<div class="quotetitle">Domanoid napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent">5. Wracamy do sprzętowego generowania PWM i szukamy odpowiedniego procesora, który musi być wyposażony w timer taktowany częstotliwością minimum 25,6MHz, a takim jest np. ATTINY25<br /></div> No to narobiłem... Jednak jak widać udało się spokojnie na 8MHz</div><br />No właśnie od tego jest forum, żeby przedyskutować pewne tematy. Wszyscy na tym skorzystają.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 19 lut 2013, o 07:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Domanoid]]></name></author>
<updated>2013-02-18T23:09:21+01:00</updated>
<published>2013-02-18T23:09:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28625#p28625</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28625#p28625"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28625#p28625"><![CDATA[
Dobrze, że napisałeś przynajmniej jaką otrzymujesz częstotliwość <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Teraz wiem, że błąd nie leży w moim programie... Ustaw fuse bity bo masz w tej chwili ustawione 1MHz... Przestaw na 8MHz i będzie jak trzeba.<br />(w symulacji otrzymuję dokładnie 12,45kHz dla taktowania 1MHz... stąd moja pewność).<br /><br />Jeśli nie będzie dokładnie 100kHz to zmień w linijce 63. kodu ICR1 = 0x004F; na wyższą wartość, np. 0x0050 0x0051 albo 0x0052... czy ile tam podpasuje... Bo tutaj już dużą rolę gra dokładność wbudowanego rezonatora. Chyba, że przestawisz fuse bity na zewnętrzny kwarc i na xtal podasz 8MHz.<br /><br />Dla wewn. 8MHz jest LOW FUSE: 0xE4 HIGH FUSE: 0xD9<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=750">Domanoid</a> — 18 lut 2013, o 23:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Michał11]]></name></author>
<updated>2013-02-18T21:22:01+01:00</updated>
<published>2013-02-18T21:22:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28620#p28620</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28620#p28620"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28620#p28620"><![CDATA[
Doman nie dało mi to spokoju i jednak doszłem do tego że źle przekompilowałem program w eclipse, więc zmontowałem układ i wszystko działa tylko zamiast 100kHz jest 12,45kHz  <img src="https://forum.atnel.pl/images/smilies/icon_eek.gif" alt=":shock:" title="Zaszokowany" /> <br /><br />Skompilowałem jeszce kod pierwszy tak jak radził kolega <strong>Krauser</strong><br />więc ustawiając ósemkę na 8MHz powinno wyjść na porcie 8MHz/256=31,25kHz a jest nadal 3,9kHz, więc coś jest nie tak.<br /><br />[syntax=c]<br />#define F_CPU 8000000L<br />#include &lt;avr/io.h&gt;<br /><br />unsigned int pomiar; // Zmienna do przechowywania wyniku pomiaru<br /><br />void Inicjalizacja_ADC(void)<br />{<br /><br />DDRB=(1&lt;&lt;PB3); //Dioda pod PB3<br />PORTB|=(1&lt;&lt;PB3);<br />ADMUX |= _BV(REFS0);<br />ADMUX |= _BV(ADLAR);<br />// Zezwolenie na konwersję<br />ADCSRA |= _BV(ADEN);<br />// Wybranie częstotliwości dla taktowania przetwornika<br />ADCSRA |= _BV(ADPS0);<br />ADCSRA |= _BV(ADPS1);<br />ADCSRA |= _BV(ADPS2);<br /><br /><br /><br /><br />}<br /><br />int main(void){<br /><br />TCCR2 =(1&lt;&lt;COM21)|(1&lt;&lt;WGM20)|(1&lt;&lt;WGM21)| (1&lt;&lt;CS20);//fast PWM<br /><br /><br />Inicjalizacja_ADC();<br /><br />while(1){<br />ADCSRA |= _BV(ADSC);<br />while( ADCSRA &amp; _BV(ADSC)) {};<br /><br />pomiar=ADCH;<br />PORTB|=(1&lt;&lt;PB3);<br />OCR2=pomiar;<br />}<br />}<br />[/syntax]<br /><br />Podsumowując rekord jaki uzyskałem dzięki koledze <strong>Domanoid</strong> wynosi 12,45kHz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=477">Michał11</a> — 18 lut 2013, o 21:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Domanoid]]></name></author>
<updated>2013-02-18T20:45:38+01:00</updated>
<published>2013-02-18T20:45:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28618#p28618</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28618#p28618"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28618#p28618"><![CDATA[
Rozrysuj może schemat. W jakim programie kompilujesz program?<br />Zaraz dojdziemy co nie bangla.<br /><br />Albo zagadaj na: <br />#gg 777132<br />#jabber/aqq : <!-- e --><a href="mailto:domanoid@aqq.eu">domanoid@aqq.eu</a><!-- e --><br /><br /><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=750">Domanoid</a> — 18 lut 2013, o 20:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Michał11]]></name></author>
<updated>2013-02-18T20:32:50+01:00</updated>
<published>2013-02-18T20:32:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28615#p28615</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28615#p28615"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28615#p28615"><![CDATA[
Sprawdizłem przed chwilą układ i niestety nie działa. Sprawdzałem go na oscyloskopie i mierniku laboratoryjnym i nic <img src="https://forum.atnel.pl/images/smilies/icon_cry.gif" alt=":cry:" title="Płacze" /> Może ja coś zrobiłem źle ale wątpie aby tak było, więc może komuś uda się uruchomić ten program. <br />Ale i tak dziekuje doman za poświęcony czas na pisanie programu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=477">Michał11</a> — 18 lut 2013, o 20:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Domanoid]]></name></author>
<updated>2013-02-18T19:17:04+01:00</updated>
<published>2013-02-18T19:17:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28599#p28599</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28599#p28599"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28599#p28599"><![CDATA[
Doman nie Damian <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Proszę bardzo, dla mnie to dobra rozrywka <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Wirtualnym piwkiem nie pogardzę <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />Tam w kodzie jest podane wypełnienie początkowe, to może trochę śmiecić przy włączaniu układu. Polecam zmianę na swoją liczbę.<br />I jeszcze tak patrzę na kod podany w Twoim pierwszym poście - jest tam #define F_CPU... jeśli nie korzystasz z eclipse to musisz dodać tam linijkę, ale ustawioną na 8MHz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=750">Domanoid</a> — 18 lut 2013, o 19:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Michał11]]></name></author>
<updated>2013-02-18T19:13:41+01:00</updated>
<published>2013-02-18T19:13:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28598#p28598</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28598#p28598"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28598#p28598"><![CDATA[
Damian bardzo dziękuję Ci za program i zaangażowanie, zaraz złoże układ i dam znać jak działa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=477">Michał11</a> — 18 lut 2013, o 19:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Domanoid]]></name></author>
<updated>2013-02-18T19:07:00+01:00</updated>
<published>2013-02-18T19:07:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28594#p28594</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28594#p28594"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28594#p28594"><![CDATA[
Myślę, że dokładnie o to Ci chodziło:<br /><br /><!-- m --><a class="postlink" href="http://www.youtube.com/watch?v=jrId8fthrPg" >http://www.youtube.com/watch?v=jrId8fthrPg</a><!-- m --><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br />Oczywiście polecam oglądać na YT a nie w tym małym okienku... Na youtube najlepiej ustawić jakość HD - na niższych mało co widać..<br /><br />I kod do sprawdzenia przez lepszych ode mnie:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 18-02-2013<br /> *      Author: Jarek<br /> */<br /><br />/*KWARC 8 MHz, wewn. albo zewn.<br /> W petli nie dzieje sie nic */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;util/atomic.h&gt;<br /><br />#define PWM PB2    //definicja wyjcia PWM (OC1B do kontroli wypełnienia)<br />#define ADCIN PC5   //definicja ADCIN (wejście ADC)<br /><br />// Definicje funkcji<br />void TIM16_WriteOCR1B(uint16_t i);<br />void Init_ADC(void);<br />void Init_PWM(void);<br />//Definicje zmiennych<br />volatile uint16_t adc;<br /><br />/*FUNKCJA GŁÓWNA*/<br />int main(void) {<br /><br />Init_ADC ( );<br />Init_PWM ( );<br /><br />/*GLOBALNE WLACZENIE PRZERWAN*/<br />sei();<br /><br />while ( 1 ) {<br />}<br />}<br /><br />/*ZMINA USTAWIEN PWM NA PODSTAWIE PWM W PRZERWANIU OD ADC*/<br />ISR(ADC_vect) {<br />adc = (ADC)/12;<br />TIM16_WriteOCR1B (adc);<br />}<br /><br />/*ZAPIS ATOMOWY DO OCR1B*/<br />void TIM16_WriteOCR1B(uint16_t i) {<br />unsigned char sreg;<br />/* Save Global Interrupt Flag */<br />sreg = SREG;<br />/* Disable interrupts */<br />cli();<br />/* SetOCR1B to i */<br />OCR1B = i;<br />/* Restore Global Interrupt Flag */<br />SREG = sreg;<br />}<br /><br />/*PWM HARDWAROWY OPARTY O FAST PWM TIMERA 2 Z USTAWIONYM TOP*/<br />void Init_PWM(void) {<br /><br />DDRB |= ( 1 &lt;&lt; PWM );<br />PORTB |= ( 1 &lt;&lt; PWM );<br />ICR1 = 0x004F;  // PWM TOP 100kHz<br />//OCR1A = 0x004F; // PWM TOP 100kHz<br />OCR1B = 0x0030;  // WYPEŁNIENIE POCZĄTKOWE<br /><br />TCCR1A |= ( 1 &lt;&lt; COM1B1 );  // Clear OC1A/OC1B on Compare Match, set OC1A/OC1B at BOTTOM, (non-inverting mode)<br /><br />/*  TOP ON OC1A<br /> TCCR1A |= (1&lt;&lt;WGM11) | (1&lt;&lt;WGM10); // FAST PWM<br /> TCCR1B |= (1&lt;&lt;WGM12) | (1&lt;&lt;WGM13); // WITH TOP ON OC1A<br /> */<br /><br />/*TOP ON ICR1 (nie blokuje OC1A)*/<br />TCCR1A |= ( 1 &lt;&lt; WGM11 );  // FAST PWM<br />TCCR1B |= ( 1 &lt;&lt; WGM12 ) | ( 1 &lt;&lt; WGM13 );  // WITH TOP ON ICR1<br />TCCR1B |= ( 1 &lt;&lt; CS10 );  // PRESKALER NA 1<br /><br />}<br /><br />/*USTAWIENIE ADC*/<br />void Init_ADC(void) {<br /><br />ADCSRA |= ( 1 &lt;&lt; ADEN );  // ENABLE ADC<br /><br />DDRC &amp;= ~(1&lt;&lt;ADCIN);<br />//PORTC |= (1&lt;&lt;ADCIN);<br /><br />ADMUX |= /*( 1 &lt;&lt; REFS1 ) |*/ ( 1 &lt;&lt; REFS0 );  // WENW. ODNIESIENIE 2.56V<br />ADMUX |= ( 1 &lt;&lt; MUX2 ) | ( 1 &lt;&lt; MUX0 );  // ADC NA PINIE ADC5 (<br /><br /><br />ADCSRA |= ( 1 &lt;&lt; ADPS0 ) | ( 1 &lt;&lt; ADPS1 ) | ( 1 &lt;&lt; ADPS2 );  // PRESKALER 128 (62,5kHz - OK)<br />ADCSRA |= ( 1 &lt;&lt; ADIE );  // ENABLE INTERRUPT<br />ADCSRA |= ( 1 &lt;&lt; ADFR );  // FREE RUNNING MODE<br />ADCSRA |= ( 1 &lt;&lt; ADSC );  // FIRST CONVERSION<br /><br />}<br />[/syntax]<br /><br />Fast PWM prawie dokładnie 100kHz.. Niestety dokładniej się nie da (albo nie umiem).<br />To co płynie z ADC czyli potencjometru jest dokładnie przedstawiane jako wypełnienie PWM. Jedynie nie polecam dawać na 100% i 0%... chociaż jeśli to problem to szybko dopiszę kilka linijek <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><br />Wszystko napisałem korzystając głównie z datasheeta Atmegi 8, a trochę z niebieskiej knigi <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><strong><span style="font-size: 150%; line-height: normal">Ciekaw jestem co mi wypunktujecie!</span></strong>  <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /><br /><br /><br />PS.<br /><div class="quotetitle">Krauser napisał(a):</div><div class="quotecontent"><br />5. Wracamy do sprzętowego generowania PWM i szukamy odpowiedniego procesora, który musi być wyposażony w timer taktowany częstotliwością minimum 25,6MHz, a takim jest np. ATTINY25<br /></div> No to narobiłem... Jednak jak widać udało się spokojnie na 8MHz <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Ale szacuneczek Krauser, podziwiem Twoje projekty.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=750">Domanoid</a> — 18 lut 2013, o 19:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-02-18T10:28:35+01:00</updated>
<published>2013-02-18T10:28:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28525#p28525</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28525#p28525"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28525#p28525"><![CDATA[
12 MHz / 256 = 46,875 kHz<br />16 MHz /256 = 62,5 kHz<br />W programie należy dodać 1 linię przy wybraniu częstotliwości taktowania przetwornika:<br />[syntax=c]ADCSRA |= _BV(ADPS2);[/syntax]<br />Zwracam uwagę, że ATMEGA8<strong>L</strong> może być taktowana częstotliwością do 8 MHz, a druga wersja do 16 MHz. Oczywiście są to zalecenia producenta. Przykładowo w MK-USBASP jest 12 MHz zamiast 8 MHz i działa niezawodnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 18 lut 2013, o 10:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Michał11]]></name></author>
<updated>2013-02-17T21:41:09+01:00</updated>
<published>2013-02-17T21:41:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28458#p28458</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28458#p28458"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28458#p28458"><![CDATA[
W takim razie ile jestem w stanie kHz wycisnąć z Atmegi8 jeśli dodam zewnętrzny rezonator kwarcowy 12MHz / 16MHz ?<br />Czy wystarczy dodać kwarc i zmienić w programie częstotliwość atmegi na 12/16MHz i zostawiając reszce programu tak jak jest uzyskam tą max. częstotliwość? Czy trzeba pisać program od nowa?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=477">Michał11</a> — 17 lut 2013, o 21:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-02-17T16:32:53+01:00</updated>
<published>2013-02-17T16:32:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28426#p28426</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28426#p28426"/>
<title type="html"><![CDATA[Re: Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28426#p28426"><![CDATA[
1. To 3,9kHz wnika z częstotliwości taktowania i 8-bitowego timera (oraz jego preskalera, ale dla CS20 jest podział przez 1) -&gt; 1MHz / 256 = 1000kHz / 256 = 3,9kHz<br />2. Przy tak napisanym programie możesz zwiększyć częstotliwość PWM zwiększając częstotliwość taktowania mikrokontolera, ale nie wiele to da i potrzebna będzie modyfikacja linii dotyczących częstotliwości taktowania przetwornika.<br />4. Możesz skorzystać z programowego generowania PWM. Chcesz mieć częstotliwość przebiegu 100kHz. Zakładając, że chciałbyś regulować wypełnienie z krokiem 1% musisz generować przerwanie z częstotliwością 100 razy większą, czyli 10MHz, a masz taktowanie 1MHz. - To rozwiązanie również odpada.<br />5. Wracamy do sprzętowego generowania PWM i szukamy odpowiedniego procesora, który musi być wyposażony w timer taktowany częstotliwością minimum 25,6MHz, a takim jest np. ATTINY25<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 17 lut 2013, o 16:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Michał11]]></name></author>
<updated>2013-02-17T15:04:51+01:00</updated>
<published>2013-02-17T15:04:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28423#p28423</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28423#p28423"/>
<title type="html"><![CDATA[Atmega8 pwm sterowany adc 100kHz]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2372&amp;p=28423#p28423"><![CDATA[
Witam<br />Potrzebuję wykonać pwm-a na atmega8 i mam następujący probelm:<br />Znalazłem w sieci kod źródłowy pwm-a o stałej częstotliwości 3,9kHz i regulowanym wypełnieniu 0-100%, regulacja odbywa się poprzez potencjometr 10k podłączony do portu adc.<br /><br />Poniżej kod żródłowy:<br />[syntax=c] <br /><br />#define F_CPU 1000000L<br />#include &lt;avr/io.h&gt;<br /><br />unsigned int pomiar; // Zmienna do przechowywania wyniku pomiaru<br /><br />void Inicjalizacja_ADC(void)<br />{<br /><br />DDRB=(1&lt;&lt;PB3); //Dioda pod PB3<br />PORTB|=(1&lt;&lt;PB3);<br />ADMUX |= _BV(REFS0);<br />ADMUX |= _BV(ADLAR);<br />// Zezwolenie na konwersję<br />ADCSRA |= _BV(ADEN);<br />// Wybranie częstotliwości dla taktowania przetwornika<br />ADCSRA |= _BV(ADPS0);<br />ADCSRA |= _BV(ADPS1);<br /><br />}<br /><br />int main(void){<br /><br />TCCR2 =(1&lt;&lt;COM21)|(1&lt;&lt;WGM20)|(1&lt;&lt;WGM21)| (1&lt;&lt;CS20);//fast PWM<br /><br /><br />Inicjalizacja_ADC();<br /><br />while(1){<br />ADCSRA |= _BV(ADSC);<br />while( ADCSRA &amp; _BV(ADSC)) {};<br /><br />pomiar=ADCH;<br />PORTB|=(1&lt;&lt;PB3);<br />OCR2=pomiar;<br />}<br />}<br />[/syntax]<br /><br />Program działa bardzo dobrze, ale potrzebuję uzyskać częstotliwość ok. 100kHz.<br />Niestety zdążyłem przeczytać tylko 50 str. książki Mirka, siedze już pół dnia nad kodem i dowiedziałem się że za częstotliwość tzn. preskaler częstotliwości jest odpowiedzialny bit CS20 , próbowałem go zmieniać metodą prób i błędów ale wychodziła tylko mniejsza częstotliwość niż oryginalnie.<br /><br /><span style="color: #FF0000">Kod w C wklejamy przy pomocy [syntax=c] - Zielony J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=477">Michał11</a> — 17 lut 2013, o 15:04</p><hr />
]]></content>
</entry>
</feed>