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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-10-09T20:42:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=16435&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-10-09T20:42:49+01:00</updated>
<published>2016-10-09T20:42:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171076#p171076</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171076#p171076"/>
<title type="html"><![CDATA[Re: problem z częstotliwością przełączania]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171076#p171076"><![CDATA[
<div class="quotetitle">tomcat65 napisał(a):</div><div class="quotecontent"><br />ale funkcje ISR piszemy na początku.<br /></div><br /><br />Zdecydowanie wolę na początku główną funkcję main() dla porządku. A ISR() po niej albo w ogóle w osobnym pliku<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 paź 2016, o 20:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tomcat65]]></name></author>
<updated>2016-10-09T19:51:02+01:00</updated>
<published>2016-10-09T19:51:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171068#p171068</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171068#p171068"/>
<title type="html"><![CDATA[Re: problem z częstotliwością przełączania]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171068#p171068"><![CDATA[
Witam.<br />Pierwszy to mój post na tym forum.<br />Nie wnikam w kod - za długi <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />, ale funkcje ISR piszemy na początku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15092">tomcat65</a> — 9 paź 2016, o 19:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-10-09T17:47:04+01:00</updated>
<published>2016-10-09T17:47:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171024#p171024</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171024#p171024"/>
<title type="html"><![CDATA[Re: problem z częstotliwością przełączania]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171024#p171024"><![CDATA[
Zapamiętaj sobie raz na zawsze jedną rzecz:<br /><br /><strong><em><span style="font-size: 150%; line-height: normal"><span style="color: #FF0000">#define F_CPU 8000000UL</span></span></em></strong><br /><br />TEGO BADZIEWIA NIGDY NIE PISZE się w kodzie programu ... i moja gorąca prośba - jeśli już będziesz się upierał przy tym to przynajmniej jak będziesz wklejał swoje kody na to forum to wywalaj to z kodu ok ? A później błędów szukaj sam ... albo<br /><br />... albo obejrzyj dokładnie to:<br /><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><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 paź 2016, o 17:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Karlislaw]]></name></author>
<updated>2016-10-09T17:40:19+01:00</updated>
<published>2016-10-09T17:40:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171023#p171023</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171023#p171023"/>
<title type="html"><![CDATA[problem z częstotliwością przełączania]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16435&amp;p=171023#p171023"><![CDATA[
Witam,<br /><br />   Usiłuję z płytki arduino pro mini z mikroprocesorem atmega328p zrobić uniwersalny sterownik silników krokowych z regulowaną częstotliwością przełączania za pomocą potencjometru od 0 do 1000 Hz. <br />   Potrafię tak zaprogramować na konkretną częstotliwość lub żeby sie zmieniała w ograniczonym zakresie (wykorzystując przerwania) i wtedy działa. Albo z ograniczoną rozdzielczością przełączania (początkowe wartości fajnie się dzielą przez 2 później już gorzej) jednak mnie interesuje pełna rozdzielczość (1,2,3,456,789,998,999 itp.).<br />   Po nieudanych eksperymentach z próbą regulacji w przerwaniu (przerwanie działało, regulacja już nie) spróbowałem zrobić licznik do liczby 8000000 przy założeniu że częstotliwość taktowania procesora wynosi 8000000Hz. Wtedy czas przełączania wynosiłby idealnie 1 sekundę o ile sie nie myle xd a 8000000 fajnie by sie dzieliło przez 2 żeby potem elegancko uzyskać kolejne częstotliwości przełączania w kierunku 1000Hz. Niestety, albo diody śmigają za szybko albo za wolno.<br />   Zacząłem podejżewać iż procesor atmega328p nie przechowuje tak dużych liczb i dlatego poprawne jej porównanie w liczniku nie jest możliwe więc próbowałem rodzdzielić ten licznik na dwie części tj. licznik  w liczniku ale to też niewiele dało... diody świecą się cały czas.<br />   <br />   Program piszę w eclipsie a wgrywam mkAVRcalculatorem (częstotliwość taktowania 8kHz zaznaczona w fusebitach) korzystając z USBasp.<br /><br />[syntax=c]/*[/syntax]<br /> <br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br /><strong><em><span style="color: #FF0000">#define F_CPU 8000000UL &lt;--- tego NIGDY nie pisze się w kodzie</span></em></strong><br /></div><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;stdint.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define wybortrybu PC2<br />#define wyborkierunku PC3<br /><br />volatile uint8_t krok = 0;<br />volatile uint8_t tryb = 1;<br />volatile uint8_t kierunek = 1;<br />volatile unsigned int adc, x;<br />volatile unsigned int licznik = 0;<br /><br />int main(void) {<br /><br />//inicjalizacja ADC<br />ADMUX |= (1 &lt;&lt; REFS0);<br />ADCSRA = (1 &lt;&lt; ADEN) | (1 &lt;&lt; ADATE) | (1 &lt;&lt; ADSC) | (1 &lt;&lt; ADIE)<br />| (1 &lt;&lt; ADPS0) | (1 &lt;&lt; ADPS1) | (1 &lt;&lt; ADPS2);<br />DDRC &amp;= ~(1 &lt;&lt; PC0);<br /><br />// ustawienie timer1<br />TCCR1B |= (1 &lt;&lt; CS10);<br /><br />// ustawienie timer0 pwm<br />TCCR0A |= (1 &lt;&lt; COM0A1) | (1 &lt;&lt; COM0B1);<br />TCCR0A |= (1 &lt;&lt; WGM01) | (1 &lt;&lt; WGM00);<br />TCCR0B |= (1 &lt;&lt; CS00);<br />DDRD |= (1 &lt;&lt; DDD6);<br />DDRD |= (1 &lt;&lt; DDD5);<br /><br />// ustawienie timer2 pwm<br />TCCR2A |= (1 &lt;&lt; COM2A1) | (1 &lt;&lt; COM2B1);<br />TCCR2A |= (1 &lt;&lt; WGM21) | (1 &lt;&lt; WGM20);<br />TCCR2B |= (1 &lt;&lt; CS20);<br />DDRD |= (1 &lt;&lt; DDD3);<br />DDRB |= (1 &lt;&lt; DDB3);<br /><br />//ustawienie wyjśc początkowe<br />OCR2B = 255;<br />OCR0B = 255;<br />OCR0A = 255;<br />OCR2A = 255;<br /><br />//ustawienie wejśc pod przyciski i rezystorów podciągających<br />DDRC &amp;= ~(1 &lt;&lt; wybortrybu);<br />PORTC |= (1 &lt;&lt; wybortrybu);<br />DDRC &amp;= ~(1 &lt;&lt; wyborkierunku);<br />PORTC |= (1 &lt;&lt; wyborkierunku);<br /><br />while (1) {<br /><br />//obsługa wyboru trybów i kierunku (zerowanie bądź ustawianie liczników)<br />if (tryb == 1 &amp;&amp; kierunek == 1 &amp;&amp; krok &gt;= 4)<br />krok = 0;<br />if (tryb == 1 &amp;&amp; kierunek == 2 &amp;&amp; krok == 1)<br />krok = 5;<br /><br />if (tryb == 2 &amp;&amp; kierunek == 1 &amp;&amp; krok &gt;= 4)<br />krok = 0;<br />if (tryb == 2 &amp;&amp; kierunek == 2 &amp;&amp; krok == 1)<br />krok = 5;<br /><br />if (tryb == 3 &amp;&amp; kierunek == 1 &amp;&amp; krok &gt;= 8)<br />krok = 0;<br />if (tryb == 3 &amp;&amp; kierunek == 2 &amp;&amp; krok == 1)<br />krok = 9;<br /><br />if (tryb == 4 &amp;&amp; kierunek == 1 &amp;&amp; krok &gt;= 16)<br />krok = 0;<br />if (tryb == 4 &amp;&amp; kierunek == 2 &amp;&amp; krok == 1)<br />krok = 17;<br />//////////////////////////////////////////////////////////////////// TO NIE DZIAŁA<br />if (ADC &gt; 0) {<br /><br />if (TCNT1 &gt;= x) {<br />licznik++;<br /><br />if (licznik &gt;= adc) {<br /><br />if (kierunek == 1)<br />krok++; <br />if (kierunek == 2)<br />krok--;<br /><br />licznik = 0;<br />}<br />TCNT1=0;<br />}<br />}<br /><br />////////////////////////////////////////////////////////////////////////////////////////////////////////////<br /><br />//obsługa przycisku wyboru trybu<br />while (!(PINC &amp; (1 &lt;&lt; wybortrybu))) {<br /><br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br /><br />if (tryb == 4)<br />tryb = 0;<br />tryb++;<br /><br />}<br /><br />//obsługa przycisku wyboru kierunku<br />while (!(PINC &amp; (1 &lt;&lt; wyborkierunku))) {<br />if (kierunek == 2)<br />kierunek = 0;<br />kierunek++;<br /><br />}<br /><br />//tryb falowy ////////////////////////////////////////////////////////////////////////////<br />OCR2B = 255;<br />OCR0B = 255;<br />OCR0A = 255;<br />OCR2A = 255;<br /><br />if (krok == 1 &amp;&amp; tryb == 1) {<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 2 &amp;&amp; tryb == 1) {<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 3 &amp;&amp; tryb == 1) {<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 4 &amp;&amp; tryb == 1) {<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br /><br />//tryb pełny krok ////////////////////////////////////////////////////////////////////////////<br />OCR2B = 255;<br />OCR0B = 255;<br />OCR0A = 255;<br />OCR2A = 255;<br /><br />if (krok == 1 &amp;&amp; tryb == 2) {<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 2 &amp;&amp; tryb == 2) {<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 3 &amp;&amp; tryb == 2) {<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 4 &amp;&amp; tryb == 2) {<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br /><br />//tryb półkrok (1/2 kroku) ////////////////////////////////////////////////////////////////////////////<br />OCR2B = 255;<br />OCR0B = 255;<br />OCR0A = 255;<br />OCR2A = 255;<br /><br />if (krok == 1 &amp;&amp; tryb == 3) {<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 2 &amp;&amp; tryb == 3) {<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 3 &amp;&amp; tryb == 3) {<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 4 &amp;&amp; tryb == 3) {<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br />if (krok == 5 &amp;&amp; tryb == 3) {<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 6 &amp;&amp; tryb == 3) {<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 7 &amp;&amp; tryb == 3) {<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br /><br />if (krok == 8 &amp;&amp; tryb == 3) {<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br /><br />//tryb mikrokrok (1/4 kroku) ////////////////////////////////////////////////////////////////////////////<br />if (krok == 1 &amp;&amp; tryb == 4) {<br />OCR2B = 255;<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />OCR0B = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />OCR0A = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />OCR2A = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br />if (krok == 2 &amp;&amp; tryb == 4) {<br />OCR2B = 235;<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />OCR0B = 96;<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />OCR0A = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />OCR2A = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br />if (krok == 3 &amp;&amp; tryb == 4) {<br />OCR2B = 181;<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />OCR0B = 181;<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />OCR0A = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />OCR2A = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br />if (krok == 4 &amp;&amp; tryb == 4) {<br />OCR2B = 96;<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />OCR0B = 235;<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />OCR0A = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />OCR2A = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br />if (krok == 5 &amp;&amp; tryb == 4) {<br />OCR2B = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />OCR0B = 255;<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />OCR0A = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />OCR2A = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br />if (krok == 6 &amp;&amp; tryb == 4) {<br />OCR2B = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />OCR0B = 235;<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />OCR0A = 96;<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />OCR2A = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br />if (krok == 7 &amp;&amp; tryb == 4) {<br />OCR2B = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />OCR0B = 181;<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />OCR0A = 181;<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />OCR2A = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br />if (krok == 8 &amp;&amp; tryb == 4) {<br />OCR2B = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />OCR0B = 96;<br />TCCR0A |= (1 &lt;&lt; COM0B1);<br />OCR0A = 235;<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />OCR2A = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br />if (krok == 9 &amp;&amp; tryb == 4) {<br />OCR2B = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />OCR0B = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />OCR0A = 255;<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />OCR2A = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2A1);<br />}<br />if (krok == 10 &amp;&amp; tryb == 4) {<br />OCR2B = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />OCR0B = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />OCR0A = 235;<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />OCR2A = 96;<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br />if (krok == 11 &amp;&amp; tryb == 4) {<br />OCR2B = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />OCR0B = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />OCR0A = 181;<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />OCR2A = 181;<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br />if (krok == 12 &amp;&amp; tryb == 4) {<br />OCR2B = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />OCR0B = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />OCR0A = 96;<br />TCCR0A |= (1 &lt;&lt; COM0A1);<br />OCR2A = 235;<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br />if (krok == 13 &amp;&amp; tryb == 4) {<br />OCR2B = 255;<br />TCCR2A &amp;= ~(1 &lt;&lt; COM2B1);<br />OCR0B = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />OCR0A = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />OCR2A = 255;<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br />if (krok == 14 &amp;&amp; tryb == 4) {<br />OCR2B = 96;<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />OCR0B = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />OCR0A = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />OCR2A = 235;<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br />if (krok == 15 &amp;&amp; tryb == 4) {<br />OCR2B = 181;<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />OCR0B = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />OCR0A = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />OCR2A = 181;<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br />if (krok == 16 &amp;&amp; tryb == 4) {<br />OCR2B = 235;<br />TCCR2A |= (1 &lt;&lt; COM2B1);<br />OCR0B = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0B1);<br />OCR0A = 255;<br />TCCR0A &amp;= ~(1 &lt;&lt; COM0A1);<br />OCR2A = 96;<br />TCCR2A |= (1 &lt;&lt; COM2A1);<br />}<br />}<br /><br />}<br /><br />//obsługa przerwania po zakończeniu konwersji ADC<br />ISR(ADC_vect) {<br />adc = ADC;<br /><br /><br />if (ADC &lt;= 100){<br />if (adc &gt; 1000)<br />adc = 1000;<br />if (adc == 0)<br />adc = 1;<br />x=8000;<br />adc = 1000 / adc;<br />}<br /><br />if ((ADC &lt;= 101) &amp;&amp; (ADC&lt;=200)){<br />if (adc &gt; 1000)<br />adc = 1000;<br />if (adc == 0)<br />adc = 1;<br />x=4000;<br />adc = 1000 / (adc-100);<br />}<br /><br />if ((ADC &lt;= 201) &amp;&amp; (ADC&lt;=300)){<br />if (adc &gt; 1000)<br />adc = 1000;<br />if (adc == 0)<br />adc = 1;<br />x=2000;<br />adc = 1000 / (adc-200);<br />}<br /><br />if ((ADC &lt;= 301) &amp;&amp; (ADC&lt;=400)){<br />if (adc &gt; 1000)<br />adc = 1000;<br />if (adc == 0)<br />adc = 1;<br />x=1000;<br />adc = 1000 / (adc-300);<br />}<br /><br />if ((ADC &lt;= 401) &amp;&amp; (ADC&lt;=500)){<br />if (adc &gt; 1000)<br />adc = 1000;<br />if (adc == 0)<br />adc = 1;<br />x=500;<br />adc = 1000 / (adc-400);<br />}<br /><br />if ((ADC &lt;= 501) &amp;&amp; (ADC&lt;=600)){<br />if (adc &gt; 1000)<br />adc = 1000;<br />if (adc == 0)<br />adc = 1;<br />x=250;<br />adc = 1000 / (adc-500);<br />}<br /><br />if ((ADC &lt;= 601) &amp;&amp; (ADC&lt;=700)){<br />if (adc &gt; 1000)<br />adc = 1000;<br />if (adc == 0)<br />adc = 1;<br />x=125;<br />adc = 1000 / (adc-600);<br />}<br /><br />if ((ADC &lt;= 701) &amp;&amp; (ADC&lt;=800)){<br />if (adc &gt; 1000)<br />adc = 1000;<br />if (adc == 0)<br />adc = 1;<br />x=62;<br />adc = 1000 / (adc-700);<br />}<br /><br />if ((ADC &lt;= 801) &amp;&amp; (ADC&lt;=900)){<br />if (adc &gt; 1000)<br />adc = 1000;<br />if (adc == 0)<br />adc = 1;<br />x=31;<br />adc = 1000 / (adc-800);<br />}<br /><br />if ((ADC &lt;= 901) &amp;&amp; (ADC&lt;=1000)){<br />if (adc &gt; 1000)<br />adc = 1000;<br />if (adc == 0)<br />adc = 1;<br />x=15;<br />adc = 1000 / (adc-900);<br />}<br />}[/syntax]<br /><br />zdjęcie:<br /><a href="https://obrazkiforum.atnel.pl/15096/b372e0e7ac439de72f757577b7a24c67.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/15096/b372e0e7ac439de72f757577b7a24c67.jpg" alt="Obrazek" /></a><br /><br />No i to w sumie tyle. Bardzo proszę kogokolwiek o konstruktywną krytykę i pomoc w rozwiązaniu problemu (bądź też podanie innego działającego sposobu).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15096">Karlislaw</a> — 9 paź 2016, o 17:40</p><hr />
]]></content>
</entry>
</feed>