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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8745&amp;mode</id>
<entry>
<author><name><![CDATA[fotograf9]]></name></author>
<updated>2014-10-12T10:27:48+01:00</updated>
<published>2014-10-12T10:27:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98608#p98608</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98608#p98608"/>
<title type="html"><![CDATA[Re: Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98608#p98608"><![CDATA[
Powalczyłem troche z tym przez sobotę i udało się. Oczywiście trzeba jeszcze kod nieco doszlifować, żeby wszystko zachowywało się tak jak potrzeba ale na tę chwilę porównanie tablic działa poprawnie i zapala diode. Poniżej fragment dotyczący samego porównywania i zapalania diody.<br /><br />[syntax=c]klawiatura_analog();<br />if(pomiar_klawiatura(PC4)&gt;40)<br />{<br />    tab&#91;i&#93; = stan_przycisku;<br />    UART_putc(tab&#91;i&#93;);//sprawdzam co zostało wpisnae do tablicy<br />    stan_przycisku = 0; //zeruje stan przycisku, żeby tylko raz odczytać stan przycisku<br />    // Mamy już wszystkie 3 znaki hasła<br />    if (i == 2)<br />      {<br />       //Porównaj hasło<br />          if (tab&#91;0&#93; == haslo&#91;0&#93; &amp;&amp; tab&#91;1&#93; == haslo&#91;1&#93; &amp;&amp; tab&#91;2&#93; == haslo&#91;2&#93;)<br />              {<br />                  LED_2_ON;<br />              }<br />       // ustaw wartości początkowe<br />       i = 0;<br />       tab&#91;0&#93; = 0; tab&#91;1&#93; = 0; tab&#91;2&#93; = 0;<br />       }<br />     i++;<br />}[/syntax]<br /><br /><br />Trzeba dorobić teraz kiedy ma się kasować i dać przycisk do potwierdzenia i kasowania wpisanego hasla.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3647">fotograf9</a> — 12 paź 2014, o 10:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-10-11T13:23:38+01:00</updated>
<published>2014-10-11T13:23:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98549#p98549</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98549#p98549"/>
<title type="html"><![CDATA[Re: Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98549#p98549"><![CDATA[
Cześć, ja miałem podobny problem przy zamku na RFID ,gdzie zapisywałem znaki kolejno do tablicy i porównywałem ze wzorcem.<br />Udało się rozwiązać i pięknie działa.<br /><br />Tu co prawda wklepujesz cyfry ręcznie ,ale sama idea porównywania tablic może ci się przyda.<br /><br />forum.atnel.pl/topic8255.html?hilit=zamek%20rfid<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 11 paź 2014, o 13:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[fotograf9]]></name></author>
<updated>2014-10-11T12:51:59+01:00</updated>
<published>2014-10-11T12:51:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98546#p98546</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98546#p98546"/>
<title type="html"><![CDATA[Re: Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98546#p98546"><![CDATA[
Definicja zmiennych:<br /><br />[syntax=c]//swiatlo zielone<br />#define LED_Z (1&lt;&lt;PB0)<br />#define LED_Z_ON  PORTB &amp;= ~LED_Z<br />#define LED_Z_OFF PORTB |= LED_Z<br />//swiatlo czerwone<br />#define LED_C (1&lt;&lt;PB1)<br />#define LED_C_ON PORTB &amp;= ~LED_C<br />#define LED_C_OFF PORTB |= LED_C<br />//przycisk zapisu pomiaru mostka<br />#define KEY (1&lt;&lt;PD7)<br />//mruganie diodą dla sprawdzenia programu<br />#define LED (1&lt;&lt;PB2)<br />#define LED_ON PORTB &amp;=~LED<br />#define LED_OFF PORTB |= LED<br />//syganlizacja diody jako otwarcie bramy<br />#define LED_2 (1&lt;&lt;PC0)<br />#define LED_2_ON PORTC &amp;=~LED_2<br />#define LED_2_OFF PORTC |= LED_2<br />//klawiatura analogowa definicja przycisku<br />#define PRZYC_S1 0x31 // 1<br />#define PRZYC_S2 0x32 // 2<br />#define PRZYC_S3 0x33 // 3<br />#define PRZYC_S4 0x34 // 4<br />#define PRZYC_S5 0x35 // 5<br />#define PRZYC_S6 0x36 // 6<br />#define PRZYC_S7 0x37 // 7<br />#define PRZYC_S8 0x38 // 8<br />#define PRZYC_S9 0x39 // 9<br />#define PRZYC_S10 0x2A //*<br />#define PRZYC_S11 0x30 //0<br />#define PRZYC_S12 0x23 //#[/syntax]<br /><br /><br />A tu główny program, nie przesyłam bibliotek UARTA i ADC bo w tym przypadku są kompletnie zbędne.<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 21-08-2014<br /> *      Author: B?a?ej<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;UART/UART.h&quot;<br />#include &quot;ADC/ADC.h&quot;<br />#include &quot;DEFINICJE/DEFINICJE.h&quot;<br /><br /><br /><br />uint8_t klawisz_wcisniety ();<br /><br />uint8_t odebrano;<br />uint16_t wynik, a;<br />unsigned char stan_przycisku;<br /><br />char haslo&#91;&#93;={0x31,0x33,0x35};<br />char tab&#91;3&#93;;<br />int x=0,y=0,z=0;<br />int main (void)<br />{<br />DDRB |= LED_C | LED_Z | LED;<br />PORTB |= LED_Z;<br />DDRD &amp;= ~KEY;<br />PORTD |= KEY;<br />DDRC |= LED_2;<br />PORTC |= LED_2;<br /><br />ADC_init (); //inicjalizacja ADC<br />UART_init( __UBRR ); //inicjalizacja UART<br />UART_puts(&quot;Mostek tenosmetryczny\r\n&quot;);<br />UART_puts(&quot;Zmiany napiecia:\r\n&quot;);<br />sei();<br /><br />while(1)<br />{<br /><br />//sprawdzanie jaki przycisk jest wciśnięty<br />// chętnie wywaliłbym to do jakiejś podfunkcji żeby nie zabierać miejsca w pętli głównej programu.<br />if (pomiar_klawiatura(PC4)&gt;980) stan_przycisku=PRZYC_S1;<br />else if (pomiar_klawiatura(PC4)&gt;850) stan_przycisku=PRZYC_S2;<br />else if (pomiar_klawiatura(PC4)&gt;770) stan_przycisku=PRZYC_S3;<br />else if (pomiar_klawiatura(PC4)&gt;700) stan_przycisku=PRZYC_S4;<br />else if (pomiar_klawiatura(PC4)&gt;600) stan_przycisku=PRZYC_S5;<br />else if (pomiar_klawiatura(PC4)&gt;500) stan_przycisku=PRZYC_S6;<br />else if (pomiar_klawiatura(PC4)&gt;400) stan_przycisku=PRZYC_S7;<br />else if (pomiar_klawiatura(PC4)&gt;350) stan_przycisku=PRZYC_S8;<br />else if (pomiar_klawiatura(PC4)&gt;270) stan_przycisku=PRZYC_S9;<br />else if (pomiar_klawiatura(PC4)&gt;180) stan_przycisku=PRZYC_S10;<br />else if (pomiar_klawiatura(PC4)&gt;100) stan_przycisku=PRZYC_S11;<br />else if (pomiar_klawiatura(PC4)&gt;50) stan_przycisku=PRZYC_S12;<br /><br />a=pomiar_mostek(PC5);<br /><br />//dioda świeci - sprawdznei czy działa pętla.<br />LED_ON;<br />_delay_ms(100);<br />LED_OFF;<br />_delay_ms(100);<br /><br />//otwieranie bramy na hasło, przyspianie przycisku do zmiennej<br /><br /><br />for(int i=0;i&lt;3;i++)<br />   {<br />if(stan_przycisku)<br />{<br />tab&#91;i&#93;=stan_przycisku;<br />for(int j=0;j&lt;3;j++)<br />{<br />if(tab&#91;j&#93;==haslo&#91;0&#93;) x=1;<br />if(tab&#91;j&#93;==haslo&#91;1&#93;) y=1;<br />if(tab&#91;j&#93;==haslo&#91;2&#93;) z=1;<br />if(x+y+z==3) LED_2_ON;<br />}<br />}<br />   }<br />if (klawisz_wcisniety())<br />{<br />LED_C_OFF;<br />LED_Z_ON;<br />UART_puts(&quot;\r\nZapisano pomiar! \r\n&quot;);<br />}<br /><br />if(a&gt;850)<br />{<br />LED_Z_OFF;<br />LED_C_ON;<br />}<br />}<br /><br />}<br /><br />ISR (USART_RXC_vect) //przerwanie odczytu danych<br />{<br />odebrano=odbierz();<br />if(odebrano==0x3F) //jeżeli odebrano znak ?<br />{<br />wynik=pomiar_mostek(PC5);//przypisywanie od zmiennej znakow przesłanych<br />UART_puts (&quot;\r\n Wartosc ADC: &quot;);<br />UART_putlong (wynik, 10); //wywołanie zmiennej wynik i zapis w postaci dziesiętnej<br />UART_puts (&quot; Przycisk ADC: &quot;);<br />UART_putlong (b, 10);<br />UART_puts (&quot;\r\n&quot;);<br />UART_putc(stan_przycisku);<br />UART_puts (&quot;\r\n&quot;);<br />}<br />}<br /><br /><br />uint8_t klawisz_wcisniety ()<br />{<br />if (!(PIND &amp; KEY))<br />{_delay_ms(20);<br />if (!(PIND &amp; KEY)) return 1;<br />}<br />return 0;<br />}[/syntax]<br />Jak w gram te program to zaświeca diodę jeżeli wciśniemy po prostu te trzy cyfyr obojetnie w jakiej kolejności i obojętnie czy naciśniemy w trakcie inny przycisk<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3647">fotograf9</a> — 11 paź 2014, o 12:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2014-10-11T12:38:35+01:00</updated>
<published>2014-10-11T12:38:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98545#p98545</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98545#p98545"/>
<title type="html"><![CDATA[Re: Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98545#p98545"><![CDATA[
<div class="quotetitle">fotograf9 napisał(a):</div><div class="quotecontent"><br />Zasugerowałem się zrobieniem dwóch pętli,<br /></div><br /><br />A moglbys pokazac caly kod ? Byloby na pewno latwiej cos Ci podpowiedziec <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=4344">RafPe</a> — 11 paź 2014, o 12:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[fotograf9]]></name></author>
<updated>2014-10-11T12:00:25+01:00</updated>
<published>2014-10-11T12:00:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98540#p98540</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98540#p98540"/>
<title type="html"><![CDATA[Re: Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98540#p98540"><![CDATA[
Zasugerowałem się zrobieniem dwóch pętli, jednak teraz jeżeli nadusimy obojętnie który przycisk z tablicy haslo zapali nam się dioda, kolejność wciskania też może być obojętna.<br /><br />[syntax=c]char haslo&#91;&#93;={0x31,0x33,0x35};<br />char tab&#91;3&#93;;<br /><br />for(int i=0;i&lt;3;i++)<br />{<br />if(stan_przycisku)<br />{<br />tab&#91;i&#93;=stan_przycisku;<br />for(int j=0;j&lt;3;j++)<br />{<br />if(tab&#91;j&#93;==haslo&#91;j&#93;) LED_2_ON;<br />}<br />}<br />}[/syntax]<br />Na pewno kod który tu napisałem jest zbyt posty żeby to mogło zadziałać w dany sposób. Domyślam się że brakuje to jakieś zmiennej, która mogła by trzymać w pamięci kolejne porównania przycisków. Kombinowałem, żeby program sprawdzał czy przypisany przycisk do tab[j] równał się z wartością w tablicy haslo[]<br /><br />[syntax=c]char haslo&#91;&#93;={0x31,0x33,0x35};<br />char tab&#91;3&#93;;<br />int x,y,z;<br /><br />for(int i=0;i&lt;3;i++)<br />{<br />if(stan_przycisku)<br />{<br />tab&#91;i&#93;=stan_przycisku;<br />for(int j=0;j&lt;3;j++)<br />{<br />if(tab&#91;j&#93;==haslo&#91;0&#93;) x=1;<br />if(tab&#91;j&#93;==haslo&#91;1&#93;) y=1;<br />if(tab&#91;j&#93;==haslo&#91;2&#93;) z=1;<br />if(z+y+x==3) LED_2_ON;<br />}<br />}<br />}[/syntax] Jedank w tym przypadku pętla zapamiętuje zmienną tylko raz x,y lub z.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3647">fotograf9</a> — 11 paź 2014, o 12:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lex_]]></name></author>
<updated>2014-10-08T21:03:08+01:00</updated>
<published>2014-10-08T21:03:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98143#p98143</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98143#p98143"/>
<title type="html"><![CDATA[Re: Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98143#p98143"><![CDATA[
Witam<br /><br />Na moje oko musisz mieć co najmniej dwie pętle for.<br /><br />Pierwsza - zapis klawiszy do tablicy. Druga - porównanie i dopiero wynik.<br /><br />Jak pomysł Ci podejdzie to coś skrobnę.<br /><br />Pomysł z ADC dobry, ale może da się to zrobić łatwiej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2676">Lex_</a> — 8 paź 2014, o 21:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2014-10-08T17:10:24+01:00</updated>
<published>2014-10-08T17:10:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98092#p98092</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98092#p98092"/>
<title type="html"><![CDATA[Re: Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98092#p98092"><![CDATA[
To jak tak na dziko wskocze z <span style="text-decoration: underline">NIETESTOWANYM</span> pomyslem <br /><br />[syntax=c]uint8_t moj_pomiar=769;// to bylby pomiar z ADC <br /><br />uint8_t war&#91;4&#93; =         {980,880,780,680};         // Wartosci ADC dla klawiszy<br />char klaw_war&#91;4&#93; =     {&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;};// dostepne wartosci kodu<br />char entered&#91;4&#93;;// wprowadzony kod<br />char unlock&#91;4&#93; =&quot;4132&quot;;// unlock<br /><br />for (int var = 0; var &lt; sizeof( war ); var++)<br />{<br />if( moj_pomiar &gt; war&#91; var &#93;)<br />{<br />entered&#91; var &#93; += klaw_war&#91;var&#93;;<br />break;<br />}<br />}<br /><br />// porwnianie entered i unlock ?!<br />// uzywajac funkcji wbudopwanej do porownywania...[/syntax]<br /><br />A cos takiego ? Robisz sobie ADC a nastepnie masz tablice <strong>war</strong> z wartosciami ADC dla klawiszy. Pozniej masz <strong>klaw_war</strong> ktora ma odpowiednio wartosci char dla klawiszy.<br />Nastepnie <strong>entered</strong> czyli to co zostaje wprowadzone. I docelowo <strong>unlock</strong> czyli to co ma byc wprowadzone jako kod zabezpieczajacy<br /><br />Po przejsciu przez tablice wartosci mozesz porownac <strong>entered</strong> oraz <strong>unlock</strong> i jesli sa takie same to cos robisz a jak nie to robisz cos innego ?!<br /><br />Jesli kod zawiera jakis blad ... sory ale nie mialem czasu wrzucic na ATB :/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 8 paź 2014, o 17:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2014-10-08T16:32:25+01:00</updated>
<published>2014-10-08T16:32:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98090#p98090</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98090#p98090"/>
<title type="html"><![CDATA[Re: Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98090#p98090"><![CDATA[
Kolego ale tak jak pisałem wyżej bez twojego kodu mało co pomogę ... więc tylko podpowiadam jak wyżej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 8 paź 2014, o 16:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[fotograf9]]></name></author>
<updated>2014-10-08T16:12:30+01:00</updated>
<published>2014-10-08T16:12:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98087#p98087</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98087#p98087"/>
<title type="html"><![CDATA[Re: Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98087#p98087"><![CDATA[
Nic dobrego nie przychodzi mi do głowy, jakby to poprawnie rozwiązać<br /><br />Próbowałem z funkcją strcmp jednak ona porównuje stringi a nie pojedyncze znaki w tabeli. Wstawiając nową zmienną która liczy ile przycisków użyłem mogę wrzucić w pętle, ale zwiększy mi to tylko raz argument. <br /><br />W funkcji warunkowej if mogę porównywać tylko jeden argument z tablicy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3647">fotograf9</a> — 8 paź 2014, o 16:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2014-10-08T10:15:44+01:00</updated>
<published>2014-10-08T10:15:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98062#p98062</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98062#p98062"/>
<title type="html"><![CDATA[Re: Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98062#p98062"><![CDATA[
Kolego jak na moje oko to mało kodu dałeś więc nie mogę pomóc.<br /><br />Ale ale doradzić zawsze mogę.<br /><br />Powiedzmy że kod ma 6 cyfr dołożyłbym zmienną która liczyła by od 0 do 6 ... dlaczego ma liczyć wciśnięć klawisza ? A no dlatego że wbojamy<br /><br />123456 cyfr i na końcu zatwierdzamy # i tutaj odpowiednio zmienna biegnie ...<br />012345 zmiennych i na końcu mamy 6 zmienną i po osiągnięciu zmienna = 6 dopiero porównywałbym czy cyfry się zgadzają z tymi zapisanymi w pamięci eeprom<br /><br />Ta linijka jest zbędna:<br />[syntax=c]else {};[/syntax]<br /><br /><br />No i jeszcze to:<br /><br />[syntax=c]if(stan_przycisku==haslo&#91;i&#93;) LED_2_ON; //tu ma porównywać[/syntax]<br /><br />tutaj i jest numerem obiegu pętli for więc led zapali się zawsze i to od samego początku obiegu pętli.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 8 paź 2014, o 10:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[fotograf9]]></name></author>
<updated>2014-10-08T09:58:35+01:00</updated>
<published>2014-10-08T09:58:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98059#p98059</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98059#p98059"/>
<title type="html"><![CDATA[Zamek na hasło]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8745&amp;p=98059#p98059"><![CDATA[
Ostatnio zmagam się z problemem kodu, który będzie porównywał naciśnięte przyciski z tablicą.<br /><br />Otwarcie zamku ma początkowo symbolizować zapalona dioda. Do programu wykorzystuję klawiaturę analogową z racji tego, że potrzebuje mieć do dyspozycji większą liczbę portów do czego innego. <br /><br />Identyfikacja przycisków i tablica kodu wygląda następująco:<br />[syntax=c]if (pomiar_klawiatura(PC4)&gt;980) stan_przycisku=PRZYC_S1;<br />else if (pomiar_klawiatura(PC4)&gt;850) stan_przycisku=PRZYC_S2;<br />else if (pomiar_klawiatura(PC4)&gt;770) stan_przycisku=PRZYC_S3;<br />else if (pomiar_klawiatura(PC4)&gt;700) stan_przycisku=PRZYC_S4;<br />else if (pomiar_klawiatura(PC4)&gt;600) stan_przycisku=PRZYC_S5;<br />else if (pomiar_klawiatura(PC4)&gt;500) stan_przycisku=PRZYC_S6;<br />else if (pomiar_klawiatura(PC4)&gt;400) stan_przycisku=PRZYC_S7;<br />else if (pomiar_klawiatura(PC4)&gt;350) stan_przycisku=PRZYC_S8;<br />else if (pomiar_klawiatura(PC4)&gt;270) stan_przycisku=PRZYC_S9;<br />else if (pomiar_klawiatura(PC4)&gt;180) stan_przycisku=PRZYC_S10;<br />else if (pomiar_klawiatura(PC4)&gt;100) stan_przycisku=PRZYC_S11;<br />else if (pomiar_klawiatura(PC4)&gt;50) stan_przycisku=PRZYC_S12;<br />else {};<br />unsigned char haslo&#91;&#93;={0x32,0x35,0x39};[/syntax]<br /><br />Rozumiem, że do porównania najlepiej trzeba użyć pętli for, która to będzie za każdym razem porównywać wciśnięty przycisk z tablicą. Jednak to nie za bardzo się tu sprawdza.<br />[syntax=c]for(i=0;i&lt;3;i++) //trzy obiegi pętli bo trzy znaki w tablicy haslo&#91;&#93;<br />{<br />if(stan_przycisku==PRZYC_S10) break; //wciśnięta * przerwać pętle<br />if(stan_przycisku==haslo&#91;i&#93;) LED_2_ON; //tu ma porównywać<br />}[/syntax]<br />jednak pętla zapali diode po naciśnięciu 2 lub 5 lub 9. Rozumiem, że brakuje mi jakiegoś znaku, który dopiero po wcisnieciu przycisku pozwalał by na rozruch pętli i przyrównywanie. Czy może ktoś jakoś na to pomóc, nakierować?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3647">fotograf9</a> — 8 paź 2014, o 09:58</p><hr />
]]></content>
</entry>
</feed>