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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-12-17T18:10:44+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=9402&amp;mode</id>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-12-17T18:10:44+01:00</updated>
<published>2014-12-17T18:10:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109201#p109201</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109201#p109201"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109201#p109201"><![CDATA[
<div class="quotetitle">MaxEnergy napisał(a):</div><div class="quotecontent"><br />[syntax=c]if (PINB |= (LED))[/syntax]<br /></div><br />Tak nie odczytasz stanu. Tylko tak:<br />[syntax=c]if (PINB &amp; (LED))[/syntax]<br /><br />Co ciekawe to wpisanie (1&lt;&lt;y) do PINx powoduje zmianę na przeciwną wyjścia PORTx.y<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 17 gru 2014, o 18:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-12-17T17:59:11+01:00</updated>
<published>2014-12-17T17:59:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109200#p109200</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109200#p109200"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109200#p109200"><![CDATA[
Czy istnieje jakaś metoda, aby odczytać stan pinu wyjściowego?<br />Odczytywanie w taki sposób, jak się odczytuje pin wejściowy, nie przynosi zamierzonego efektu.<br />[syntax=c]PORTB ^= (LED);<br /><br /><br />if (PINB |= (LED))<br />{<br />PORTB &amp;=~ (LED_CZAS);<br />}<br />else<br />{<br />PORTB |= (LED_CZAS);<br />}[/syntax]<br /><br />Zamierzenie jest takie, aby LED_CZAS podążała za LED.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 17 gru 2014, o 17:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-12-17T15:44:03+01:00</updated>
<published>2014-12-17T15:44:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109183#p109183</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109183#p109183"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109183#p109183"><![CDATA[
Tak dokładnie tak jak mówisz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />wrzucaj wartość pomiaru do zmiennej i potem porównuj zmienną.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 17 gru 2014, o 15:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-12-17T15:42:51+01:00</updated>
<published>2014-12-17T15:42:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109182#p109182</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109182#p109182"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109182#p109182"><![CDATA[
Dzięki wielkie, wszystko działa jak należy. <br />Jeśli przyrównujemy funkcję pomiar bezpośrednio w if'ie, to za każdym przyrównaniem następuje pomiar w ADC, a jeśli najpierw przypiszemy  wynik do zmiennej (np. na początku pętli), np tak:[syntax=c]wynik = pomiar();[/syntax]<br />to pomiar W ADC wykonuje się tylko raz na obieg pętli?   Dobrze pojmuję?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 17 gru 2014, o 15:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-12-16T14:48:59+01:00</updated>
<published>2014-12-16T14:48:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109055#p109055</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109055#p109055"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109055#p109055"><![CDATA[
Ja jeszcze tu z trzy minimum widzę na szybki rzut oka. Ale tak jak @jacek232 wspomniał wiele jest rozwiązań, wybierz ten zapis, który jest dla CIebie najłatwiejszy i przede wszystkim działa <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=542">Sheep</a> — 16 gru 2014, o 14:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-12-16T14:47:19+01:00</updated>
<published>2014-12-16T14:47:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109053#p109053</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109053#p109053"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109053#p109053"><![CDATA[
Można to zrobić tak <br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//zmienna globalna do której przypisany zostanie wynik pomiaru<br />uint16_t wynik;<br /><br />uint16_t pomiar(void);<br /><br /><br />int main(void)<br />{<br />//konfuguracja pinów I/O<br />//konfiguracja ADC<br /><br />while(1)<br />{<br />//przypisanie wyniku pomiaru do zmiennej pomiar<br />wynik = pomiar();<br /><br /> PORTB ^= (LED_CZAS); // zmień stan na diodzie czas<br /> <br /> if (wynik &lt; 717) //jeśli napięcie poniżej 10,5V<br /> {<br /> PORTB &amp;=~ (LED); //zapal diode<br /> }<br /> else //jeśli napięcie wieksze noż 10,5V<br /> {<br /> PORTB |= (LED); //zagaś diode<br /> }<br /> <br /> _delay_ms(1000);<br />}<br />}<br /><br /><br />uint16_t ADC_pomiar (void) // funkcja pomiaru<br />{<br />        ADCSRA |= (1&lt;&lt;ADSC); //start pomiaru<br />        while ( ADCSRA &amp; ADSC ); //czeka na zakończenie pomiaru<br />        return ADCW; //zwrócenie wyniku<br />}[/syntax]<br />Czyli przypisując wynik pomiaru do zmiennej i potem tą zmienną porównywać w ifach.<br /><br />Jeśli masz tylko jednego ifa do porównania to można zrezygnować ze zmiennej wynik i funkcję pomiar() wywołać bezpośrednio w ifie<br />[syntax=c]while(1)<br />{<br /><br />PORTB ^= (LED_CZAS); // zmień stan na diodzie czas<br /> <br />if (pomiar() &lt; 717) //jeśli napięcie poniżej 10,5V<br />{<br /> PORTB &amp;=~ (LED); //zapal diode<br />}<br />else //jeśli napięcie wieksze noż 10,5V<br />{<br />PORTB |= (LED); //zagaś diode<br />}<br /> <br />_delay_ms(1000);<br />}[/syntax]<br /><br />Rozwiązań może być tyle ilu jest programistów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 16 gru 2014, o 14:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-12-16T14:27:08+01:00</updated>
<published>2014-12-16T14:27:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109050#p109050</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109050#p109050"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109050#p109050"><![CDATA[
I już<br />[syntax=c]uint16_t wynik_ADC=0;<br />while (1) //pętla nieskończona<br />    {<br />        _delay_ms ( 1000 ); //poczekaj 1s<br />                        PORTB ^= (LED_CZAS); // zmień stan na diodzie czas.<br />        wynik_ADC = ADC_pomiar;<br />        if (wynik_ADC &lt; 717) //jeśli napięcie poniżej 10,5V<br />        {<br />                PORTB &amp;=~ (LED); //zapal diode<br />        }<br />        else //jeśli napięcie wieksze noż 10,5V<br />        {<br />                PORTB |= (LED); //zagaś diode<br />        }<br />    }[/syntax]<br />proszę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />EDIT: Twoim problemem pewnie było zrozumienie dlaczego do zmiennej wynik nie wpada wartość, którą potem porównujesz w ifie, zgadłem?<br />Chodzi o to, że Twoja funkcja coś zwraca (typ liczby całkowitej przed nazwą funkcji w deklaracji), a jeśli zwraca to musisz przypisać wartość jej wywołania do jakiejś zmiennej, którą potem porównujesz w if'ie, który potem dobrze stworzyłeś.<br />EDIT2: Możesz od razu zwracać return ADCW bez przypisywania zmiennej wynik wartości ADC.<br />Podpowiedziałem Ci za dużo, reszte kombinuj sam. To są niejako podstawy, które możesz zdobyć sam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 16 gru 2014, o 14:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-12-16T14:04:24+01:00</updated>
<published>2014-12-16T14:04:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109049#p109049</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109049#p109049"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=109049#p109049"><![CDATA[
Nie mogę dać sobie rady z wywołaniem mojej funkcji na początku pętli while(1).<br />Pomiar napięcia ADC jest wrzucony do funkcji:[syntax=c]uint16_t ADC_pomiar (void) // funkcja pomiaru<br />{<br />ADCSRA |= (1&lt;&lt;ADSC); //start pomiaru<br />while ( ADCSRA &amp; ADSC ); //czeka na zakończenie pomiaru<br />wynik = ADCW; //przypisanie zmiennej wynik wartości pomiaru<br />        return wynik; //zwrócenie wyniku<br />}[/syntax]<br /><br />Pętla while wygląda tak:[syntax=c]while (1) //pętla nieskończona<br />    {<br />    _delay_ms ( 1000 ); //poczekaj 1s<br />    PORTB ^= (LED_CZAS); // zmień stan na diodzie czas.<br /><br />    if (wynik &lt; 717) //jeśli napięcie poniżej 10,5V<br />    {<br />    PORTB &amp;=~ (LED); //zapal diode<br />    }<br />    else //jeśli napięcie wieksze noż 10,5V<br />    {<br />    PORTB |= (LED); //zagaś diode<br />    }<br />    }[/syntax]<br /><br /><br />Chcę aby za klamerką while następowało wywołanie funkcji pomiaru, a póżniej przyrównanie. Możesz coś podpowiedzieć, bo Twój przykład jakoś nie chce bujać.<br /><br />P.S.<br />Led_czas jest tylko diodą sygnalizacyjną powtórzenie pętli.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 16 gru 2014, o 14:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-12-14T23:34:17+01:00</updated>
<published>2014-12-14T23:34:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108758#p108758</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108758#p108758"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108758#p108758"><![CDATA[
[syntax=c]while(1)<br />{<br />pomiar = ADC_pomiar();<br />if(pomiar&gt;717)<br />     /// cos tam<br />else<br />      /// cos innego<br />}[/syntax]<br />Ale daj jakieś opóźnienie by nie było problemu przy napięciu granicznym tej wartości, i weź też pod uwagę, że dokładność pomiaru adc (u mnie tak jest) wynosi +/- 3 wartości.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 14 gru 2014, o 23:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-12-14T23:31:05+01:00</updated>
<published>2014-12-14T23:31:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108756#p108756</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108756#p108756"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108756#p108756"><![CDATA[
Tak, przed porównaniem zmiennej &quot;wynik&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 14 gru 2014, o 23:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-12-14T23:26:48+01:00</updated>
<published>2014-12-14T23:26:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108753#p108753</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108753#p108753"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108753#p108753"><![CDATA[
Jeśli dobrze zrozumiałem frazę 'na początku' no to zaraz przy otwarciu klamer od while(1) o to chodziło?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 14 gru 2014, o 23:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-12-14T22:54:13+01:00</updated>
<published>2014-12-14T22:54:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108739#p108739</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108739#p108739"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108739#p108739"><![CDATA[
Małe pytanko. <br />W jaki sposób zainicjować funkcję (w moim przypadku &quot;pomiar&quot;) na początku pętli?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 14 gru 2014, o 22:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-12-14T13:23:07+01:00</updated>
<published>2014-12-14T13:23:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108632#p108632</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108632#p108632"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108632#p108632"><![CDATA[
Wygląda nieco lepiej, ale nie ma takiego rejestru w atmega8 jak ADCSR, jest ADCSRA.<br />W dodatku wrzuć pomiar napięcia w funkcję jak miałeś na początku będziesz wiedział za miesiąc jak wrócisz do programu, które instrukcje odpowiadają za pomiar.<br />Kompilowałeś w ogóle ten poprawiony kod?<br />Drugie pytanie czy potrzebujesz tak często pomiar tego napięcia (robisz to cały czas w pętli, tak szybko pada ten akumulator?, może co sekundę)?<br />Bo jeśli napięcie będzie &quot;skakało&quot; między napięciem granicznym to co chwila będziesz włączał buzzer i go wyłączał. To samo z diodą, nie masz warunku, który gasi diodę, gdy napięcie jest większe, równe 10.5V, po naładowaniu aku dioda już się nie zgasi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 14 gru 2014, o 13:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-12-14T02:03:09+01:00</updated>
<published>2014-12-14T02:03:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108586#p108586</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108586#p108586"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108586#p108586"><![CDATA[
Poprawione wg Twoich uwag:<br />[syntax=c]#include &lt;avr/io.h&gt; //plik nagłówkowy<br /><br />#define LED (1&lt;&lt;PB1) //definicja LED<br />#define BUZZER (1&lt;&lt;PB2) //definicja brzęczka<br />#define AKU (1&lt;&lt;PC3) //definicja wejścia ADC<br /><br /><br />//GŁÓWNA FUNKCJA PROGRAMU//<br /><br />int main( void )<br />{<br />ADMUX = (1&lt;&lt;REFS0) //AREF podłączone do VCC<br />| (1&lt;&lt;MUX1)|(1&lt;&lt;MUX0); // wejście ADC podłączone do ADC3<br /><br />ADCSR = (1&lt;&lt;ADEN) //włączenie modułu ADC<br />| (1&lt;&lt;ADPS2) | (1&lt;&lt;ADPS1); //preskaler ustawiony na 64<br /><br />uint16_t wynik; //definicja zmiennej wynik<br /><br />//konfiguracja wejśc/wyjśc//<br /><br />DDRB |= (LED) | (BUZZER); //LED i brzęczek jako wyjście<br />DDRC &amp;=~ (AKU); //wejście ADC<br />PORTB |= (LED); //ustawienie HIGH na diodzie<br />PORTB &amp;=~ (BUZZER); //ustawienie LOW na brzęczku<br /><br />while (1)<br />{<br />ADCSR |= (1&lt;&lt;ADSC); //start pomiaru<br />while (ADCSR &amp; ADSC); //czeka na zakończenie pomiaru<br />wynik = ADCW; //pzrypisanie wartości pomiaru do wyniku<br /><br />if (wynik &lt;= 717) //jeśli napięcie mniejsze, równe 10,5V<br />{<br />PORTB &amp;=~ (LED); //zaświec diode<br />}<br />else if ((wynik &lt;= 751) &amp;&amp; (wynik &gt; 717)) //jeśli napięcie pomiędzy 11V i 10,5V<br />{<br />PORTB |= (BUZZER); //załącz brzęczek<br />}<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 14 gru 2014, o 02:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-12-14T01:24:08+01:00</updated>
<published>2014-12-14T01:24:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108584#p108584</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108584#p108584"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108584#p108584"><![CDATA[
zwracasz rejestr ADCW, więc jeśli funkcja zwraca jego wartość to wrzucaj wartość zwracaną przez tą funkcję do zmiennej wynik. Potem dopiero ją porównuj ile wynosi czy zapalić diodę czy też nie. Bo aktualnie to porównuje czy wynik jest &lt;717, który nie przechowuje żadnej wartości z pomiaru, tylko jest w nim zero (zmienne globalne automatycznie są zerowane) Nic nie trzeba konwertować ani maskować itp. (przynajmniej ja nie musiałem). Popraw po prostu funkcje odpowiedzialna za pomiar bo nie tak powinna ona wyglądać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 14 gru 2014, o 01:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-12-14T00:52:06+01:00</updated>
<published>2014-12-14T00:52:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108583#p108583</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108583#p108583"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108583#p108583"><![CDATA[
Gotowca nie chcę. Sam muszę do tego dojść. Ty mnie tylko lekko naprowadzaj. <br />Jeżeli wynik pomiaru jest zapisywany w 10 najmłodszych bitach 16 bitowego rejestru ADCW, to wystarczy przypisać ową wartość do zmiennej &quot;wynik&quot;, czy trzeba ją przekonwerterować na wartość dziesiętną?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 14 gru 2014, o 00:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-12-14T00:34:18+01:00</updated>
<published>2014-12-14T00:34:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108579#p108579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108579#p108579"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108579#p108579"><![CDATA[
Zaraz zaraz a funkcja pomiar skąd się wzięła? Sam ją napisałeś czy źródło?<br />Zobacz, zwracasz zmienną wynik, której nawet nie masz w tej funkcji, ani nic do tej zmiennej wynik nie zapisujesz. Wynikiem pomiaru jest rejestr ADCW (u mnie tak było)<br />Mogę Ci oczywiście pokazać kod na pomiar dla medzi8 ale pytanie czy chciałbyś gotowe rozwiązanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 14 gru 2014, o 00:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-12-14T00:29:59+01:00</updated>
<published>2014-12-14T00:29:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108578#p108578</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108578#p108578"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108578#p108578"><![CDATA[
Sprawdzić na razie nie mam na czym, bo programator jeszcze nie doszedł.<br />Rozumiem twoją uwagę. Coś wykombinuję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 14 gru 2014, o 00:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-12-14T00:26:25+01:00</updated>
<published>2014-12-14T00:26:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108577#p108577</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108577#p108577"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108577#p108577"><![CDATA[
Sprawdzałeś to czy od razu na forum?<br />Bo ja nie widzę w while(1) wykonywania się funkcji pomiar zwracającej coś do zmiennej wynik.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 14 gru 2014, o 00:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-12-14T00:08:25+01:00</updated>
<published>2014-12-14T00:08:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108575#p108575</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108575#p108575"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108575#p108575"><![CDATA[
Co Wy na to?<br />[syntax=c]#include &lt;avr/io.h&gt; //plik nagłówkowy<br /><br />#define LED (1&lt;&lt;PB1) //definicja LED<br />#define BUZZER (1&lt;&lt;PB2) //definicja brzęczka<br />#define AKU (1&lt;&lt;PC3) //definicja wejścia ADC<br /><br />uint16_t pomiar (void); //deklaracja funkcji pomiaru<br />uint16_t wynik; //definicja zmiennej wynik<br /><br />//GŁÓWNA FUNKCJA PROGRAMU//<br /><br />int main( void )<br />{<br />ADMUX = (1&lt;&lt;REFS0) //AREF podłączone do VCC<br />| (1&lt;&lt;MUX1)|(1&lt;&lt;MUX0); // wejście ADC podłączone do ADC3<br /><br />ADCSR = (1&lt;&lt;ADEN) //włączenie modułu ADC<br />| (1&lt;&lt;ADPS2) | (1&lt;&lt;ADPS1); //preskaler ustawiony na 64<br /><br /><br />//konfiguracja wejśc/wyjśc//<br /><br />DDRB |= (LED) | (BUZZER); //LED i brzęczek jako wyjście<br />DDRC &amp;=~ (AKU); //wejście ADC<br />PORTB |= (LED); //ustawienie HIGH na diodzie<br />PORTB &amp;=~ (BUZZER); //ustawienie LOW na brzęczku<br /><br />while (1)<br />{<br />if (wynik &lt;= 717) //jeśli napięcie mniejsze, równe 10,5V<br />{<br />PORTB &amp;=~ (LED); //zaświec diode<br />}<br />else if ((wynik &lt;= 751) &amp;&amp; (wynik &gt; 717)) //jeśli napięcie pomiędzy 11V i 10,5V<br />{<br />PORTB |= (BUZZER); //załącz brzęczek<br />}<br />}<br />}<br /><br />uint16_t pomiar (void) //definicja funkcji pomiaru<br />{<br />ADCSR |= (1&lt;&lt;ADSC); //start pomiaru<br />while (ADCSR &amp; ADSC); //czeka na zakończenie pomiaru<br />return wynik; //zwrócenie wyniku<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 14 gru 2014, o 00:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-12-13T00:56:40+01:00</updated>
<published>2014-12-13T00:56:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108452#p108452</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108452#p108452"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108452#p108452"><![CDATA[
Jaśniej po prostu wstaw nawiasy po słowie pomiar a w nim słowko void.<br />Każda funkcja posiada nawiasy okrągłe po jej nazwie, zarówno w deklaracji jak i przy jej wywoływaniu.<br />Tak samo w lini 30 i 34 musisz to zrobić(dodać nawiasy). Ja natomiast proponuję Ci byś wartość pomiaru wrzucił do jakiejś zmiennej i porównywał zmienną z Twoją wartością 717 bo niepotrzebnie dwa razy w jednym przebiegu pętli wykonujesz pomiar ADC.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 13 gru 2014, o 00:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gardziej]]></name></author>
<updated>2014-12-12T08:27:19+01:00</updated>
<published>2014-12-12T08:27:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108320#p108320</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108320#p108320"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108320#p108320"><![CDATA[
Gdzieś Ci zjadło sekcje argumentów w deklaracji funkcji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6104">gardziej</a> — 12 gru 2014, o 08:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-12-12T02:08:25+01:00</updated>
<published>2014-12-12T02:08:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108310#p108310</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108310#p108310"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=108310#p108310"><![CDATA[
Witam. <br />Za poradą Mirka wziąłem się za naukę. Dużo zrozumiałem, lecz pewnie nie wszystko. Kod napisałem od nowa. Po kompilacji wyskoczył mi błąd z którym nie za bardzo wiem co zrobić. Proszę o sprawdzenie czy ma on szansę działać. Założenia jak wyżej.<br />[syntax=c]#include &lt;avr/io.h&gt; //plik nagłówkowy<br /><br />#define LED (1&lt;&lt;PB1) //definicja LED<br />#define BUZZER (1&lt;&lt;PB2) //definicja brzęczka<br />#define AKU (1&lt;&lt;PC3) //definicja wejścia ADC<br /><br />uint16_t pomiar; //deklaracja funkcji pomiaru<br /><br /><br />//GŁÓWNA FUNKCJA PROGRAMU//<br /><br />int main( void )<br />{<br />ADMUX = (1&lt;&lt;REFS0) //AREF podłączone do VCC<br />| (1&lt;&lt;MUX1)|(1&lt;&lt;MUX0); // wejście ADC podłączone do ADC3<br /><br />ADCSR = (1&lt;&lt;ADEN) //włączenie modułu ADC<br />| (1&lt;&lt;ADPS2) | (1&lt;&lt;ADPS1); //preskaler ustawiony na 64<br /><br /><br />//konfiguracja wejśc/wyjśc//<br /><br />DDRB |= (LED) | (BUZZER); //LED i brzęczek jako wyjście<br />DDRC &amp;=~ (AKU); //wejście ADC<br />PORTB |= (LED); //ustawienie HIGH na diodzie<br />PORTB &amp;=~ (BUZZER); //ustawienie LOW na brzęczku<br /><br />while (1)<br />{<br />if (pomiar &lt;=717) //jeśli napięcie mniejsze, równe 10,5V<br />{<br />PORTB &amp;=~ (LED); //zaświec diode<br />}<br />else if ((pomiar &lt;=751) &amp;&amp; (pomiar &gt;717)) //jeśli napięcie pomiędzy 11V i 10,5V<br />{<br />PORTB |= (BUZZER); //załącz brzęczek<br />}<br />}<br />}<br /><br />uint16_t pomiar //definicja funkcji pomiaru<br />{<br />ADCSR |= (1&lt;&lt;ADSC); //start pomiaru<br />while (ADSCR &amp; ADSC); //czeka na zakończenie pomiaru<br />        return ADCW; //zwrócenie wyniku<br />}[/syntax]<br /><br />Kompilator wskazuje błąd w 42 linijce.<div class="codetitle"><b>Code:</b></div><div class="codecontent">error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 12 gru 2014, o 02:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-11-25T14:45:22+01:00</updated>
<published>2014-11-25T14:45:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=105898#p105898</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=105898#p105898"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=105898#p105898"><![CDATA[
<div class="quotetitle">MaxEnergy napisał(a):</div><div class="quotecontent"><br />Mogliby mnie Koledzy trochę naprowadzić na swoje spostrzeżenia?<br /></div><br /><br />Moje spostrzeżenie - kolega musi jednak zacząć konkretnie od PODSTAW języka C ... bo na razie to działasz totalnie po omacku - na zasadzie &quot;albo się uda albo się nie uda&quot; ..... &quot;a jak się nie uda to może uda się jak napiszę odwrotnie?&quot;<br /><br />wiesz ile czasu zmarnujesz na takie podejście ?<br /><br />może warto zacząć od książki:  <!-- 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 na dokładkę obejrzeć sobie poradnik o ADC: <!-- m --><a class="postlink" href="https://www.youtube.com/playlist?list=PLtXXWLsA5QNi_R9uDXpHRpo5hRnig_f23" >https://www.youtube.com/playlist?list=P ... 5hRnig_f23</a><!-- m --><br /><br />bo z takimi kwiatkami jak z tym swoim AKU - nic nie zrobisz <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 lis 2014, o 14:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MaxEnergy]]></name></author>
<updated>2014-11-25T14:40:34+01:00</updated>
<published>2014-11-25T14:40:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=105897#p105897</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=105897#p105897"/>
<title type="html"><![CDATA[Re: Prosty komparator na Atmega8. Prośba o sprawdzenie.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9402&amp;p=105897#p105897"><![CDATA[
W takim razie pytanko... <br />Jaka komenda służy do odczytu wartości na wejściu ADC, aby później przyrównać ją do 717?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6800">MaxEnergy</a> — 25 lis 2014, o 14:40</p><hr />
]]></content>
</entry>
</feed>