<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=58&amp;t=20077&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-01-28T15:21:08+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=20077&amp;mode</id>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-01-28T15:21:08+01:00</updated>
<published>2018-01-28T15:21:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202812#p202812</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202812#p202812"/>
<title type="html"><![CDATA[Re: W jaki sposób dodać liczby aby????]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202812#p202812"><![CDATA[
Kod w pętli głównej  while pokazałem wcześniej teraz pokaże początek programu:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br /><br />uint16_t A,B,C,w_konc,ss;<br />uint8_t wyj,cyf_zat,cyfra1,stan,skok,skok1,skok2,wb;<br />int roz,roz1;<br />uint16_t buf_wynik&#91;100&#93;;<br />uint16_t wynik=0;<br /><br /><br /><br /><br />void moje(void);<br />void moje2(void);<br />void moje3(void);<br />void kasowanie(void);<br />uint8_t liczba(void);<br />uint8_t zatrz(uint8_t wej);<br />uint16_t licz(uint8_t wej_licze);<br /><br /><br />int main(void)                {<br />    cyfra1=0;<br /><br /><br />DDRA |= (1&lt;&lt;PA7);// ustawiamy kierunek linii podświetlenia LCD jako WYJŚCIE<br />PORTA |= (1&lt;&lt;PA7);// załączamy podświetlenie LCD - stan wysoki<br /><br />lcd_init();/* inicjalizacja LCD */<br /><br /><br />    DDRC |= (1&lt;&lt;PC0);  //  jako wyjście<br />    DDRC |= (1&lt;&lt;PC1);  //  jako wyjście<br /><br />    PORTD |= (1&lt;&lt;PD2);  // STAN WYSOKI NA WEJCIU<br />    PORTD |= (1&lt;&lt;PD3);  // STAN WYSOKI NA WEJCIU<br /><br />     <br />        MCUCR = (1&lt;&lt;ISC10);                  // KAZDA ZMIANA STANU<br />    <br />        GICR |= (1&lt;&lt;INT1);<br /><br />sei();/* włączamy globalne przerwania */[/syntax]<br /><br />Podpowiedzcie dlaczego zmnenna się tak dziwnie zachowuje???<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 28 sty 2018, o 15:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2018-01-27T13:27:10+01:00</updated>
<published>2018-01-27T13:27:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202760#p202760</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202760#p202760"/>
<title type="html"><![CDATA[Re: W jaki sposób dodać liczby aby????]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202760#p202760"><![CDATA[
A pokaż cały kod. Z tych wycinków ciężko cokolwiek podpowiedzieć<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 27 sty 2018, o 13:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-01-27T11:53:31+01:00</updated>
<published>2018-01-27T11:53:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202756#p202756</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202756#p202756"/>
<title type="html"><![CDATA[Re: W jaki sposób dodać liczby aby????]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202756#p202756"><![CDATA[
Dłączenie tak się dzieje ze zmienna wynik może być dodawana do liczby np wynik=wynik+1 jest ok a jak wynik=wynik+wynik to wyskakują wielkie liczby 34567<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 27 sty 2018, o 11:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-01-25T21:22:18+01:00</updated>
<published>2018-01-25T21:22:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202687#p202687</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202687#p202687"/>
<title type="html"><![CDATA[Re: W jaki sposób dodać liczby aby????]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202687#p202687"><![CDATA[
Własnie  opisze dokładniej co potrzebuję -  funkcja  uint8_t liczba(void) zwraca wynik gdzie argumentem są pewne zależności jakie posiadają zmienne globalne, zwracanie wyniku  odpowiada wciśniętej danej cyfrze ,<br />na klawiaturze  kolejne wciskanie cyfr stworzy wynik - ten wynik potrzebował będę do zapisu np. danych na kartę  sd  czy  muszę  go mieć jako liczbę??? .  Wyświetlanie wyników <br />na LCD jest mi potrzebne jedynie żeby  chwilowo je obserwować . <br /><br />Chociaż  myślę  czy jako ciąg znaków pewnie będę mógł  zapisywać , ale jest jeden problem  jak np użytkownik naciśnie po kolei pięć cyfr  &quot;2&quot; &quot;3&quot; &quot;7&quot; &quot;3&quot; i &quot;8&quot;   to układ  musi zignorować &quot;2&quot; &quot;3&quot; &quot;7&quot; &quot;3&quot; <br />a zostawić jedynie &quot;8&quot; poniewż jest przepełnienie - jakbym wynik miał w liczbie to daje warunek po czwartym naciśnięciu  if(licznik&gt;9999) licznik=0; a jak będę bazował tylko na znakach to jak to układ rozróżnie ?<br /><br />A może wrzucić do zmiennej tablicowej  a potem to porównywać?<br />Podpowiedz jak  spróbować   zapisać po kolei cyfry do zmiennej np tablicowej w tym konkretnym kodzie programu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 25 sty 2018, o 21:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek_P]]></name></author>
<updated>2018-01-25T20:12:16+01:00</updated>
<published>2018-01-25T20:12:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202681#p202681</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202681#p202681"/>
<title type="html"><![CDATA[Re: W jaki sposób dodać liczby aby????]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202681#p202681"><![CDATA[
Albo ja czegoś nie rozumiem z Twojego powyższego opisu sytuacji, albo za bardzo komplikujesz sobie życie.<img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Czy musisz operować na zmiennych liczbowych? Czy te wprowadzane z klawiatury liczby są Tobie potrzebne do jakichś skomplikowanych obliczeń, czy może chcesz tylko wyświetlić na wyświetlaczu to co powciskał użytkownik z klawiatury? Ja bym to zrobił na zwykłym <strong>stringu</strong> lub buforze w postaci tablicy znakowej. Każdy przycisk dodaje do zmiennej,nazwijmy ją 'PIN' jeden przypisany mu znak jakiejś cyfry od '0' do '9'. Jeżeli ktoś wciskał po kolei klawisze np. 7890 to taki ciąg znaków w prosty sposób wyświetlisz sobie na dowolnym wyświetlaczu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=290">Piotrek_P</a> — 25 sty 2018, o 20:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-01-25T19:50:17+01:00</updated>
<published>2018-01-25T19:50:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202679#p202679</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202679#p202679"/>
<title type="html"><![CDATA[Re: W jaki sposób dodać liczby aby????]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202679#p202679"><![CDATA[
wyzerowałem zmienną w taki sposób<br />[syntax=c]int main(void)<br />  {<br />    <br />    wynik=0;<br />    cyf_zat=0;[/syntax]<br /><br />niestety nie pomogło , o co tu chodzi z tą  zmienną  niby ma tą wartość a chyba jest inaczej ?<br />Jak wpiszę  dla testu  wynik=wynik+wynik+cyf_zat; to wyświetla głupoty typu 27680 ??????  (a zapis wynik=wynik+cyf_zat; ) liczy poprawnie - to jaką to zmienną jest wynik???  proszę wytłumaczyć o co to chodzi?<br />Kolega  43kuku bardzo dobrze matematycznie to przedstawił tylko dlaczego tu w tym przypadku  matematyka nie działa???<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 25 sty 2018, o 19:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karolen]]></name></author>
<updated>2018-01-25T18:40:35+01:00</updated>
<published>2018-01-25T18:40:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202674#p202674</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202674#p202674"/>
<title type="html"><![CDATA[Re: W jaki sposób dodać liczby aby????]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202674#p202674"><![CDATA[
A zmienną &quot;wynik&quot; masz na samym początku wyzerowaną ?? <br />Tzn. po inicjalizacji zmiennej &quot;wynik&quot; przypisujesz do niej wartość 0 ??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6210">karolen</a> — 25 sty 2018, o 18:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-01-25T17:07:55+01:00</updated>
<published>2018-01-25T17:07:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202670#p202670</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202670#p202670"/>
<title type="html"><![CDATA[Re: W jaki sposób dodać liczby aby????]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202670#p202670"><![CDATA[
Dzięki zaraz spróbuje i napisze co uzyskałem.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 43 minutach ]</span></strong><br /><br />napisałem     takie liczenie :  <br />[syntax=c]wynik=(wynik*10)+cyf_zat;[/syntax] <br /><br />  cos jest zle  bo po wpisaniu np &quot;4&quot; wyskakuje dziwny wynik 032768  nie rozumiem dlaczego moze inaczej trzeba mnożenie wpisać?? , a może jakoś rzutowanie zrobić??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 25 sty 2018, o 17:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[43kuku]]></name></author>
<updated>2018-01-25T16:16:11+01:00</updated>
<published>2018-01-25T16:16:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202666#p202666</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202666#p202666"/>
<title type="html"><![CDATA[Re: W jaki sposób dodać liczby aby????]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202666#p202666"><![CDATA[
mnóż każdy wynik przez 10 i nową liczbe dodawaj do tego.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />chodzi mi o taki algorytm:<br />na początku zmienna  wynik = 0<br />wciskasz klawisz 4<br />wynik * 10 + 4 = 4, bo 0 * 10 + 4<br />wciskasz 5<br />wynik * 10 + 5 = 45, bo 4 * 10 + 5<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3190">43kuku</a> — 25 sty 2018, o 16:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AKSELINEK]]></name></author>
<updated>2018-01-25T15:30:55+01:00</updated>
<published>2018-01-25T15:30:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202664#p202664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202664#p202664"/>
<title type="html"><![CDATA[W jaki sposób dodać liczby aby????]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20077&amp;p=202664#p202664"><![CDATA[
Mam pytanie potrzebuje podpowiedzi , bo temat wydaje się prosty a ja nie mogę  ruszyć z miejsca.<br /><br />Przedstawię  problem - z klawiatury wysyłane są cyfry w zależności jaką cyfrę nacisnę to do licznika (licznik) dociera dana cyfra, następnie wciskam koleją liczbę licznik ją dodaje<br />to taka faza testowa czy licznik zlicza  licznik=licznik+wej_licze   gdzie wej_licze oznacza daną aktualnie wciśniętą cyfę.<br />W tym przykładzie licznik sumuje każdą kolejnie wciśniętą cyfrę.<br /><br />Ja mam jednak inne potrzeby , potrzebuje aby każde kolejne  wciśnięcie cyfry przesuwało  wynik o o rząd dziesiątek , następne o rząd setek i rząd tysięcy , przedstawie to na przykładzie żeby <br />było zrozumiane o co mi dokładnie chodzi:<br /><br />- wciskam jako pierwszą np cyfrę  &quot;5&quot;   wynik=5   i tak jest następnie <br />- wciskam jako drugą    np cyfrę  &quot;4&quot;   chcę aby wynik = 54  następnie<br />- wciskam jako trzecią   np cyfrę  &quot;2&quot;    chcę aby wynik = 542 następnie<br />- wciskam jako czwartą np cyfrę  &quot;7&quot;    ostatecznie wynik = 5427 i jeśli teraz wcisnę koleją  cyfrę to zaczynam od początku ale tu warunek będzi prosty<br /><br />Pokaże może to w kodzie żródłowym :<br />    [syntax=c]while(1)<br /><br />             {                          <br />                                                    <br />                                 <br /><br />                      uint8_t liczba();                      // aktualnie wciskana cyfra  <br />                    <br />                      cyf_zat=zatrz(liczba());          // wysłanie aktualnej cyfry <br /><br />                     // wynik= licz(cyf_zat);<br />                      _delay_ms( 30 );                 // ta petla spowodowała popraw działnia przycisków<br /><br />                     w_konc= licz(cyf_zat);<br /><br />                      moje3();                           // wyświetlam  wyniki na LCD<br /><br />              }<br />      }<br /><br />uint8_t  liczba(void)          // tu są warunki  wcisnietych klawiszy<br /><br />                   {<br /><br />               if (bufor&#91;1&#93;&gt;100) return 0;<br /><br />               if ((I3B==1) &amp;&amp; (I7B==1)) return 1;<br />               if ((I2B==1) &amp;&amp; (I7B==1)) return 2;<br />               if ((I1B==1) &amp;&amp; (I7B==1)) return 3;<br />               if ((I3B==1) &amp;&amp; (I6B==1)) return 4;<br />               if ((I2B==1) &amp;&amp; (I6B==1)) return 5;<br />               if ((I1B==1) &amp;&amp; (I6B==1)) return 6;<br />               if ((I3B==1) &amp;&amp; (I5B==1)) return 7;<br />               if ((I2B==1) &amp;&amp; (I5B==1)) return 8;<br />               if ((I1B==1) &amp;&amp; (I5B==1)) return 9;<br /><br /><br />                   return 0;<br />                   }<br /><br />uint8_t zatrz(uint8_t wej)<br />                     {<br /><br />                      if (wej&gt;0)   stan=1;         // analiza stanu przycisniego palaca<br />                      else stan=0;                 // analiza stanu przycisniego palaca<br /><br />                                if ((cyfra1&gt;0) &amp;&amp; (stan==1))  return 0;<br /><br />                                cyfra1=wej;<br />                                         <br />                                return wej;<br /><br /><br />                     }<br /><br />uint16_t licz(uint8_t wej_licze)<br /><br />                                {<br />                          wynik=wynik+wej_licze;<br /><br />                         // if ((wynik=wej_licze)) return wynik;<br />                         // if ((wynik&lt;10) &amp;&amp; (wynik&gt;0)) return wynik+10;<br />                    //  if ((wynik&lt;100) &amp;&amp; (wynik&gt;10)) return wynik+100;<br />                                //return wynik;<br />                          return wynik;<br />                                }[/syntax]<br />w funkcji licz() próbowałem robić warunki ale były błędne   Proszę podpowiedzcie .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18152">AKSELINEK</a> — 25 sty 2018, o 15:30</p><hr />
]]></content>
</entry>
</feed>