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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-08-28T17:34:38+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8255&amp;mode</id>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-28T17:34:38+01:00</updated>
<published>2014-08-28T17:34:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93290#p93290</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93290#p93290"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93290#p93290"><![CDATA[
Ok ,dzięki. Na pewno się kiedyś przyda w jakimś projekcie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ,no i link do stronki z C/C++ też. <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=3077">mac34</a> — 28 sie 2014, o 17:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-08-28T17:11:59+01:00</updated>
<published>2014-08-28T17:11:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93287#p93287</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93287#p93287"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93287#p93287"><![CDATA[
&quot;isalnum&quot; sprawdza czy znak podany w parametrze jest znakiem alfanumerycznym (cyfrą lub wielką/małą literą) - <!-- m --><a class="postlink" href="http://cpp0x.pl/dokumentacja/standard-C/isalnum/249" >http://cpp0x.pl/dokumentacja/standard-C/isalnum/249</a><!-- m --><br />Każdy inny znak traktowany jest jako błędny lub niepożądany i jeżeli takowy wystąpi wtedy przerywane jest działanie pętli (odczyt kolejnych bajtów - identyfikatora).<br /><br />Funkcja &quot;toupper&quot; zamienia małą na dużą literę, pozostawiając bez zmian pozostałe znaki - <!-- m --><a class="postlink" href="http://cpp0x.pl/dokumentacja/standard-C/toupper/261" >http://cpp0x.pl/dokumentacja/standard-C/toupper/261</a><!-- m --><br />Tutaj służy ujednoliceniu zapisu liczb hexadecymalnych tzn. niezależnie od wysłanej litery (dużej lub małej) i tak do tablicy &quot;tab1&quot; zapisywane są wielkie litery, co ułatwia późniejsze porównanie ze znakami w &quot;tab3&quot;.<br /><br />Zgadza się zapomniałem tego dopisać - należy dołączyć bibliotekę &lt;string.h&gt;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 28 sie 2014, o 17:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-28T16:14:29+01:00</updated>
<published>2014-08-28T16:14:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93279#p93279</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93279#p93279"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93279#p93279"><![CDATA[
Możesz wyjaśnić <span style="color: #FF0000">isalnum</span><br />oraz  <span style="color: #BF0000">toupper</span>  ,co to jest i co robi?<br /><br />Ciekawa funkcja memset(tab1, 0, 10);<br /><br />Brakuje jeszcze #include   ,domyślam się że standardowa biblioteka &lt;string.h&gt; ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 28 sie 2014, o 16:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-08-27T18:45:05+01:00</updated>
<published>2014-08-27T18:45:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93151#p93151</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93151#p93151"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93151#p93151"><![CDATA[
Zerowanie jest zbędne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />, ponieważ wyrażenie warunkowe zawiera dodatkowo porównanie wartości zmiennej 'i' do 11 i jeśli to prawda to późniejsze jej zerowanie, które uniemożliwi wykonywanie tego kodu, aż do otrzymania kolejnej odpowiedniej sekwencji znaków.<br /><br />Jeśli działa i jesteś zadowolony z efektów to OK <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=1183">atmel</a> — 27 sie 2014, o 18:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-27T18:01:09+01:00</updated>
<published>2014-08-27T18:01:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93147#p93147</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93147#p93147"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93147#p93147"><![CDATA[
Zerowanie tablicy nie jest zbędne. Bo jeśli ciągle będą sobie równe to będzie dioda LED będzie migać za sprawą toggle, chodzi mi by stan zmieniał się przy każdym przyłożeniu karty. Więc po przyrównaniu tablic i wykonaniu toggle bita ,trzeba zmienić jej zawartość ,nie muszą to być akurat zera to fakt ,ale po tej operacji muszą się różnić.<br /><br /><br />Pobawie się to funkcją get(str) jak znajdę trochę czasu, próbuję też opanować Eventa z Green booka ,jak narazie bezskutecznie. Bardzo zawiły ten kod.<br /><br />Testowałem swój programik na wiele sposobów i jak według mnie działa bez zarzutu.<br /><br />Fakt ,gdyby chcieć sterować np. silniczkiem ,komendami &quot;stop &quot; ,&quot;start&quot; ,&quot;lewo&quot; , &quot;prawo&quot;  to ten algorytm się nie sprawdzi ze względu na różną długość stringów. Porównywanie też by się rozbudowało i to sporo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Ale karta RFID ma stałą długość stringa i wysyła znak CR na końcu ,który w razie czego wszystko zsynchronizuje u mnie  i następny string wpisuje sie w tabeli pod adres 0 ,więc nie wydarzy się nic złego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 27 sie 2014, o 18:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-08-26T18:49:23+01:00</updated>
<published>2014-08-26T18:49:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93013#p93013</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93013#p93013"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93013#p93013"><![CDATA[
Widzę że Kolega lubi sobie niesamowicie utrudniać sprawę <img src="https://forum.atnel.pl/images/smilies/icon_eek.gif" alt=":shock:" title="Zaszokowany" /><br /><br />Skoro jednak funkcja &quot;uart_get_str&quot; się nie sprawdziła to warto byłoby znaleźć przyczynę dlaczego tak jest i ewentualnie przystosować ją do swoich zastosowań, a wtedy to już z górki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Dla &quot;uart_getc&quot;:<br /><br />[syntax=c]//Atmega8A ,kwarc 11,059MHz ,zamek RFID  (F5BA4F0577)<br /><br />#include &lt;avr/io.h&gt;<br />#include &quot;UART_advavce_by_Mario_ver2.h&quot;// Moje biblioteki Usart (na bazie Mirkowych), tylko to co potrzebne<br />#include &lt;avr/interrupt.h&gt;<br /><br />#define LED(1&lt;&lt;PD6)<br />#define KEY1(1&lt;&lt;PD7)<br /><br />char tab1&#91;&#93; = {'t','e','s','t','0','0','0','0','0','0'};// tablicA ODBIORCZA<br />const char tab3&#91;&#93; = {'F','5','B','A','4','F','0','5','7','7'};// wzorzec klucza RFID<br /><br />int main(void)<br />{<br />uint8_t i;// zmienne pomocnicze<br />char odebrano_cos;<br />DDRD = LED;// dioda led do PD.6, pozniej bedzie zamek :)<br />PORTD = ~LED;// podciągniecie nieuzywanego portu D<br />DDRC = 0x00;<br />PORTC = 0x7F;//podciągniecie nieuzywanego portu C<br />USART_Init( __UBRR );// inicjalizacja UART<br />sei();<br />while(1) {<br />for (i = 0; i &lt;= 10; ++i)<br />if (isalnum(odebrano_cos = uart_getc()))// zakres literek i cyfr ASCII w tabeli<br />tab1&#91;i&#93; = toupper(odebrano_cos);<br />else break;<br />if (i == 11 &amp;&amp; !strncmp(tab1, tab3, 10)) {<br />PORTD ^= LED;<br />memset(tab1, 0, 10);// zapis tablicy zerami<br />i = 0;// powyższe zerowanie tablicy w sumie zbędne...<br />}<br />}// end while<br />}// end main[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 26 sie 2014, o 18:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-26T17:56:28+01:00</updated>
<published>2014-08-26T17:56:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93002#p93002</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93002#p93002"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=93002#p93002"><![CDATA[
Witam ,na zakończenie tematu obiecny,poprawiony i działający kod ,może się komuś przyda <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Zmieniłem jedynie bibliotekę USART ,wyrzuciłem to co zbędne zostawiając tylko to co potrzebne w tym programie ,zostawiłem tylko<br />funkcję get_c() ,załączenie tylko odbiornika ,bufor na 32.<br />i poprawiłem warunek case w przerwaniu ,by odbierać znak CR , potrzebny u mnie do synchronizacji stringa<br />wyrzuciłem zmienną asciiline++;  Na Mirkowych oryginalnych też działa ,ale po co zajmować tyle flasha ,jak i tak nie korzystamy tutaj<br />z większości funkcji i nadajnika ,a zwłaszcza buforu na nadajnik.<br /><br />[syntax=c]//Atmega8A ,kwarc 11,059MHz ,zamek RFID  (F5BA4F0577)<br /><br />#include &lt;avr/io.h&gt;<br />#include &quot;UART_advavce_by_Mario_ver2.h&quot;                    //Moje biblioteki Usart (na bazie Mirkowych), tylko to co potrzebne<br />#include &lt;avr/interrupt.h&gt;<br /><br /><br /><br />#define LED (1&lt;&lt;PD6)<br />#define KEY1 (1&lt;&lt;PD7)<br /><br /><br />uint8_t i;//zmienne pomocnicze<br />uint8_t j;<br />uint8_t k;<br />uint8_t y;<br /><br />char odebrano_cos;<br /><br />char tab1&#91;&#93;={'t','e','s','t','0','0','0','0','0','0'};                            //tablicA ODBIORCZA<br />const char tab3&#91;&#93;={'F','5','B','A','4','F','0','5','7','7'};                           //wzorzec klucza RFID<br /><br /><br />int main(void) {<br /><br />          DDRD = 0b01000000;                                            //dioda led do PD.6  ,pozniej bedzie zamek :)<br />         PORTD = 0b10111111;                         //podciągniecie nieuzywanego portu D<br /><br />          DDRC = 0b0000000;<br />         PORTC = 0b1111111;                         //podciągniecie nieuzywanego portu C<br /><br /><br />        USART_Init( __UBRR );                   // inicjalizacja UART<br /><br /><br /><br />         sei();<br /><br />         while(1){<br /><br /><br />         odebrano_cos=uart_getc();<br /><br />         if(odebrano_cos==13) i=0;    //jesli odebrano CR to przeskocz na 0 adres tablicy ,zabezpieczenie przed rozjeżdzaniem stringa<br /><br />         else if(odebrano_cos &gt; 47 &amp;&amp; odebrano_cos &lt; 123){    //zakres literek i cyfr ASCII w tabeli<br /><br />        tab1&#91;i&#93;=odebrano_cos;<br />        i++;<br />        if(i&gt;=10) i=0;<br />        }<br /><br /><br /><br />        for (j = 0; j &lt; 11; ++j)<br />                if (tab1&#91;j&#93; != tab3&#91;j&#93;)<br />                        break;<br /><br /><br /><br />        if (j == 10){<br />        PORTD ^= LED;<br /><br />        for (y=0 ; y&lt;11 ; ++y){<br /><br />        tab1&#91;k&#93; = 0;//zapis tablicy zerami<br />        k++;<br />        if(k&gt;=10) k=0;<br /><br />        }<br /><br />        }<br /><br /><br /><br /><br /><br />         }  //end while<br /><br /><br />}  //end main[/syntax]<br /><br /><br /><br /><br /><br /><br />Podziękowania i pochwały dla kolegów Atmel (za pętlę FOR) <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  i Janusz T (za zwrócenie uwagi na c-stringa)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 26 sie 2014, o 17:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-24T17:49:04+01:00</updated>
<published>2014-08-24T17:49:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92724#p92724</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92724#p92724"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92724#p92724"><![CDATA[
Działa wpisywanie do tablicy!!! <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ,oraz potem za pomocą przycisku wywołuję po kolei jej zawartość na terminalu ,jedno kliknięcie - jedna litera.<br /><br />Działa wprowadzanie znaków i odczyt.<br /><br />Kod poniżej:<br /><br />[syntax=c]/<br /><br />#define LED (1&lt;&lt;PD6)<br />#define KEY1 (1&lt;&lt;PD7)<br /><br /><br />uint8_t i;<br /><br />char x;<br />char odebrano_cos;<br />char tab1&#91;&#93;={'t','e','s','t'};                            //tablicA ODBIORCZA <br /><br />char tab3&#91;&#93;={&quot;togg&quot;};                           //wzorzec klucza RFID  <br />uint16_t key_lock1;                                        //key lock 1<br /><br />int main(void) {<br /><br />          DDRD = 0b01000000;                                            //dioda led do PD.6  ,pozniej bedzie zamek :)<br />         PORTD = 0b10111111;                         //podciągniecie nieuzywanego portu D<br /><br />          DDRC = 0b0000000;<br />         PORTC = 0b1111111;                         //podciągniecie nieuzywanego portu C<br /><br /><br />        USART_Init( __UBRR );                   // inicjalizacja UART<br /><br /><br />         sei();<br /><br />         while(1){<br /><br />         if( !key_lock1 &amp;&amp; !(PIND &amp; KEY1 ) ) {              //wyswietlanie kolejnych znaków tabeli za pomocą przycisku ,test zapisu<br />             key_lock1=1;<br /><br />            x=tab1&#91;i&#93;;<br />            i++;<br />            if(i&gt;=4) i=0;<br />            uart_putc(x);<br /><br /><br />         }<br /><br />           else if( key_lock1 &amp;&amp; (PIND &amp; KEY1 ) ) key_lock1++;<br /><br /><br /><br /><br /><br />         odebrano_cos=uart_getc();                               //zapis znaków do tabelki tab1<br />        if(odebrano_cos &gt; 47 &amp;&amp; odebrano_cos &lt; 123){    //zakres literek i cyfr ASCII w tabeli<br />        tab1&#91;i&#93;=odebrano_cos;<br />        i++;<br />        if(i&gt;=4) i=0;<br />        }<br /><br /><br /><br /><br />                 if (!strcmp(tab3, tab1 ))  PORTD ^= LED; // if (!strncmp(tab3, tab1, 10))<br /><br /><br /><br /><br />         }  //end while<br /><br /><br />}  //end main[/syntax]<br /><br /><br /><br /><br /><br />Niestety nie działa strcmp <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />  diodka nie mruga po wpisaniu wzorca ,w tym przypadku &quot;togg&quot;<br /><br /><span style="color: #4040BF">Ale czuję ,że jestem już blisko!!!</span><br /><br />Czegoś jeszcze nie zauważam ,ale czego?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 27 minutach ]</span></strong><br /><br />Wybaczcie ,że post pod postem ,ale wreszcie działa jak chciałem!!! <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Diodka reaguje na string!!!<br /><br />[syntax=c]#define LED (1&lt;&lt;PD6)<br />#define KEY1 (1&lt;&lt;PD7)<br /><br /><br />uint8_t i;<br />uint8_t j;<br />uint8_t status_porownania;<br /><br />char x;<br />char odebrano_cos;<br />char tab1&#91;&#93;={'t','e','s','t'};                            //tablicA ODBIORCZA<br /><br />const char tab3&#91;&#93;={'t','o','g','g'};                           //wzorzec klucza RFID<br />uint16_t key_lock1;                                        //key lock 1<br /><br />int main(void) {<br /><br />          DDRD = 0b01000000;                                            //dioda led do PD.6  ,pozniej bedzie zamek :)<br />         PORTD = 0b10111111;                         //podciągniecie nieuzywanego portu D<br /><br />          DDRC = 0b0000000;<br />         PORTC = 0b1111111;                         //podciągniecie nieuzywanego portu C<br /><br /><br />        USART_Init( __UBRR );                   // inicjalizacja UART<br /><br /><br />         sei();<br /><br />         while(1){<br /><br />         if( !key_lock1 &amp;&amp; !(PIND &amp; KEY1 ) ) {                      //wyswietlanie kolejnych znaków tabeli za pomocą przycisku<br />             key_lock1=1;<br /><br />            x=tab1&#91;i&#93;;<br />            i++;<br />            if(i&gt;=4) i=0;<br />            uart_putc(x);<br /><br /><br />         }<br /><br />           else if( key_lock1 &amp;&amp; (PIND &amp; KEY1 ) ) key_lock1++;<br /><br /><br /><br /><br /><br />         odebrano_cos=uart_getc();<br />        if(odebrano_cos &gt; 47 &amp;&amp; odebrano_cos &lt; 123){    //zakres literek i cyfr ASCII w tabeli<br />        tab1&#91;i&#93;=odebrano_cos;<br />        i++;<br />        if(i&gt;=4) i=0;<br />        }<br /><br /><br /><br />        if (tab1&#91;j&#93;==tab3&#91;j&#93;){<br />         j++;<br />         if(j&gt;=4){<br />         j=0;<br />         }<br />         status_porownania=1;<br /><br />         }<br /><br />         else if (tab1&#91;j&#93;!=tab3&#91;j&#93;){<br /><br />        j=0;<br />        status_porownania=0;<br />         }<br /><br /><br /><br />         if(status_porownania==1 &amp;&amp; j==3){<br />         PORTD ^= LED;<br />          _delay_ms(500);                       // pieknie mruga ,przy wzorcu &quot;togg&quot;  :)<br />          status_porownania=0;<br />         }<br /><br /><br /><br />               //  if (!strcmp(tab3, tab1 ))  PORTD |= LED; // if (!strncmp(tab3, tab1, 10))<br /><br /><br /><br /><br />         }  //end while<br /><br /><br />}  //end main[/syntax]<br /><br /><br /><br />teraz tylko przerobić na klucz 10 znaków i można się cieszyć własnym &quot;parsowaniem stringu&quot; i zamkiem RFID ,choć muszę to przerobić na coś bardziej czytelnego ,powyrzucam co się da do funkcji ,zobaczymy co z tego wyjdzie. Ważne ,że działa i wiem już jak podchodzić do tych Mirkowych bibliotek ,bo jednak nie są takie złe <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Jakby ktoś jeszcze zauważył jakiegoś babola to będę wdzięczny za zwrócenie uwagi.<br /><br />Teraz biorę się za usprawnienie kodu ,potem wrzucę końcowy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ,jeszcze raz dziękuję za pomoc wszystkim. Tak naprawdę kręciliśmy się w kółko przez funkcję uart_get_str().<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 24 sie 2014, o 17:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-24T16:19:33+01:00</updated>
<published>2014-08-24T16:19:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92716#p92716</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92716#p92716"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92716#p92716"><![CDATA[
Kolejne 2 godziny ,ale udało mi się wreszcie chyba zrozumieć w czym rzecz ,sama funkcja get_str() jest temu winna ,bo nie zwraca stringa tylko jakiś wskażnik.<br /><br />Spróbowałem na funkcji uart_get_c() i działa ,ale tylko jedna literka i tablica na niej oparta.<br /><br />Wiem już ,że porównywanie stringów strcmp jest OK ,dioda pięknie zapala się i gaśnie jak wciskam &quot;s&quot;<br /><br />Niestety nie przyda mi się funkcja getstr() ,więc muszę oprzeć to na tej z pojedynczym znakiem.<br /><br />Pytanie jeszcze czy sam bufor cykliczny czegoś nie psuje?<br /><br />Taka postać działa ,niestety tablica tylko 1 elementowa <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />[syntax=c]//Atmega8A ,kwarc 11,059MHz ,zamek RFID<br /><br />#include &lt;avr/io.h&gt;<br />#include &quot;MK_USART/mkuart.h&quot;                    //Mirkowe biblioteki Usart<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br /><br /><br />#define LED (1&lt;&lt;PD6)<br /><br /><br /><br /><br />uint8_t i;<br />char x;<br /><br />char tab1&#91;&#93;={0};                            //tablicA ODBIORCZA ,inicjacja zerami<br /><br />char tab3&#91;&#93;={&quot;s&quot;};                           //wzorzec klucza RFID<br /><br />int main(void) {<br /><br />          DDRD = 0b01000000;                                            //dioda led do PD.6  ,pozniej bedzie zamek :)<br />         PORTD = 0b10111111;                         //podciągniecie nieuzywanego portu D<br /><br />          DDRC = 0b0000000;<br />         PORTC = 0b1111111;                         //podciągniecie nieuzywanego portu C<br /><br /><br />        USART_Init( __UBRR );                   // inicjalizacja UART<br /><br /><br />         sei();<br /><br />         while(1){<br /><br />x = uart_getc();<br /><br />if(x!=10 || x!=13){<br /><br />tab1&#91;i&#93;=x;<br /><br />}<br /><br /><br />                 if (!strcmp(tab3, tab1 ))  PORTD ^= LED; // if (!strncmp(tab3, tab1, 10))<br /><br /><br /><br /><br />         }  //end while<br /><br /><br />}  //end main[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 24 sie 2014, o 16:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JanuszT]]></name></author>
<updated>2014-08-24T13:30:14+01:00</updated>
<published>2014-08-24T13:30:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92702#p92702</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92702#p92702"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92702#p92702"><![CDATA[
Witam<br /><br />Linie z &quot;printf&quot; po prostu skasuj  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .<br />W nawiasach klamrowych obejmujących linię 25 wpisz to, co ma być wykonane, jeżeli tablice są zgodne (czyli jeżeli wczytano właściwy kod).<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4367">JanuszT</a> — 24 sie 2014, o 13:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-24T13:26:10+01:00</updated>
<published>2014-08-24T13:26:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92701#p92701</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92701#p92701"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92701#p92701"><![CDATA[
Aś mnie załatwił ,zwłaszcza tym<br /><br />[syntax=c]printf(&quot;numer\ttab1\ttab3\tpor&#91;i&#93;\tpor cale\n&quot;,i,tab1&#91;i&#93;,tab3&#91;i&#93;,status_chwilowy,status_porownania);[/syntax]<br /><br />,nie mam pojęcia jak to przerobić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><br />Równie dobrze mogłoby być po chińsku <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ,dzięki za wsparcie ,widzę że masz dużą wiedzę ,ale ja z tej funkcji nie rozumiem za wiele <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=3077">mac34</a> — 24 sie 2014, o 13:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JanuszT]]></name></author>
<updated>2014-08-24T13:12:12+01:00</updated>
<published>2014-08-24T13:12:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92697#p92697</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92697#p92697"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92697#p92697"><![CDATA[
Witam<br /><br />W tej chwili niezbyt mam dostęp do AVR-a, dlatego kod jest przetestowany na PC.<br />[syntax=c]#include &lt;stdio.h&gt;<br />#include &lt;stdlib.h&gt;<br /><br />int main(void)<br />{<br />    int i=0;<br />    int status_porownania=1;<br />    char tab1&#91;11&#93;={'a','w','B','f','g','h','j','k','l','t','w'};<br />    char tab3&#91;11&#93;={&quot;F5BA4F0577&quot;};<br />    int status_chwilowy=0;<br />    int z=0;<br /><br />    for(z==0;z&lt;2;z++)/*To u Ciebie pętal While(1)*/<br />    {<br />        /*TUTAJ POBIERZ NOWY STRING z UART*/<br />        printf(&quot;numer\ttab1\ttab3\tpor&#91;i&#93;\tpor cale\n&quot;,i,tab1&#91;i&#93;,tab3&#91;i&#93;,status_chwilowy,status_porownania);<br />        for(i=0;i&lt;11;i++)<br />        {<br />            status_chwilowy=(tab1&#91;i&#93;==tab3&#91;i&#93;);<br />            status_porownania=status_porownania*status_chwilowy;<br />            printf(&quot;%d\t%c\t%c\t%d\t%d\n&quot;,i,tab1&#91;i&#93;,tab3&#91;i&#93;,status_chwilowy,status_porownania);<br />        }<br />        if(status_porownania==1)<br />        {<br />            printf(&quot;Tablice równe&quot;);<br />        }<br />            status_porownania=1;<br />    }<br />    return 0;<br />}[/syntax]<br />Statrałem się pisać tak, abyś mógł łatwo przenieść na AVR. Dobrze by było, gdybyś go sibie uruchomił na PC. Przy przenoszeniu na AVR oczywiście dołącz odpowiednie pliki &quot;*.h&quot; i nie używaj funkcji &quot;printf&quot;; ona jest tutaj tylko po to, aby kod (przy uruchamianiu na PC&quot; wyświetlał &quot;ładnie&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />   przebieg obliczeń. Zmienna &quot;status_chwilowy&quot; nie jest konieczna, można łatwo napisać bez niej, ale tak jest chyba jaśniej. Wieczorem będę miał dostęp do AVR-a, wtedy jeżeli będziesz potrzebował mogę wrzucić &quot;gotowca&quot;  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> .<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4367">JanuszT</a> — 24 sie 2014, o 13:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-24T13:11:03+01:00</updated>
<published>2014-08-24T13:11:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92696#p92696</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92696#p92696"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92696#p92696"><![CDATA[
Teraz mi się przypomniało ,że lekko poprawiłem warunek Case dla przerwania<br />ISR( USART_RXC_vect ) w bibliotece USART ,dlatego że oryginał miał uciążliwe WARNINGI dotyczące<br />braku instrukcji break ,podobno można wyłączyć w eclipse ,ale postanowiłem poprawić <br />warunek mam nadzieję ,że go nie sknociłem?<br /><br />Nie zamieszczam pliku z wiadomych powodów ,jedynie mój kawałek po zmianach<br />,każdy kto ma książkę ma możliwość porównać:<br /><br />Wygląda tak po moich zmianach:<br /><br />[syntax=c]switch( data ) {<br />    case 0:break;// ignorujemy bajt = 0<br />    case 10: break;// ignorujemy znak LF<br />    case 13: ascii_line++; UART_RxHead = tmp_head; UART_RxBuf&#91;tmp_head&#93; = data; break;<br /><br />// sygnalizujemy obecność kolejnej linii w buforze<br />    default : UART_RxHead = tmp_head; UART_RxBuf&#91;tmp_head&#93; = data; break;<br />    }[/syntax]<br /><br /><br />Teraz dałeś mi zagłostkę jak wysłać tablicę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />poprzez funkcję uart_puts() da się ???<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 24 sie 2014, o 13:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-08-24T12:53:56+01:00</updated>
<published>2014-08-24T12:53:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92695#p92695</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92695#p92695"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92695#p92695"><![CDATA[
Spróbuj sobie wysłać zawartość &quot;tab1&quot; przez UART i zobacz co zawiera. Może są to małe litery, a nie duże...<br />Można użyć &quot;stricmp&quot;, która nie rozróżnia wielkości liter.<br /><br />Nie wiem jak działa funkcja &quot;uart_get_str&quot;, ale może czeka na odebranie znaku '\0', którego nigdy nie otrzymuje?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 24 sie 2014, o 12:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-24T12:44:16+01:00</updated>
<published>2014-08-24T12:44:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92693#p92693</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92693#p92693"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92693#p92693"><![CDATA[
Poprawiłem pętlę for i nic.  Spróbowałem sposobu z porównaniem stringów i też bez efektu.<br /><br />Jedyne co działa poprawnie ,to steroweanie jednym znakiem za pomocą <br /><br />[syntax=c]odebrany_znak = uart_getc();                       //podstawienie znaku odebranego<br /><br />     if (odebrany_znak=='s'){<br />     PORTB |= LED;        //załącz led[/syntax]<br /><br />,ale nie o to mi chodzi ,bo tutaj jest string z karty RFID i aż 10 znaków<br /><br />poniżej kod z strcmp. Też nie działa <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><br />[syntax=c]//Atmega8A ,kwarc 11,059MHz ,zamek RFID<br /><br />#include &lt;avr/io.h&gt;<br />#include &quot;MK_USART/mkuart.h&quot;                    //Mirkowe biblioteki Usart<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;string.h&gt;<br /><br /><br />#define LED (1&lt;&lt;PD6)<br /><br /><br />char tab1&#91;&#93;={0,0,0,0,0,0,0,0,0,0,0};                            //tablicA ODBIORCZA ,inicjacja zerami<br /><br />char tab3&#91;&#93;={&quot;F5BA4F0577&quot;};                           //wzorzec klucza RFID<br /><br />int main(void) {<br /><br />          DDRD = 0b01000000;                                            //dioda led do PD.6  ,pozniej bedzie zamek :)<br />         PORTD = 0b10111111;                         //podciągniecie nieuzywanego portu D<br /><br />          DDRC = 0b0000000;<br />         PORTC = 0b1111111;                         //podciągniecie nieuzywanego portu C<br /><br /><br />        USART_Init( __UBRR );                   // inicjalizacja UART<br /><br /><br />        <br /><br />         sei();<br /><br />         while(1){<br /><br />                 uart_get_str(tab1);                  //pobanie stringa i wrzucenie do tablicy<br /><br /><br />                 if (!strcmp(tab3, tab1))  PORTD ^= LED; // if (!strncmp(tab3, tab1, 10))<br />                    <br /><br /><br />         }  //end while<br /><br /><br />}  //end main[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 24 sie 2014, o 12:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-08-24T12:24:21+01:00</updated>
<published>2014-08-24T12:24:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92690#p92690</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92690#p92690"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92690#p92690"><![CDATA[
Przecież ta pętla nie wykona się ani razu ('j' nigdy nie jest większe lub równe 12).<br />Najlepiej użyj funkcji o której pisałem (trzeba dołączyć bibliotekę &quot;string.h&quot;). Oczywiście za pomocą pętli również się da, ale jest to ponowne odkrywanie koła...<br /><br />[syntax=c]for (i = 0; i &lt; 11; ++i)<br />if (tab1&#91;i&#93; != tab3&#91;i&#93;)<br />break;<br />if (i == 11)<br />PORTD ^= LED;[/syntax]<br />Można też użyć zmiennej w formie flagi (u Ciebie &quot;status_porownania&quot;), ale w powyższy sposób zachowujesz 1 bajt RAM'u <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=1183">atmel</a> — 24 sie 2014, o 12:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-24T12:08:59+01:00</updated>
<published>2014-08-24T12:08:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92687#p92687</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92687#p92687"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92687#p92687"><![CDATA[
Ok ,poprawiłem troszkę jak zasugerował kolega JanuszT z inicjowaniem tablic, faktycznie 10 to za mało ,niestety dalej nic <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />  Nie wiem za bardzo jak wcisnąć ten warunek z pętla<br /><br />FOR ,możesz rozjaśnić troszkę bardziej co masz na myśli. O coś takiego chodziło?<br /><br /><br />[syntax=c]//Atmega8A ,kwarc 11,059MHz ,zamek RFID<br /><br />#include &lt;avr/io.h&gt;<br />#include &quot;MK_USART/mkuart.h&quot;                    //Mirkowe biblioteki Usart<br />#include &lt;avr/interrupt.h&gt;<br /><br /><br /><br />#define LED (1&lt;&lt;PD6)<br /><br />uint8_t status_porownania;              //flaga statusu porownia<br /><br />uint8_t i;<br />uint8_t j;<br /><br />char tab1&#91;&#93;={0,0,0,0,0,0,0,0,0,0,0};                            //tablicA ODBIORCZA ,inicjacja zerami<br /><br />char tab3&#91;&#93;={&quot;F5BA4F0577&quot;};                           //wzorzec klucza RFID<br /><br />int main(void) {<br /><br />          DDRD = 0b01000000;                                            //dioda led do PD.6  ,pozniej bedzie zamek :)<br />         PORTD = 0b10111111;                         //podciągniecie nieuzywanego portu D<br /><br />          DDRC = 0b0000000;<br />         PORTC = 0b1111111;                         //podciągniecie nieuzywanego portu C<br /><br /><br />        USART_Init( __UBRR );                   // inicjalizacja UART<br /><br /><br />        status_porownania=0;<br /><br />         sei();<br /><br />         while(1){<br /><br />                 uart_get_str(tab1);                  //pobanie stringa i wrzucenie do tablicy<br /><br /><br />                 for (j=0 ; j&gt;=12 ; j++){           //petla sprawdzajaca for 10 znaków + \0 ,czyli 11 dla C-string<br /><br />                 if (tab1&#91;i&#93;==tab3&#91;i&#93;){              //jesli te same<br />                         i++;<br />                         if(i&gt;=11){<br />                                 i=0;<br />                         }<br />                         status_porownania=1;<br /><br /><br />                 }<br />                 }  //koniec for<br />                j=0;<br /><br /><br />                 if(status_porownania==1 &amp;&amp; i==10){<br />                         PORTD ^= LED;                             //przełącz zamek<br />                          status_porownania=0;<br />                 }<br /><br /><br /><br /><br />         }  //end while<br /><br /><br />}  //end main[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 24 sie 2014, o 12:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[banita 17]]></name></author>
<updated>2014-08-24T11:44:48+01:00</updated>
<published>2014-08-24T11:44:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92683#p92683</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92683#p92683"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92683#p92683"><![CDATA[
Oooooo... <br /><br />( <a href="http://pl.wikibooks.org/wiki/C/strcmp"  class="postlink">http://pl.wikibooks.org/wiki/C/strcmp</a> )<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=279">banita 17</a> — 24 sie 2014, o 11:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-08-24T11:39:29+01:00</updated>
<published>2014-08-24T11:39:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92681#p92681</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92681#p92681"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92681#p92681"><![CDATA[
[syntax=c]if (!strcmp(tab3, tab1))   // if (!strncmp(tab3, tab1, 10))<br />   // Zrób coś[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 24 sie 2014, o 11:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[banita 17]]></name></author>
<updated>2014-08-24T11:32:35+01:00</updated>
<published>2014-08-24T11:32:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92680#p92680</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92680#p92680"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92680#p92680"><![CDATA[
Może to nie jest przyczyną Twoich problemów ale:<br /><br />[syntax=c]char tab3&#91;10&#93;={&quot;F5BA4F0577&quot;};[/syntax]<br /><br />lepiej zapisać to tak:<br /><br />[syntax=c]char tab3&#91;&#93;={&quot;F5BA4F0577&quot;};[/syntax]<br /><br />a dlaczego? niebieska &quot;biblia&quot; strona 147 i 148<br /><br />Edit: Kolega mnie ubiegł.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=279">banita 17</a> — 24 sie 2014, o 11:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JanuszT]]></name></author>
<updated>2014-08-24T11:32:18+01:00</updated>
<published>2014-08-24T11:32:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92679#p92679</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92679#p92679"/>
<title type="html"><![CDATA[Re: zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92679#p92679"><![CDATA[
Witam<br /><br />Tak na pierwszy rzut oka:<br />-tablica z wzorcem ma dlugość 11 bajtów (inicjujesz ją przez cudzysłowy&quot;&quot;, więc jest uznawana za &quot;string&quot; i dodawany do niej jest znak '\0'; nie jest to powód błędu, ale wyglada, że nie zwróciłeś na to uwagi<br />-warunek w &quot;else if (XXXXXX)&quot; nie jest potrzebny (elementy są sobie równe (to sprawdzasz poprzednio), a w innym przypadku nie są sobie równe)<br />-polecenie &quot;i=0&quot; jest w obydwóch warunkach; więc jest wykonywane zawsze, więc można je umieścić poza instrukcją warunkową<br />-W każdym obiegu pętli głównej pobierasz string i zaczynasz go porównywać; może spróbuj pobrać string, a następnie w pętli (na przykład for(i=0,i++,i&lt;10)) porównać kolejne elementy tablic<br />-jeżeli nadal będziesz miał z tym problem, to po 19.00 wrzucę działający kod (-: (-: .<br /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4367">JanuszT</a> — 24 sie 2014, o 11:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-08-24T11:14:33+01:00</updated>
<published>2014-08-24T11:14:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92676#p92676</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92676#p92676"/>
<title type="html"><![CDATA[zamek na kartę RFID]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8255&amp;p=92676#p92676"><![CDATA[
Witam od 2 tygodni męczę się z programem do otwierania drzwi za pomocą karty RFID<br />,wałkowałem BB i GB oraz tematy na forum zwłaszcza <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic968-90.html" >topic968-90.html</a><!-- l --><br />,nic nie pomogło <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />Wszystko rozbija się o wrzucenie stringa do tablicy i porównanie ze wzorcem ,nie mogę sobie z tym poradzić.<br /><br />Dane odbiornika RFID:<br /><br />Format przesyłanych danych: xx xx xx xx xx CR LF    (gotowy odbiornik transmisja 9600 8n1 )<br /><br />,mój kod karty w terminalu Putty:  F5BA4F0577<br /><br />Korzystam z Mirkowych bibliotek usart z Green Booka.<br /><br /><br />Poniżej program:<br /><br />[syntax=c]//Atmega8A ,kwarc 11,059MHz ,zamek RFID<br /><br />#include &lt;avr/io.h&gt;<br />#include &quot;MK_USART/mkuart.h&quot;//Mirkowe biblioteki Usart<br />#include &lt;avr/interrupt.h&gt;<br /><br /><br /><br />#define LED (1&lt;&lt;PD6)<br /><br />uint8_t status_porownania;              //flaga statusu porownia<br /><br />uint8_t i;<br /><br /><br />char tab1&#91;10&#93;={0,0,0,0,0,0,0,0,0,0};//tablicA ODBIORCZA ,inicjacja zerami<br /><br />char tab3&#91;10&#93;={&quot;F5BA4F0577&quot;}; //wzorzec klucza RFID<br /><br />int main(void) {<br /><br />  DDRD = 0b01000000;//dioda led do PD.6  ,pozniej bedzie zamek :)<br /> PORTD = 0b10111111;                         //podciągniecie nieuzywanego portu D<br /><br />  DDRC = 0b0000000;<br /> PORTC = 0b1111111;                         //podciągniecie nieuzywanego portu C<br /><br /><br />USART_Init( __UBRR );// inicjalizacja UART<br /><br /><br />status_porownania=0;<br /><br /> sei();<br /><br /> while(1){<br /><br /> uart_get_str(tab1);                  //pobanie stringa i wrzucenie do tablicy<br /><br /><br /><br /> if (tab1&#91;i&#93;==tab3&#91;i&#93;){              //jesli te same<br /> i++;<br /> if(i&gt;=11){<br /> i=0;<br /> }<br /> status_porownania=1;<br /><br /><br /> }<br /><br /> else if (tab1&#91;i&#93;!=tab3&#91;i&#93;){         //jesli rozne<br /><br />i=0;<br />status_porownania=0;<br /> }<br /><br /><br /><br /> if(status_porownania==1 &amp;&amp; i==10){<br /> PORTD ^= LED;                             //przełącz zamek<br />  status_porownania=0;<br /> }<br /><br /><br /><br /><br /> }  //end while<br /><br /><br />}  //end main[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 24 sie 2014, o 11:14</p><hr />
]]></content>
</entry>
</feed>