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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-04-12T14:37:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=23014&amp;mode</id>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-04-12T14:37:30+01:00</updated>
<published>2020-04-12T14:37:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226121#p226121</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226121#p226121"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226121#p226121"><![CDATA[
Za bardzo kombinujesz.<br />Nic się samo z siebie nie ustawia.<br />Po prostu jak masz = to na porcie ustawia się to co wymuszasz przez = .<br />Jak dałeś &amp;= to najpierw sprawdzany jest poprzedni stan PORT'u , a dopiero później kasowane były te PINY którym odpowiadało 0 za &amp;=  <br />Jak miałeś wcześniej cały port wyzerowany to już nic Ci się ni zapalało.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 12 kwi 2020, o 14:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin vel WiciaTG]]></name></author>
<updated>2020-04-12T14:27:27+01:00</updated>
<published>2020-04-12T14:27:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226120#p226120</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226120#p226120"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226120#p226120"><![CDATA[
o kurka... działa bez &amp;.... hmm... no jeszcze sporo nauki mam w tym temacie:) Czyli za każdym razem ten port się ustawia w stan wysoki przy zmianie cyfry tak? a ja samym = gaszę tylko te bity które potrzebuje tak?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21401">Marcin vel WiciaTG</a> — 12 kwi 2020, o 14:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-04-12T14:16:25+01:00</updated>
<published>2020-04-12T14:16:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226118#p226118</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226118#p226118"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226118#p226118"><![CDATA[
Na początek spróbuj z samym =<br />Operator &amp; stosujesz np jak chcesz wygasić konkretne bity nie zmieniając innych.<br />Jeżeli tego portu nie wykorzystujesz do innych celów, to Cię nie interesuje co na nim było.<br />Po prostu ustaw to co potrzebujesz.<br /><br />A jak opanujesz podstawy to poczytaj o maskowaniu.<br />Wówczas &amp; będzie już niezbędny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 12 kwi 2020, o 14:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin vel WiciaTG]]></name></author>
<updated>2020-04-12T14:07:51+01:00</updated>
<published>2020-04-12T14:07:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226117#p226117</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226117#p226117"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226117#p226117"><![CDATA[
<div class="quotetitle">auers napisał(a):</div><div class="quotecontent"><br />Poczytaj o tablicach, bo na piechotę z samymi if-ami daleko nie zajedziesz.<br />Przemyśl jeszcze raz sterowanie portem, bo ta funkcja ZGAS_C jet niepotrzebna.<br />Powinieneś od razu ustawiać port tak jak Ci potrzebny.<br />Przemyśl jeszcze raz te definiecje:<br />#define CYFRA0 PORTB &amp;= 0xC0   //  Wlacz Cyfry PORT B0-B6<br />czy na pewno tam powinien być operator &amp;?<br /></div><br /><br /><br />Tak, tak na pewno będę czytać kiedy przyjdzie książka <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> a co do operatora &amp; to jaki powinienem zastosować? przecież na każdą cyfrę muszę ustawić stan niski na konkretnych bitach i wysoki na innych na jednym porcie tak jak w tym przykładzie cyfry 0 tzn<br />0xC0-----&gt; 0b11000000, cały port B mam ustawiony na cyfry które ustawiam stanem niskim, a że tak to rozumie iż cały PORTB jest ustawiony na stan wysoki to tym operatorem &amp; wstawiam w konkretne bity stan niski. Czy źle to rozkminiam?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21401">Marcin vel WiciaTG</a> — 12 kwi 2020, o 14:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-04-12T13:47:53+01:00</updated>
<published>2020-04-12T13:47:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226115#p226115</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226115#p226115"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226115#p226115"><![CDATA[
Poczytaj o tablicach, bo na piechotę z samymi if-ami daleko nie zajedziesz.<br />Przemyśl jeszcze raz sterowanie portem, bo ta funkcja ZGAS_C jet niepotrzebna.<br />Powinieneś od razu ustawiać port tak jak Ci potrzebny.<br />Przemyśl jeszcze raz te definiecje:<br />#define CYFRA0 PORTB &amp;= 0xC0   //  Wlacz Cyfry PORT B0-B6<br />czy na pewno tam powinien być operator &amp;?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 12 kwi 2020, o 13:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin vel WiciaTG]]></name></author>
<updated>2020-04-12T13:39:12+01:00</updated>
<published>2020-04-12T13:39:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226114#p226114</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226114#p226114"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226114#p226114"><![CDATA[
Dziękuję koledze za okazaną pomoc w moim problemie, teraz będę działał dalej próbując uruchamiać dalsze pozycje wyświetlacza <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=21401">Marcin vel WiciaTG</a> — 12 kwi 2020, o 13:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-04-12T13:25:19+01:00</updated>
<published>2020-04-12T13:25:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226112#p226112</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226112#p226112"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226112#p226112"><![CDATA[
W deklaracji czyli tu:<br />void  L_DISPLAY( int LICZNIK );<br />masz LICZNIK<br /><br />W definicji czyli tam gdzie zaczyna się ciało funkcji:<br />void L_DISPLAY( int L_SCAN ) {<br />masz już L_SCAN<br /><br />kompilator nie krzyczy bo dla niego najważniejszy jest typ, ale dobrze jest mieć porządek.<br /><br />Natomiast już jak wywołujesz funkcję to możesz tam wstawiać zmienną o innej nazwie niż w samej deklaracji i to jest normalne.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 12 kwi 2020, o 13:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin vel WiciaTG]]></name></author>
<updated>2020-04-12T13:15:42+01:00</updated>
<published>2020-04-12T13:15:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226111#p226111</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226111#p226111"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226111#p226111"><![CDATA[
Teraz działa jak należy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> (chociaż musiałem dodać jeszcze funkcje ZGAS_C; w obsłudze klawiszów, bo zapomniałem o tym i wychodziła kaszanka). Dziękuję za pomoc i cenne wskazówki teraz to będę sobie analizował dogłębnie, by opanować te pisanie funkcji.<br />Jakby kolega jeszcze wyjaśnił mi o co chodzi w tym zdaniu: &quot;<br />Tak dla porządku, w deklaracjach funkcji dobrze używać tych samych nazw zmiennych co w ich definicjach.&quot; Tzn gdzie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21401">Marcin vel WiciaTG</a> — 12 kwi 2020, o 13:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-04-12T12:51:55+01:00</updated>
<published>2020-04-12T12:51:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226110#p226110</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226110#p226110"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226110#p226110"><![CDATA[
Brakuje ci nawiasów }<br />- zamykającego funkcję main<br />- zamykającego funkcję  L_DISPLAY<br /><br /><br />Tak dla porządku, w deklaracjach funkcji dobrze używać tych samych nazw zmiennych co w ich definicjach.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 12 kwi 2020, o 12:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin vel WiciaTG]]></name></author>
<updated>2020-04-12T12:44:55+01:00</updated>
<published>2020-04-12T12:44:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226109#p226109</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226109#p226109"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226109#p226109"><![CDATA[
dalej nic, nie wiem o co mu chodzi z tym nawiasem...<br /><br />kod:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdint.h&gt;<br /><br />#define CYFRA0 PORTB &amp;= 0xC0   //  Wlacz Cyfry PORT B0-B6<br />#define CYFRA1 PORTB &amp;= 0xF9<br />#define CYFRA2 PORTB &amp;= 0xA4<br />#define CYFRA3 PORTB &amp;= 0xB0<br />#define CYFRA4 PORTB &amp;= 0x99<br />#define CYFRA5 PORTB &amp;= 0x92<br />#define CYFRA6 PORTB &amp;= 0x82<br />#define CYFRA7 PORTB &amp;= 0xD8<br />#define CYFRA8 PORTB &amp;= 0x80<br />#define CYFRA9 PORTB &amp;= 0x90<br /><br />#define POZYCJA1 PORTD &amp;= ~0x01  // Wlacz Pozycja PORT D0-D3<br />#define POZYCJA2 PORTD &amp;= ~0x02<br />#define POZYCJA3 PORTD &amp;= ~0x04<br />#define POZYCJA4 PORTD &amp;= ~0x08<br /><br />#define GUZIK1 0x01  // GUZIK PORT C0-C1<br />#define GUZIK2 0x02<br /><br />#define ZGAS_P PORTD |= 0X0F<br />#define ZGAS_C PORTB |= 0XFF<br /><br />void INICJALIZACJA_PORTOW();<br />void ZGAS_CP();<br />void  L_DISPLAY( int LICZNIK );<br /><br />int  LICZNIK = 0;  // zmienna LICZNIK zakres od 0 do 255<br /><br /><br /><br />int main( void ) {<br /><br /><br />    INICJALIZACJA_PORTOW();<br />    POZYCJA1;<br /><br />    while ( 1 ) {<br /><br /><br />        if ( LICZNIK == 0 ) {<br />            ZGAS_C;<br />            CYFRA0;<br />        }<br /><br /><br />        if ( !( PINC &amp;( GUZIK1 ) ) ) {<br />            LICZNIK++;<br />            _delay_ms( 200 );<br /><br />            L_DISPLAY( LICZNIK );<br /><br /><br />        }<br />        if ( !( PINC &amp;( GUZIK2 ) ) ) {<br />            LICZNIK--;<br />            _delay_ms( 200 );<br /><br />            L_DISPLAY( LICZNIK );<br /><br /><br />        }<br /><br />    }<br /><br />    void INICJALIZACJA_PORTOW( void ) {<br /><br />        DDRB |= 0xFF;   // PORT B jako wyjscie<br />        DDRD |= 0xFF;   // PORT D jako wyjscie<br />        DDRC &amp;= ~0x03;  // PORT C jako wejscie -BIT 0 i 1 ustawione PULLUP-<br />        _delay_ms( 10 );  // zwloka na ustawienie PULLUP<br />        ZGAS_C;  // wstawienie HIGH na PORT B -zgaszenie CYFR-<br />        ZGAS_P; // wstawienie HIGH na PORT D -zgaszenie POZYCJI, stan wysoki na 4 mlodsze bity-<br /><br />    }<br /><br />    void ZGAS_CP( void ) {<br />        ZGAS_C;  // wstawienie HIGH na PORT B -zgaszenie CYFR-<br />        ZGAS_P; // wstawienie HIGH na PORT D -zgaszenie POZYCJI, stan wysoki na 4 mlodsze bity-<br />    }<br />    void L_DISPLAY( int L_SCAN ) {<br /><br />        if ( L_SCAN == 0 ) {<br />            CYFRA0;<br />        } else if ( L_SCAN == 1 ) {<br />            CYFRA1;<br />        } else if ( L_SCAN == 2 ) {           <br />            CYFRA2;<br />        } else if ( L_SCAN == 3 ) {<br />            CYFRA3;<br />        } else if ( L_SCAN == 4 ) {<br />            CYFRA4;<br />        } else if ( L_SCAN == 5 ) {<br />            CYFRA5;<br />        } else if ( L_SCAN == 6 ) {<br />            CYFRA6;<br />        } else if ( L_SCAN == 7 ) {<br />            CYFRA7;<br />        } else if ( L_SCAN == 8 ) {<br />            CYFRA8;<br />        } else if ( L_SCAN == 9 ) {<br />            CYFRA9;<br />        }[/syntax]<br /><br />LOG:<br /><br />compiling process, please wait...<br />&quot;C:\Users\dom\OneDrive\Dokumenty\MkClipse\AVR Toolchain\bin\avr-gcc&quot; -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields  -mmcu=atmega32 -DF_CPU=8000000UL -MMD -MP -MF&quot;Release/main.d&quot; -MT&quot;Release/main.o&quot; -c -o &quot;Release/main.o&quot; &quot;main.c&quot;&quot;<br />main.c: In function 'L_DISPLAY':<br />main.c:106:9: error: expected declaration or statement at end of input<br />         }<br />         ^<br />main.c: In function 'main':<br />main.c:106:9: error: expected declaration or statement at end of input<br />&quot;C:\Users\dom\OneDrive\Dokumenty\MkClipse\AVR Toolchain\bin\avr-gcc&quot; -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields  -mmcu=atmega32 -DF_CPU=8000000UL -MMD -MP -MF&quot;Release/mk_build.d&quot; -MT&quot;Release/mk_build.o&quot; -c -o &quot;Release/mk_build.o&quot; &quot;mk_build.c&quot;&quot;<br /><br />----------------<br />ERROR --&gt; main.c  --&gt; Line:  106<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21401">Marcin vel WiciaTG</a> — 12 kwi 2020, o 12:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-04-12T12:27:36+01:00</updated>
<published>2020-04-12T12:27:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226107#p226107</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226107#p226107"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226107#p226107"><![CDATA[
Wywołujesz funkcję przed jej deklaracją.<br />Kompilator nie wie co to jest L_DISPLAY,<br /><br />Odkomentuj:<br />//void  L_DISPLAY(LICZNIK);<br />i w nawiasie dopisz typ zmiennej LICZNIK;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 12 kwi 2020, o 12:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin vel WiciaTG]]></name></author>
<updated>2020-04-12T12:21:24+01:00</updated>
<published>2020-04-12T12:21:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226106#p226106</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226106#p226106"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226106#p226106"><![CDATA[
mniej więcej w taki sposób, ale mnie to pokonało <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdint.h&gt;<br /><br />#define CYFRA0 PORTB &amp;= 0xC0   //  Wlacz Cyfry PORT B0-B6<br />#define CYFRA1 PORTB &amp;= 0xF9<br />#define CYFRA2 PORTB &amp;= 0xA4<br />#define CYFRA3 PORTB &amp;= 0xB0<br />#define CYFRA4 PORTB &amp;= 0x99<br />#define CYFRA5 PORTB &amp;= 0x92<br />#define CYFRA6 PORTB &amp;= 0x82<br />#define CYFRA7 PORTB &amp;= 0xD8<br />#define CYFRA8 PORTB &amp;= 0x80<br />#define CYFRA9 PORTB &amp;= 0x90<br /><br />#define POZYCJA1 PORTD &amp;= ~0x01  // Wlacz Pozycja PORT D0-D3<br />#define POZYCJA2 PORTD &amp;= ~0x02<br />#define POZYCJA3 PORTD &amp;= ~0x04<br />#define POZYCJA4 PORTD &amp;= ~0x08<br /><br />#define GUZIK1 0x01  // GUZIK PORT C0-C1<br />#define GUZIK2 0x02<br /><br />#define ZGAS_P PORTD |= 0X0F<br />#define ZGAS_C PORTB |= 0XFF<br /><br />void INICJALIZACJA_PORTOW();<br />void ZGAS_CP();<br />//void  L_DISPLAY(LICZNIK);<br /><br />int  LICZNIK = 0;  // zmienna LICZNIK zakres od 0 do 255<br /><br /><br /><br />int main( void ) {<br /><br /><br />    INICJALIZACJA_PORTOW();<br />    POZYCJA1;<br /><br />    while ( 1 ) {<br /><br /><br />        if ( LICZNIK == 0 ) {<br />            ZGAS_C;<br />            CYFRA0;<br />        }<br /><br /><br />        if ( !( PINC &amp;( GUZIK1 ) ) ) {<br />            LICZNIK++;<br />            _delay_ms( 200 );<br /><br />            L_DISPLAY( LICZNIK );<br /><br /><br />        }<br />        if ( !( PINC &amp;( GUZIK2 ) ) ) {<br />            LICZNIK--;<br />            _delay_ms( 200 );<br /><br />            L_DISPLAY( LICZNIK );<br /><br /><br />        }<br /><br />    }<br /><br />    void INICJALIZACJA_PORTOW( void ) {<br /><br />        DDRB |= 0xFF;   // PORT B jako wyjscie<br />        DDRD |= 0xFF;   // PORT D jako wyjscie<br />        DDRC &amp;= ~0x03;  // PORT C jako wejscie -BIT 0 i 1 ustawione PULLUP-<br />        _delay_ms( 10 );  // zwloka na ustawienie PULLUP<br />        ZGAS_C;  // wstawienie HIGH na PORT B -zgaszenie CYFR-<br />        ZGAS_P; // wstawienie HIGH na PORT D -zgaszenie POZYCJI, stan wysoki na 4 mlodsze bity-<br /><br />    }<br /><br />    void ZGAS_CP( void ) {<br />        ZGAS_C;  // wstawienie HIGH na PORT B -zgaszenie CYFR-<br />        ZGAS_P; // wstawienie HIGH na PORT D -zgaszenie POZYCJI, stan wysoki na 4 mlodsze bity-<br />    }<br />    void L_DISPLAY( uint8_t L_SCAN ) {<br /><br />        if ( L_SCAN == 0 ) {<br />            CYFRA0;<br />        } else if ( L_SCAN == 1 ) {<br />            CYFRA1;<br />        } else if ( L_SCAN == 2 ) {<br />            CYFRA2;<br />        } else if ( L_SCAN == 3 ) {<br />            CYFRA3;<br />        } else if ( L_SCAN == 4 ) {<br />            CYFRA4;<br />        } else if ( L_SCAN == 5 ) {<br />            CYFRA5;<br />        } else if ( L_SCAN == 6 ) {<br />            CYFRA6;<br />        } else if ( L_SCAN == 7 ) {<br />            CYFRA7;<br />        } else if ( L_SCAN == 8 ) {<br />            CYFRA8;<br />        } else if ( L_SCAN == 9 ) {<br />            CYFRA9;<br />        }[/syntax]<br /><br />A tutaj LOG:<br /><br />compiling process, please wait...<br />&quot;C:\Users\dom\OneDrive\Dokumenty\MkClipse\AVR Toolchain\bin\avr-gcc&quot; -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields  -mmcu=atmega32 -DF_CPU=8000000UL -MMD -MP -MF&quot;Release/main.d&quot; -MT&quot;Release/main.o&quot; -c -o &quot;Release/main.o&quot; &quot;main.c&quot;&quot;<br />main.c: In function 'main':<br />main.c:54:13: warning: implicit declaration of function 'L_DISPLAY' [-Wimplicit-function-declaration]<br />             L_DISPLAY( LICZNIK );<br />             ^<br />main.c: In function 'L_DISPLAY':<br />main.c:106:9: error: expected declaration or statement at end of input<br />         }<br />         ^<br />main.c: In function 'main':<br />main.c:106:9: error: expected declaration or statement at end of input<br />&quot;C:\Users\dom\OneDrive\Dokumenty\MkClipse\AVR Toolchain\bin\avr-gcc&quot; -Wall -Os -Wstrict-aliasing=1 -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields  -mmcu=atmega32 -DF_CPU=8000000UL -MMD -MP -MF&quot;Release/mk_build.d&quot; -MT&quot;Release/mk_build.o&quot; -c -o &quot;Release/mk_build.o&quot; &quot;mk_build.c&quot;&quot;<br /><br />----------------<br />WARNING --&gt; main.c  --&gt; Line:  54<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21401">Marcin vel WiciaTG</a> — 12 kwi 2020, o 12:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-04-12T11:03:24+01:00</updated>
<published>2020-04-12T11:03:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226103#p226103</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226103#p226103"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226103#p226103"><![CDATA[
Pokaż jak ten licznik próbowałeś wstawić do funkcji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 12 kwi 2020, o 11:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin vel WiciaTG]]></name></author>
<updated>2020-04-12T10:51:23+01:00</updated>
<published>2020-04-12T10:51:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226102#p226102</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226102#p226102"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226102#p226102"><![CDATA[
Faktycznie zmiana na int zmiennej LICZNIK pomogła <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Dziękuje. Co do tablic to jeszcze nie za bardzo rozumie ich działanie, czekam na książkę w celu dalszej edukacji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21401">Marcin vel WiciaTG</a> — 12 kwi 2020, o 10:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[auers]]></name></author>
<updated>2020-04-12T10:43:13+01:00</updated>
<published>2020-04-12T10:43:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226101#p226101</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226101#p226101"/>
<title type="html"><![CDATA[Re: Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226101#p226101"><![CDATA[
Źle zadeklarowałeś typ zmiennej  LICZNIK.<br />kompilator traktuje je jako zmienna bez znaku czyli masz tylko liczby dodatnie.<br />Nigdy nie będzie spełniony warunek  LICZNIK &lt;0.<br />Zamiast -1 będzie 255, czyli LICZNIK &gt;9 stąd LICZNIK =9.<br /><br />Co do optymalizacji zamiast 2x10 if'ów  stwórz sobie tablicę.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br />Zamiast testować czy LICZNIK po odejmowaniu jest ujemny.<br />Odejmowanie zrób dopiero po sprawdzeniu czy  LICZNIK &gt; 0.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7806">auers</a> — 12 kwi 2020, o 10:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marcin vel WiciaTG]]></name></author>
<updated>2020-04-12T10:29:10+01:00</updated>
<published>2020-04-12T10:29:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226100#p226100</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226100#p226100"/>
<title type="html"><![CDATA[Problem nowicjusza. Prosty licznik.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23014&amp;p=226100#p226100"><![CDATA[
Witam kolegów i koleżanki. Nie tak dawno temu postanowiłem zgłębić tajniki programowania w języku C. Napisałem mega prosty program który ma zliczać kliknięcia od 0 do 9 jednym przyciskiem( to działa ), a drugim przyciskiem w drugą stronę (nie działa).<br />Problem w tym, że kiedy przyciskiem- zejdę do 0 i naciskam dalej, wyświetlacz pokazuje 0 (i to jest dobre, rzekł Pan) ale kiedy wcisnę przycisk+ to nie wskakuje 1 jakby można było się spodziewać tylko wskakuje 9 ?!? Dlaczego ja się pytam? <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />.<br />Pomijam fakt optymalizacji kodu ( 3.6kB ), ani dlaczego nie udało mi się wstawić LICZNIKA do funkcji( wywala błąd ).<br /><br />Coś o mnie: Przesiadłem się z Arduino (jakąś tam wiedzę posiadam), posiadam zestaw uruchomieniowy firmy innej, czekam na zamówioną książkę BB , piszę w MKClipsie, wiedzę do tej pory czerpie z poradników internetowych( jak na razie  poradniki pana Mirka są dla mnie najbardziej zrozumiałe w porównaniu do innych dlatego zamówiłem BB). Liczę na jasne wytłumaczenie mojego błędu. Dziękuje.<br />  <br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdint.h&gt;<br /><br />#define CYFRA0 PORTB &amp;= 0xC0   //  Wlacz Cyfry PORT B0-B6<br />#define CYFRA1 PORTB &amp;= 0xF9<br />#define CYFRA2 PORTB &amp;= 0xA4<br />#define CYFRA3 PORTB &amp;= 0xB0<br />#define CYFRA4 PORTB &amp;= 0x99<br />#define CYFRA5 PORTB &amp;= 0x92<br />#define CYFRA6 PORTB &amp;= 0x82<br />#define CYFRA7 PORTB &amp;= 0xD8<br />#define CYFRA8 PORTB &amp;= 0x80<br />#define CYFRA9 PORTB &amp;= 0x90<br /><br />#define POZYCJA1 PORTD &amp;= ~0x01  // Wlacz Pozycja PORT D0-D3<br />#define POZYCJA2 PORTD &amp;= ~0x02<br />#define POZYCJA3 PORTD &amp;= ~0x04<br />#define POZYCJA4 PORTD &amp;= ~0x08<br /><br />#define GUZIK1 0x01  // GUZIK PORT C0-C1<br />#define GUZIK2 0x02<br /><br />#define ZGAS_P PORTD |= 0X0F<br />#define ZGAS_C PORTB |= 0XFF<br /><br />void INICJALIZACJA_PORTOW();<br />void ZGAS_CP();<br /><br />unsigned char  LICZNIK = 0;  // zmienna LICZNIK zakres od 0 do 255<br /><br /><br /><br />int main( void ) {<br /><br /><br />    INICJALIZACJA_PORTOW();<br />    POZYCJA1;<br /><br />    while ( 1 ) {<br /><br /><br />        if ( LICZNIK == 0 ) {<br />            ZGAS_C;<br />            CYFRA0;<br />        }<br /><br /><br />        if ( !( PINC &amp;( GUZIK1 ) ) ) {<br />            LICZNIK++;<br />            _delay_ms( 200 );<br /><br />            if ( LICZNIK &gt; 9 ) {<br />                LICZNIK = 9;<br />            }<br /><br />            if ( LICZNIK == 0 ) {<br />                ZGAS_C;<br />                CYFRA0;<br />            } else if ( LICZNIK == 1 ) {<br />                ZGAS_C;<br />                CYFRA1;<br />            } else if ( LICZNIK == 2 ) {<br />                ZGAS_C;<br />                CYFRA2;<br />            } else if ( LICZNIK == 3 ) {<br />                ZGAS_C;<br />                CYFRA3;<br />            } else if ( LICZNIK == 4 ) {<br />                ZGAS_C;<br />                CYFRA4;<br />            } else if ( LICZNIK == 5 ) {<br />                ZGAS_C;<br />                CYFRA5;<br />            } else if ( LICZNIK == 6 ) {<br />                ZGAS_C;<br />                CYFRA6;<br />            } else if ( LICZNIK == 7 ) {<br />                ZGAS_C;<br />                CYFRA7;<br />            } else if ( LICZNIK == 8 ) {<br />                ZGAS_C;<br />                CYFRA8;<br />            } else if ( LICZNIK == 9 ) {<br />                ZGAS_C;<br />                CYFRA9;<br />            }<br /><br />        }<br />        if ( !( PINC &amp;( GUZIK2 ) ) ) {<br />            LICZNIK--;<br />            _delay_ms( 200 );<br /><br />            if ( LICZNIK &lt;= 0 ) {<br />                LICZNIK = 0;<br />            }<br /><br />            if ( LICZNIK == 0 ) {<br />                ZGAS_C;<br />                CYFRA0;<br />            } else if ( LICZNIK == 1 ) {<br />                ZGAS_C;<br />                CYFRA1;<br />            } else if ( LICZNIK == 2 ) {<br />                ZGAS_C;<br />                CYFRA2;<br />            } else if ( LICZNIK == 3 ) {<br />                ZGAS_C;<br />                CYFRA3;<br />            } else if ( LICZNIK == 4 ) {<br />                ZGAS_C;<br />                CYFRA4;<br />            } else if ( LICZNIK == 5 ) {<br />                ZGAS_C;<br />                CYFRA5;<br />            } else if ( LICZNIK == 6 ) {<br />                ZGAS_C;<br />                CYFRA6;<br />            } else if ( LICZNIK == 7 ) {<br />                ZGAS_C;<br />                CYFRA7;<br />            } else if ( LICZNIK == 8 ) {<br />                ZGAS_C;<br />                CYFRA8;<br />            } else if ( LICZNIK == 9 ) {<br />                ZGAS_C;<br />                CYFRA9;<br />            }<br />        }<br /><br />    }<br /><br />}<br /><br />void INICJALIZACJA_PORTOW( void ) {<br /><br />    DDRB |= 0xFF;   // PORT B jako wyjscie<br />    DDRD |= 0xFF;   // PORT D jako wyjscie<br />    DDRC &amp;= ~0x03;  // PORT C jako wejscie -BIT 0 i 1 ustawione PULLUP-<br />    _delay_ms( 10 );  // zwloka na ustawienie PULLUP<br />    ZGAS_C;  // wstawienie HIGH na PORT B -zgaszenie CYFR-<br />    ZGAS_P; // wstawienie HIGH na PORT D -zgaszenie POZYCJI, stan wysoki na 4 mlodsze bity-<br /><br />}<br /><br />void ZGAS_CP( void ) {<br />    ZGAS_C;  // wstawienie HIGH na PORT B -zgaszenie CYFR-<br />    ZGAS_P; // wstawienie HIGH na PORT D -zgaszenie POZYCJI, stan wysoki na 4 mlodsze bity-<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21401">Marcin vel WiciaTG</a> — 12 kwi 2020, o 10:29</p><hr />
]]></content>
</entry>
</feed>