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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-26T22:45:04+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19855&amp;mode</id>
<entry>
<author><name><![CDATA[WoodPaker]]></name></author>
<updated>2017-12-26T22:45:04+01:00</updated>
<published>2017-12-26T22:45:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201084#p201084</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201084#p201084"/>
<title type="html"><![CDATA[Re: przesówanie wartości na 7-seg]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201084#p201084"><![CDATA[
To kopiowane łopatologiczne kopiowanie można też przerzucić do pętli co pewnie wpłynie na szybkość i wielkość programu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1425">WoodPaker</a> — 26 gru 2017, o 22:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2017-12-25T21:35:28+01:00</updated>
<published>2017-12-25T21:35:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201068#p201068</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201068#p201068"/>
<title type="html"><![CDATA[Re: przesówanie wartości na 7-seg]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201068#p201068"><![CDATA[
Jeżeli dobrze rozumiem to masz zmienną [syntax=c]uint8_t tablica&#91;4&#93;[/syntax] w której masz cyfry do wyświetlenia. Tak?<br /><br /><br />Co do kodu to nie wiem po co przekazujesz zmienną numer_klawisza do funkcji [syntax=c]void wyswietl_znaki(uint8_t numer_klawisza)[/syntax] bo jej nie używasz.<br />Także używana w podanej funkcji zmienna numer_wyswietlacza jest u ciebie pewnie niepotrzebnie jako globalna.<br /><br />Ale wracając do pytania. Jeżeli w tablicy masz cyfry do wyświetlenia i chcesz wpisać nową wartość, przesuwając pozostałe, to wystarczy je skopiować je na nowe pozycje. Tak zapisując łopatologicznie: [syntax=c]void nowyKlawisz(uint8_t numer) {<br />   tablica&#91;3&#93; = tablica&#91;2&#93;;<br />   tablica&#91;2&#93; = tablica&#91;1&#93;;<br />   tablica&#91;1&#93; = tablica&#91;0&#93;;<br />   tablica&#91;4&#93; = numer;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 25 gru 2017, o 21:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mateusz19955]]></name></author>
<updated>2017-12-25T16:44:14+01:00</updated>
<published>2017-12-25T16:44:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201060#p201060</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201060#p201060"/>
<title type="html"><![CDATA[Re: przesówanie wartości na 7-seg]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201060#p201060"><![CDATA[
Pomysł może i dobry tylko niewiem jak się za to zabrać. Nieumiem jeszcze za dobrze programować.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3621">mateusz19955</a> — 25 gru 2017, o 16:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[karolen]]></name></author>
<updated>2017-12-25T16:35:18+01:00</updated>
<published>2017-12-25T16:35:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201058#p201058</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201058#p201058"/>
<title type="html"><![CDATA[Re: przesówanie wartości na 7-seg]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201058#p201058"><![CDATA[
Tak nie analizując kodu...<br />A gdybyś liczbę wprowadzaną z klawiatury zapisywał w formie BCD do zmiennej 2 bajtowej ( w tym momencie będziesz miał &quot;zasięg&quot; 4 cyfr) i to na niej będziesz przeprowadzał wszelkie operację przesuwania itd. itp. <br />Dopiero po wykonaniu odpowiedniej operacji wysyłasz tą zmienną (kompletną) na wyświetlacz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6210">karolen</a> — 25 gru 2017, o 16:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mateusz19955]]></name></author>
<updated>2017-12-25T15:35:32+01:00</updated>
<published>2017-12-25T15:35:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201057#p201057</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201057#p201057"/>
<title type="html"><![CDATA[przesówanie wartości na 7-seg]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19855&amp;p=201057#p201057"><![CDATA[
Witam, ostatnio walczyłem z transmisją rs485, z którą miałem trochę problemów, ale poradziłem sobie z tym(jeszcze nie do końca ale będzie dobrze). Teraz mam inny problem. Mianowicie chciałbym napisać program, który będzie mi przesuwał cyfry na wyświetlaczach.<br />Program ma działać jak wybieranie numeru w domofonie, czyli wciskamy klawisz numer 1 to ta jedynka ma się wyświetlić na pierwszym wyświetlaczu od prawej strony. Gdy wciśniemy inny klawisz np. 5 to ta jedynka z pierwszego wyświetlacza ma się pojawić na drugim a na pierwszym ma się wyświetlać 5. Wciskamy np. 7 to jedynka wędruje na trzeci wyświetlacz, piątka na drugi a 7 na pierwszy. Czyli wszystko ma się przesuwać w lewą stronę. Wyświetlaczy ma być 4 sztuki. Jeżeli jakaś cyfra znajduje się już na czwartym wyświetlaczu a na pierwszym pojawia się znowu nowa cyfra to ta z czwartego wyświetlacza po prostu znika. Zasada taka jak w rejestrach przesuwnych. Nie chcę aby mi ktoś wysyłał gotowy kodu do tego, ja chcę tylko jakąś sugestie podpowiedź jak można to napisać. Multipleksację led już napisałem. Oto kod:<br />[syntax=c]void wyswietl_znaki(uint8_t numer_klawisza) {<br />if (flaga_5ms == 1) {<br />flaga_5ms = 0;<br />numer_wyswietlacza++;<br /><br />if (numer_wyswietlacza &gt; 3) {<br />numer_wyswietlacza = 0;<br />}<br /><br />switch (numer_wyswietlacza) {<br />case 0:<br />W4_OFF;<br />SendSoftSpi(tablica&#91;w1_wart&#93;);<br />W1_ON;<br />break;<br /><br />case 1:<br />W1_OFF;<br />SendSoftSpi(tablica&#91;w2_wart&#93;);<br />W2_ON;<br />break;<br /><br />case 2:<br />W2_OFF;<br />SendSoftSpi(tablica&#91;w3_wart&#93;);<br />W3_ON;<br />break;<br /><br />case 3:<br />W3_OFF;<br />SendSoftSpi(tablica&#91;w4_wart&#93;);<br />W4_ON;<br />break;<br />}<br />}<br />}[/syntax]<br />Próbowałem już pisać coś takiego, że wartość przesyłana do funkcji jest cały czas wyświetlana tylko na wyświetlaczu pierwszym.<br />Wartość tą przepisywałem do jakieś zmiennej i gdy przechodziła nowa wartość na wyświetlacz pierwszy to dopiero wyświetlałem wartość tej zmiennej na drugim wyświetlaczu ale to nie działało zbyt dobrze.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3621">mateusz19955</a> — 25 gru 2017, o 15:35</p><hr />
]]></content>
</entry>
</feed>