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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-10-04T22:13:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4359&amp;mode</id>
<entry>
<author><name><![CDATA[peter81j]]></name></author>
<updated>2013-10-04T22:13:49+01:00</updated>
<published>2013-10-04T22:13:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51940#p51940</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51940#p51940"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa - prosta bibloteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51940#p51940"><![CDATA[
No wlasnie nie mozna tak poprostu wykryc wcisniecia kilku klawiszy na raz to prawda.<br /><br /><br />A co do arduino ta prawda, strasznie rozleniwia czlowieka.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1673">peter81j</a> — 4 paź 2013, o 22:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peter81j]]></name></author>
<updated>2013-10-04T13:15:12+01:00</updated>
<published>2013-10-04T13:15:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51889#p51889</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51889#p51889"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa - prosta bibloteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51889#p51889"><![CDATA[
Nasuwa mi sie pytanie, czemu ludzie nie uzywaja klawiatur analogowych. Pod jednym pinem mozemy miec kilkanascie przyciskow i nie zauwarzylem zjawiska dryganie stykow.<br /><br />Jedyna rzecz przeciwko to wiecej czesci potrzebnych do budowy takiej klawiatury i chyba nic wiecej.<br />W kodzie klawiaturze nie ma zadnego delay.<br /><br />Przerabiam kod sprawdzajacy stan przycisku z arduino na C i napotkalem maly problem, mianowicie w arduino mamy funkcje millis().<br />Jest to funkcja zliczajaca czas od startu procesora i zwracajaca wynik.<br />Czy jak przepisze doslownie ta funkcje na C, to ona takze bedzie dzialac.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1673">peter81j</a> — 4 paź 2013, o 13:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peter81j]]></name></author>
<updated>2013-10-03T23:16:09+01:00</updated>
<published>2013-10-03T23:16:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51810#p51810</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51810#p51810"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa pod Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51810#p51810"><![CDATA[
Czyli musi zostac jak jest. Dzieki za wytlumaczenie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1673">peter81j</a> — 3 paź 2013, o 23:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peter81j]]></name></author>
<updated>2013-10-03T23:00:14+01:00</updated>
<published>2013-10-03T23:00:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51807#p51807</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51807#p51807"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa pod Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51807#p51807"><![CDATA[
No wlasnie chyba juz pozno wczoraj bylo ze na to nie wpadlem, znaczy myslalem o tym tylko ze chcial  to zrobic wlasnie na zmiennych globalnych i nie chcialo ruszyc.<br /><br />Jeszcze jedno pytanie jak przeniose te linijke<br />[syntax=c]const int ADC_KEY_VOLTAGE&#91;5&#93; = {30, 150, 360, 535, 760};[/syntax] do pliku .h i zmienie na [syntax=c]#define ADC_KEY_VOLTAGE&#91;5&#93; = {30, 150, 360, 535, 760}[/syntax] to wywala blad, mysle ze cos nie tak z tablica ale nie moge dojsc co.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1673">peter81j</a> — 3 paź 2013, o 23:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-10-03T20:38:58+01:00</updated>
<published>2013-10-03T20:38:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51796#p51796</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51796#p51796"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa pod Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51796#p51796"><![CDATA[
Może tak, bez zmiennych globalnych.<br />[syntax=c]#define key1   (0 == decodeKey())<br /><br />//...<br />while(1){<br />   if ( key1 ){<br />   LED1_ON;<br />   }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 3 paź 2013, o 20:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-02T23:26:44+01:00</updated>
<published>2013-10-02T23:26:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51732#p51732</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51732#p51732"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa pod Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51732#p51732"><![CDATA[
dzisiaj nie dam juz rady bo mnie jakas grypka rozbiera, musze leciec pospac<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 paź 2013, o 23:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peter81j]]></name></author>
<updated>2013-10-02T23:06:53+01:00</updated>
<published>2013-10-02T23:06:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51730#p51730</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51730#p51730"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa pod Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51730#p51730"><![CDATA[
Poprawione, a moze jakas mala podpowiedz jak rozwiazac moj problem.<br />NIe potrzebuje gotowego kodu ale jakies naprowadzenie na wlasciwa sciezke.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1673">peter81j</a> — 2 paź 2013, o 23:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-10-02T22:59:33+01:00</updated>
<published>2013-10-02T22:59:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51729#p51729</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51729#p51729"/>
<title type="html"><![CDATA[Re: Klawiatura analogowa pod Atmega328p]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51729#p51729"><![CDATA[
uważaj - tu masz babola:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />// definicja funkcji, ktora dokonuje pomiaru<br />uint16_t pomiar(void)<br />        {<br />        ADMUX <strong><span style="color: #FF0000"><span style="font-size: 150%; line-height: normal">|</span></span></strong>= (ADMUX &amp; 0xF8) | kanal;<br /></div><br /><br />i opisane jest to na stronie aktualizacji atnela - warto tam zaglądać polecam<br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/uaktualnienia-programow-do-dvd.html" >http://atnel.pl/uaktualnienia-programow-do-dvd.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 paź 2013, o 22:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[peter81j]]></name></author>
<updated>2013-10-04T12:53:58+01:00</updated>
<published>2013-10-02T22:57:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51728#p51728</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51728#p51728"/>
<title type="html"><![CDATA[Klawiatura analogowa - prosta bibloteka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4359&amp;p=51728#p51728"><![CDATA[
Witam,<br /><br />Wlasnie jestem na rozdziale o ADC w niebieskiej i napisalem sobie taki prosty kodzik do oblsugi tej klawitury ( w mojej uzylem troche innych oporniku tak wiec wartosc ADC beda takze inne) :<br /><br />Plik .h <br />[syntax=c]/*<br /> * adc_keys.h<br /> *<br /> *  Created on: 29 Sep 2013<br /> *      Author: Peter81j<br /> */<br /><br />#ifndef ADC_KEYS_H_<br />#define ADC_KEYS_H_<br /><br />// tu konfigufujemy port i pin gdzie jest podlaczona kalwaitura<br />#define kanalPORT C<br />#define kanal 1<br /><br />// ilosc klawiszy<br />#define NUM_KEYS 5<br /><br />void adc_keys_init(void);<br /><br />uint16_t pomiar(void);<br /><br />int decodeKey(void);<br /><br />#endif /* ADC_KEYS_H_ */[/syntax]<br /><br />Plik .c<br />[syntax=c]/*<br /> * adc_keys.c<br /> *<br /> *  Created on: 29 Sep 2013<br /> *      Author: Peter81j<br /> */<br /><br />#include &lt;avr/io.h&gt;<br /><br />#include &quot;adc_keys.h&quot;<br /><br />// przypisanie wartosci ADC z poszczegolnych przyciskow w zaleznosci od oponikow<br />const int ADC_KEY_VOLTAGE&#91;5&#93; = {30, 150, 360, 535, 760};<br /><br />// definicja funkcji ,ktora dokonuje wyboru napiecia odniesienia, wlaczanie modulu ADC i<br />// ustawienie preskalera na 64<br />void adc_keys_init(void)<br />{<br />    ADMUX |= (1&lt;&lt;REFS0);<br />ADCSRA |= (1&lt;&lt;ADEN)|(1&lt;&lt;ADPS1)|(1&lt;&lt;ADPS0);<br /><br />}<br /><br />// definicja funkcji, ktora dokonuje pomiaru<br />uint16_t pomiar(void)<br />{<br />ADMUX |= (ADMUX &amp; 0xF8) | kanal;<br />ADCSRA |= (1&lt;&lt;ADSC);<br />while( ADCSRA &amp; (1&lt;&lt;ADSC));<br />return ADCW;<br />}<br /><br />// definicja funkcji, ktora dokonuje zamiany wartosci ADC na liczby od 0 d0 4 (ilosc kliwiszy)<br />int decodeKey(void)<br />{<br />uint16_t input = pomiar();<br />int8_t k;<br />for (k = 0; k &lt; NUM_KEYS; k++)<br />{<br />if (input &lt; ADC_KEY_VOLTAGE&#91;k&#93;)<br />{<br />break;<br />}<br />}<br />if (k &gt;= NUM_KEYS)<br />{<br />k = -1;<br />}<br />return k;<br />}[/syntax]<br /><br />Plik mian.c<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 29 Sep 2013<br /> *      Author: Peter81j<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;lcd/lcd44780.h&quot;<br /><br />#include &quot;adc_keys.h&quot;<br /><br />#define LED_PIN1 (1&lt;&lt;PB4)//definicja pinu Led1<br />#define LED_PIN2 (1&lt;&lt;PB5)//definicja pinu Led2<br />#define LED1_ON PORTB |= LED_PIN1//makrodefinicja - zalacz Led<br />#define LED2_ON PORTB |= LED_PIN2<br />#define LED1_OFF PORTB &amp;= ~LED_PIN1//makrodefinicja - wylacz Led<br />#define LED2_OFF PORTB &amp;= ~LED_PIN2<br /><br />int main(void) {<br /><br />DDRB |= LED_PIN1 | LED_PIN2 ;// porty jako wyjscie<br /><br /><br />lcd_init();// inicjalizacja wyswietlacza<br />adc_keys_init();// inicjalizacja klawiszy<br /><br />while(1){<br /><br /><br />int key = (decodeKey());<br />if ( key == 0){<br />LED1_ON;<br />}else if (key == 1){<br />LED1_OFF;<br />}else if ( key == 2){<br />LED2_ON;<br />}else if( key == 3){<br />LED2_OFF;<br />}<br /><br />lcd_cls();<br />lcd_int(decodeKey());        // wyswietla numer klawisza<br />_delay_ms(10);<br /><br /><br /><br />}<br />}[/syntax]<br /><br />Program dziala bez problemu i o dziwo ruszyl za 1 razem, tylko ze teraz chcial by zamiast w pliku main.c wpisywac przypisanie <br /><br />[syntax=c]( key == 0)[/syntax] <br /><br />wpisac poprostu <br /><br />[syntax=c]( key1)[/syntax]. <br /><br />Wiem ze musze zadeklarowac zmine globalne:<br />[syntax=c]extern volatile uint8_t key1;<br />extern volatile uint8_t key2;<br />extern volatile uint8_t key3;<br />extern volatile uint8_t key4;<br />extern volatile uint8_t key5;[/syntax]<br /><br />Ale po za tym brak mi pomyslow na rozwiazanie tego zadania.<br /><br />Project tej klawatury przerabiam z Arduino gdyz przygode z programowanie zaczalem wlasnie od Arduino.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1673">peter81j</a> — 2 paź 2013, o 22:57</p><hr />
]]></content>
</entry>
</feed>