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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=22198&amp;mode</id>
<entry>
<author><name><![CDATA[gregor126p]]></name></author>
<updated>2019-04-28T19:34:39+01:00</updated>
<published>2019-04-28T19:34:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22198&amp;p=218526#p218526</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22198&amp;p=218526#p218526"/>
<title type="html"><![CDATA[Re: Atmega8/LCD Problem z pomiarem ADC dla dwóch kanałów.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22198&amp;p=218526#p218526"><![CDATA[
Dziękuje za pomoc. Kod poprawiony i działa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10796">gregor126p</a> — 28 kwi 2019, o 19:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2019-04-28T18:32:13+01:00</updated>
<published>2019-04-28T18:32:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22198&amp;p=218520#p218520</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22198&amp;p=218520#p218520"/>
<title type="html"><![CDATA[Re: Atmega8/LCD Problem z pomiarem ADC dla dwóch kanałów.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22198&amp;p=218520#p218520"><![CDATA[
Definicji funkcji nie powinieneś umieszczać wewnątrz procedury obsługi przerwania, możesz tam umieścić co najwyżej wywołanie funkcji.<br /><br />Nie wiem po co używasz przerwań timera, jeśli pomiaru ADC (wywołania funkcji <em><strong>pomiar() </strong></em>) dokonujesz w pętli głównej programu.<br /><br />Nie wiem jak dokładnie chcesz skonfigurować timer 0, ale jeśli chcesz skrócić okres zliczania do 100, to musisz powtórzyć linijkę <strong><em>TCNT0 = 155;</em></strong> wewnątrz procedury obsługi przerwania, a najlepiej zamiast tego użyć trybu CTC.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 28 kwi 2019, o 18:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[gregor126p]]></name></author>
<updated>2019-04-28T17:33:22+01:00</updated>
<published>2019-04-28T17:33:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22198&amp;p=218519#p218519</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22198&amp;p=218519#p218519"/>
<title type="html"><![CDATA[Atmega8/LCD Problem z pomiarem ADC dla dwóch kanałów.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22198&amp;p=218519#p218519"><![CDATA[
Witam.<br /><br />Mam problem z kodem dla pomiaru dla dwóch kanałów (PC1 i PC2) i wyświetlenia tych wartość na ekranie LCD 2x16. Po wgraniu programu wyświetlana jest wartość tylko dla kanału PC1 a dla PC2 jest ciągle zero. Do obsługi wyświetlacza korzystam z biblioteki dołączonej do Blue Booka. Poniżej zamieszczam kod programu z pliku main.c Proszę o pomoc w poprawie napisanego programu. (Program pisany w  środowisku eclipse)<br /><br />[syntax=c_mac]/*<br /> * main.c<br /> *<br /> *  Created on: 27 kwi 2019<br /> *      Author: Grzegorz<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br /><br /><br /><br />uint16_t pomiar (uint8_t kanal);<br /><br /><br />int main (void) {<br /><br /><br /><br />lcd_init();<br /><br />ADMUX |= (1&lt;&lt;REFS0);<br /><br />ADCSRA |= (1&lt;&lt;ADEN)| (1&lt;&lt;ADPS1) | (1&lt;&lt;ADPS0);<br /><br /><br /><br />//Inicjalizacja Timera<br />   TIMSK |= (1&lt;&lt;TOIE0); //Przerwanie overflow przepełnienie timera<br />   TCCR0 |= (1&lt;&lt;CS01); // źródłem CLK, preskaler 8 (2000000 Hz)<br />   TCNT0 = 155; //Początkowa wartość licznika<br /><br /><br />   sei();  /* włączamy globalne przerwania */<br /><br />while(1) {<br /><br /><br />lcd_cls();<br /><br /><br /><br /> lcd_int (pomiar(1));<br /> lcd_locate(1,0);<br /> lcd_int (pomiar(2));<br />_delay_ms(1000);<br /><br /><br />}<br /><br />}<br /><br /><br />ISR(TIMER0_OVF_vect)<br />{<br /><br /><br />uint16_t pomiar(uint8_t kanal) {<br /><br /><br /><br />ADMUX = (ADMUX &amp; 0xF8) | kanal;<br /><br />ADCSRA |= (1&lt;&lt;ADSC);<br /><br /><br /><br />while(ADCSRA &amp; (1&lt;&lt;ADSC));<br /><br /><br />return ADCW;<br /><br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10796">gregor126p</a> — 28 kwi 2019, o 17:33</p><hr />
]]></content>
</entry>
</feed>