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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-05-18T20:28:08+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11735&amp;mode</id>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-05-18T20:28:08+01:00</updated>
<published>2015-05-18T20:28:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129531#p129531</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129531#p129531"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129531#p129531"><![CDATA[
musisz zwiększyć tolerancje na conajmniej +- 40 w jedną i w drugą stronę. Niestety przetwornik ADC w megach nie należy do zbyt dokładnych. Ale jak się obejrzy Mirka poradniki o ADC to można z niego wykrzesać dużo. Zadbaj o odpowiednią filtracje zasilania przede wszystkim.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 18 maja 2015, o 20:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2015-05-18T19:33:28+01:00</updated>
<published>2015-05-18T19:33:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129528#p129528</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129528#p129528"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129528#p129528"><![CDATA[
Takie jeszcze jedno pytanko <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Jak sobie poradzić z drganiami styków, bo takie występują chyba prawda ??<br /><br />Klawiaturka ładnie, się przełącza ale po dłuższej zabawie widać że coś jest nie tak.<br /><br />[syntax=c]if (pm&gt;220 &amp;&amp; pm &lt; 240){<br />PORTD ^= LED1;<br />}[/syntax]<br /><br />to dioda zmienia stan na przeciwny, a po którymś razie się zapala i trzeba kliknąć 2 razy bądź przytrzymać dłużej przycisk. <br />Jak naciskam dość szybko, to na wyświetlaczu pojawia się wynik, ale na diodę led już nie łapie <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 41 minutach ]</span></strong><br /><br />Znalazłem odpowiedź, tak mi się wydaję <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Poradnik Pana Mirka ADC Part 6a <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Muszę go obejżeć, chyba tam będzie recepta na mój problem <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3441">Rafal9018</a> — 18 maja 2015, o 19:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-05-18T19:21:43+01:00</updated>
<published>2015-05-18T19:21:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129526#p129526</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129526#p129526"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129526#p129526"><![CDATA[
Spoko, po to tu jesteśmy, żeby sobie pomagać. <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=2500">Nefarious19</a> — 18 maja 2015, o 19:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2015-05-18T19:06:31+01:00</updated>
<published>2015-05-18T19:06:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129521#p129521</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129521#p129521"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129521#p129521"><![CDATA[
Ach no tak <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> 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=3441">Rafal9018</a> — 18 maja 2015, o 19:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-05-18T17:30:52+01:00</updated>
<published>2015-05-18T17:30:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129506#p129506</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129506#p129506"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129506#p129506"><![CDATA[
Wywal tego delaya. Tą linijkę:<br /><br />[syntax=c]pm = pomiar(5);[/syntax]<br /><br />wstaw poza kod timera programowego... nie widzisz że teraz pomiar dokonuje Ci się co 2,7 sekundy? Bo co tyle przy preskalerze 1024 i zegarze 1 MHZ oraz timerze równym 250 wykonuję się tego kod spod ifa w Twojej pętli głównej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 18 maja 2015, o 17:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2015-05-18T17:24:07+01:00</updated>
<published>2015-05-18T17:24:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129505#p129505</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129505#p129505"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129505#p129505"><![CDATA[
Już widzę gdzie zrobiłem błąd jeśli chodzi o przerwanie. Cała moja pętla główna to było jedno wielkie przerwanie (tak mi się wydaje  <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> ). Troszkę pokombinowałem, po wstawieniu w pętlę główną :<br /><br />[syntax=c]_delay_ms(100);[/syntax]<br /><br />Zaczeło działać tak jak chciałem, czyli płynnie. <br /><br />Ale dlaczego po użyciu okropnego delaya, przecież to zatrzymuję procesor. Czy jest to związane z  czasem konwersji ADC ?? <br />W książce Pana Mirka też jest użyty delay.<br /><br />Odnośnie samej klawiatury, wystarczy ustawić przedział ADC i to tylko tyle ?? Czy da się to inaczej zrobić ??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3441">Rafal9018</a> — 18 maja 2015, o 17:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-05-18T15:44:39+01:00</updated>
<published>2015-05-18T15:44:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129490#p129490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129490#p129490"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129490#p129490"><![CDATA[
A w którym miejscu przerwania dokonujesz pomiaru? Bo ja jakoś tego nie widzę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 18 maja 2015, o 15:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2015-05-18T15:39:35+01:00</updated>
<published>2015-05-18T15:39:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129489#p129489</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129489#p129489"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129489#p129489"><![CDATA[
Zwiększyłem częstotliwość taktowania do 8Mhz. Nie rozumiem jak mogę dokonywać pomiaru poza przerwaniem. Przecież muszę co jakiś czas wywoływać polecenie pomiaru. _delay_ms blokuje procesor na jakiś czas, Timery programowe też się nie nadają to jak to zrobić ??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3441">Rafal9018</a> — 18 maja 2015, o 15:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-05-18T11:34:27+01:00</updated>
<published>2015-05-18T11:34:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129469#p129469</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129469#p129469"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129469#p129469"><![CDATA[
Z moich obliczeń że Twój timer programowy tyka co 2,6 sekundy i to w nim robisz pomiar... więc czemu się dziwisz?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Twoje przerwanie wykonuje się co:<br /><br />Fclk/(prescaler*(OCR+1)) = 1000000/(1024*(9+1)) = 97,7 Hz czyli 0,01024 sekundy.<br /><br />Teraz sobie to pomnóż razy 250..<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />Moja rada, dokonuj pomiaru poza przerwaniem i przyspiesz ten procesor do jakiegoś normalnego taktowania. Chyba że lubisz ślimaki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 18 maja 2015, o 11:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2015-05-18T11:10:38+01:00</updated>
<published>2015-05-18T11:10:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129465#p129465</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129465#p129465"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129465#p129465"><![CDATA[
Proszę bardzo o to mój cały kod: <br /><br />[syntax=c]#include &lt;stdio.h&gt;<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;lcd44780.h&quot;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />#define LED1 (1&lt;&lt;PD5)<br /><br /><br /><br />volatile uint8_t Timer1;<br />volatile uint8_t Timer2;<br />volatile uint8_t Timer3;<br /><br /><br />uint16_t pomiar (uint8_t kanal);<br /><br />int main (void){<br /><br />uint32_t wynik = 0;<br />uint16_t pm = 0;<br />uint8_t cz_d = 0;<br />uint8_t cz_u = 0;<br /><br />lcd_init();<br />lcd_cls();<br /><br />// inicjalizacja ADC<br /><br /><br />ADCSRA |= (1&lt;&lt;ADEN);   // włączenie adc<br />ADCSRA |= (1&lt;&lt;ADPS2) | (1&lt;&lt;ADPS1) | (1&lt;&lt;ADPS0); // preskaler 16<br />ADMUX |= (1&lt;&lt;REFS0) | (1&lt;&lt;REFS1); // wewnętrzne napięcie odniesienia 2,56 V<br /><br /><br /><br />//---------------------- Timer 2 ------------------------------------------------------------<br /><br />TCCR2 |= (1&lt;&lt;WGM21);// Timer 2 w trybie CTC<br />TCCR2 |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);// Preskaler 1024<br />OCR2 = 9;//<br />TIMSK |= (1&lt;&lt;OCIE2);// zezwolenie na przerwanie Compare<br /><br /><br /><br /><br />DDRD |= LED1;<br /><br /><br /><br /><br />sei();<br />while(1){<br /><br /><br /><br />if (!Timer1){<br />Timer1=250;<br /><br /><br /><br />wynik = pomiar (PC5);<br />lcd_cls();<br /><br /><br /><br />pm = pomiar(5);<br />wynik = pm * 25 * 2;<br />cz_d = wynik/10000;<br />cz_u = (wynik/100) % 100;<br /><br />lcd_locate(0,5);<br />lcd_int(cz_d);<br />lcd_locate(0,6);<br />lcd_str(&quot;.&quot;);<br />lcd_locate(0,7);<br />lcd_int(cz_u);<br />lcd_locate(0,8);<br />lcd_str(&quot;V&quot;);<br /><br />lcd_locate(1,8);<br />lcd_int(pm);<br /><br /><br /><br /><br /><br /><br /><br />}<br /><br /><br />if (pm &gt; 230 &amp;&amp; pm &lt; 240) {<br />         PORTD |= LED1;<br />         }<br />else PORTD &amp;= ~LED1;<br /><br /><br /><br />}<br />}<br /><br /><br />uint16_t pomiar( uint8_t kanal ) {<br /><br />ADMUX = (ADMUX &amp; 0b11111000) | kanal;<br /><br />ADCSRA |= (1&lt;&lt;ADSC);  // start konwersji<br /><br />while( ADCSRA &amp; (1&lt;&lt;ADSC) );<br /><br />return ADCW;<br />}<br /><br /><br />// obsługa timerów programowych<br />ISR( TIMER2_COMP_vect ) {<br />uint16_t n;<br /><br />n = Timer1;// 100Hz Timer1<br />if (n) Timer1 = --n;<br />n = Timer2;// 100Hz Timer2<br />if (n) Timer2 = --n;<br />n = Timer3;// 100Hz Timer2<br />if (n) Timer3 = --n;<br />}[/syntax]<br /><br />Zwiekszyłem również przedział:<br /><br />[syntax=c]if (pm &gt; 200 &amp;&amp; pm &lt; 300) {<br />PORTD |= LED1;<br />}<br />else PORTD &amp;= ~LED1;[/syntax]<br /><br />ale nic nie pomogło.<br /><br />Dodam, że pracuję na procesorze Atmega8 taktowaną częstotliwością 1Mhz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3441">Rafal9018</a> — 18 maja 2015, o 11:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2015-05-18T11:01:45+01:00</updated>
<published>2015-05-18T11:01:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129463#p129463</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129463#p129463"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129463#p129463"><![CDATA[
Po pierwsze spróbuj dać większy przedział, po drugie pokaż resztę kodu. Po trzecie wszystkie wyrażenia warunkowe dawaj w nawiasy, więcej pisania ale kod czytelniejszy i masz pewność że wykonują się w kolejności takiej jak Ty chcesz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 18 maja 2015, o 11:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rafal9018]]></name></author>
<updated>2015-05-18T10:51:58+01:00</updated>
<published>2015-05-18T10:51:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129462#p129462</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129462#p129462"/>
<title type="html"><![CDATA[Klawiatura analogowa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11735&amp;p=129462#p129462"><![CDATA[
Witam. Jestem po dziale adc z niebieskiej książki. Wykonałem sobie na płytce stykowej taki mały woltomierz. Wszystko fajnie działa, postanowiłem wykonać klawiaturę analogową. Nie bardzo wiem jak definiować wciśnięcie przycisku. Pierwszy mój pomysł, po prostu wartość ADC:<br /><br />[syntax=c]if (pm &gt; 230 &amp;&amp; pm &lt; 240)  PORTD ^= LED1;[/syntax]<br /><br />totalnie dla testów to zrobiłem i zauważyłem, że strasznie wolno to działa. Wciskam przycisk i po około 3 sekundach dioda zmienia swój stan na przeciwny. W sumie na wyświetlaczu zmienia się to tak samo, który kolwiek przycisk nie wcisnę to trzeba dość długo poczekać aż zmieni się wartość adc. <br /><br />Jak mogę rozwiązać ten problem ??  Efekt jaki chce uzyskać to, żeby moja klawiatura reagowała tak jak normalny przycisk klikam i jest <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Brak mi pomysłów, proszę was o wskazówki <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3441">Rafal9018</a> — 18 maja 2015, o 10:51</p><hr />
]]></content>
</entry>
</feed>