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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-06-11T09:35:22+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7375&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-11T09:35:22+01:00</updated>
<published>2014-06-11T09:35:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=84051#p84051</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=84051#p84051"/>
<title type="html"><![CDATA[Re: Problem z programem w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=84051#p84051"><![CDATA[
<div class="quotetitle">mokrowski napisał(a):</div><div class="quotecontent"><br />Chociaż pomysł mieszania delay i sterowania dydaktycznie kontrowersyjny....<br /></div><br /><br />... co BARDZO WYRAŹNIE podkreślałem w poradniku wideo ... za to chciałem pokazać, że nie ma sytuacji bez wyjścia ...., że można kombinować itp itd ...<br /><br />za to powtarzałem wciąż, proszę ZAPOMNIEĆ i nie stosować tego pomysłu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 11 cze 2014, o 09:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sebbek]]></name></author>
<updated>2014-06-11T07:26:04+01:00</updated>
<published>2014-06-11T07:26:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=84034#p84034</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=84034#p84034"/>
<title type="html"><![CDATA[Re: Problem z programem w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=84034#p84034"><![CDATA[
@mokrowski w programie, który mi przysłałeś po skompilowaniu jest błąd w linii 46<br /><br />&quot;error: 'for' loop initial declaration used outside C99 mode&quot;<br /><br />co to może być?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 33 minutach ]</span></strong><br /><br />Udało się!!! <br /><br />Obecny kod programu to<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />uint8_t tab1&#91;&#93; = {1,2,4,8,16,32,64,128,0};<br />uint8_t tab2&#91;&#93; = {128,64,32,16,8,4,2,1,0};<br />uint8_t tab3&#91;&#93; = {16,32,64,128,0,8,4,2,1};<br />uint8_t tab4&#91;&#93; = {8,4,2,1,0,16,32,64,128};<br />uint8_t tab5&#91;&#93; = {128,0,64,1,32,2,16,4,8};<br /><br />uint8_t ktory_efekt=0;<br />void mk_delay_ms(uint16_t ms);<br /><br />int main(void){<br /><br /><br />    DDRD = 0xff;<br />    PORTD = 0xff;<br /><br />    //DDRC &amp;= ~(1&lt;&lt;PB1);<br />    PORTB |= (1&lt;&lt;PB1);<br /><br />    uint8_t i;<br />    _delay_ms(10);<br />    while(1){<br /><br /><br />          if( !(PINB &amp;(1&lt;&lt;PB1))){<br />            ktory_efekt = ktory_efekt + 1;<br />          }<br /><br /><br />          if(0 == ktory_efekt) {<br />              for( i=0; i&lt;9; i++){<br /><br />                  PORTD = ~tab1&#91; i &#93;;<br />                  mk_delay_ms(500);<br />                  if( !(PINB &amp;(1&lt;&lt;PB1))){<br />                      break;<br />                  }<br />              }<br /><br />          }<br />            if(1 == ktory_efekt) {<br />              for( i=0; i&lt;9; i++){<br /><br />                  PORTD = ~tab2&#91; i &#93;;<br />                 mk_delay_ms(500);<br />                  if( !(PINB &amp;(1&lt;&lt;PB1))){<br />                      break;<br />                  }<br />           }<br /><br />       }<br />           if(2 == ktory_efekt) {<br />              for( i=0; i&lt;9; i++){<br /><br />                  PORTD = ~tab3&#91; i &#93;;<br />                  mk_delay_ms(500);<br />                  if( !(PINB &amp;(1&lt;&lt;PB1))){<br />                      break;<br />                  }<br />              }<br /><br />          }<br />            if(3 == ktory_efekt) {<br />              for( i=0; i&lt;9; i++){<br /><br />                  PORTD = ~tab4&#91; i &#93;;<br />                  mk_delay_ms(500);<br />                  if( !(PINB &amp;(1&lt;&lt;PB1))){<br />                      break;<br />                  }<br />           }<br /><br />       }<br />            if(4 == ktory_efekt) {<br />              for( i=0; i&lt;9; i++){<br /><br />                  PORTD = ~tab5&#91; i &#93;;<br />                  mk_delay_ms(500);<br />                  if( !(PINB &amp;(1&lt;&lt;PB1))){<br />                      break;<br />                  }<br />              }<br /><br />          }<br /><br /><br />          }<br />    }<br /><br />void mk_delay_ms(uint16_t ms) {<br /><br />  while(ms--) {<br />     _delay_ms(0.9);<br /><br />  }<br />}[/syntax]<br /><br /><br /><br />Bardzo dziękuje za pomoc i pozdrawiam<br />        sebbek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4734">sebbek</a> — 11 cze 2014, o 07:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daniel880]]></name></author>
<updated>2014-06-10T12:02:51+01:00</updated>
<published>2014-06-10T12:02:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83943#p83943</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83943#p83943"/>
<title type="html"><![CDATA[Re: Problem z programem w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83943#p83943"><![CDATA[
Ja w IF-ach sprawdzałbym resztę z dzielenia przez 5, jeśli masz 5 opcji. No i pętla for w tym przypadku chyba całkowicie źle działa.. Wywal pętle for a IF'y zmień na coś takieg:<br /><br /><br />[syntax=c]if(0 == ktory_efekt%5) {<br />              for( i=0; i&lt;9; i++){<br /> <br />                  PORTD = ~tab1&#91; i &#93;;<br />                  mk_delay_ms(500);<br />              }<br /> <br />          }<br />            if(1 == ktory_efekt%5) {<br />              for( i=0; i&lt;9; i++){<br /> <br />                  PORTD = ~tab2&#91; i &#93;;<br />                  mk_delay_ms(500);<br />           }<br /> <br />       }<br />           if(2 == ktory_efekt%5) {<br />              for( i=0; i&lt;9; i++){<br /> <br />                  PORTD = ~tab3&#91; i &#93;;<br />                  mk_delay_ms(500);<br />           }<br /> <br />       }<br />           if(3 == ktory_efekt%5) {<br />              for( i=0; i&lt;9; i++){<br /> <br />                  PORTD = ~tab4&#91; i &#93;;<br />                  mk_delay_ms(500);<br />           }<br /> <br />       }<br />          if(4 == ktory_efekt%5) {<br />              for( i=0; i&lt;9; i++){<br /> <br />                  PORTD = ~tab5&#91; i &#93;;<br />                  mk_delay_ms(500);<br />           }<br /> <br />       }[/syntax]<br /><br />Powinno działać;) Pamiętaj też, że podczas definiowania zmiennych globalnych są one już inicjalizowane zerami:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2328">Daniel880</a> — 10 cze 2014, o 12:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-06-10T10:44:22+01:00</updated>
<published>2014-06-10T10:44:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83937#p83937</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83937#p83937"/>
<title type="html"><![CDATA[Re: Problem z programem w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83937#p83937"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />AVR może poczekać, pierwotniaki nie<br /></div><br /><br />Chyba, że robimy mikroprocowy sterownik dla potrzeb hodowli pierwotniaków  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 10 cze 2014, o 10:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-10T08:48:59+01:00</updated>
<published>2014-06-10T08:48:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83928#p83928</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83928#p83928"/>
<title type="html"><![CDATA[Re: Problem z programem w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83928#p83928"><![CDATA[
AVR może poczekać, pierwotniaki nie <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> .... zdecydowanie najpierw szkoła, a później hobby ....<br /><br />jak wrócić to pokombinuj i daj znać po zmianach i nowym pomyśle ok ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 cze 2014, o 08:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sebbek]]></name></author>
<updated>2014-06-10T06:58:49+01:00</updated>
<published>2014-06-10T06:58:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83925#p83925</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83925#p83925"/>
<title type="html"><![CDATA[Re: Problem z programem w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83925#p83925"><![CDATA[
Jak wrócę ze szkoły to coś postaram się napisać teraz trzeba lecieć do szkoły uczyć się pierwotniaków. Wolałbym zostać przy AVR ale niestety.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4734">sebbek</a> — 10 cze 2014, o 06:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-10T06:51:58+01:00</updated>
<published>2014-06-10T06:51:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83924#p83924</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83924#p83924"/>
<title type="html"><![CDATA[Re: Problem z programem w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83924#p83924"><![CDATA[
A mówiłem w poradniku wyraźnie:<br /><br />- nie iść tą drogą ... to tylko przykład jak sobie czasem można poradzić<br />- wyprowadź efekty do oddzielnych funkcji które będą wywoływane z wewnątrz pętli głównej<br />- wprowadź obsługę klawisza przynajmniej taką z bloga: <!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/10/obsuga-klawiszy-drgania-stykow-cd2.html" >http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html</a><!-- m --><br /><br />to co zrobiłeś z pętlą for niestety pozbawione jest sensu bo z jednej strony do sterowania pętli używasz zmiennej ktory_efekt a jednocześnie próbujesz klawiszem zmieniać wartość tej zmiennej - totalnie zakłócając pracę tej pętli - już nie mówiąc o tym że próbujesz wywoływać na port tablice indeksowane właśnie tą samą zmienną ... więc masz TOTALNE MASŁO MAŚLANE i to z maślanką <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />proponuję przemyśl to co zrobiłeś na spokojnie a do testów zrób sobie dwie krótkie tablice i najpierw spróbuj w głowie rozważyć co i jak ma działać ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 cze 2014, o 06:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sebbek]]></name></author>
<updated>2014-06-10T06:40:16+01:00</updated>
<published>2014-06-10T06:40:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83922#p83922</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83922#p83922"/>
<title type="html"><![CDATA[Problem z programem w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7375&amp;p=83922#p83922"><![CDATA[
Witam, czy mógłby mi ktoś sprawdzić mój wsad chciałbym żeby każde następne wciśnięcie przycisku zliczało do pięciu i żeby był uruchamiany odpowiedni tryb, który jest zapisany w tabeli. Diody mam podłączone katodami w razie czego, a przycisk do VCC.<br /><br /><br /><br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br /><em><span style="color: #FF0000">#define F_CPU 1000000L  // proszę tego NIGDY nie używać w kodzie ok ? - mirekk36</span></em><br /></div><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />uint8_t tab1&#91;&#93; = {1,2,4,8,16,32,64,128,0};<br />uint8_t tab2&#91;&#93; = {128,64,32,16,8,4,2,1,0};<br />uint8_t tab3&#91;&#93; = {16,32,64,128,0,8,4,2,1};<br />uint8_t tab4&#91;&#93; = {8,4,2,1,0,16,32,64,128};<br />uint8_t tab5&#91;&#93; = {128,0,64,1,32,2,16,4,8};<br /><br />uint8_t ktory_efekt=0;<br />void mk_delay_ms(uint16_t ms);<br /><br />int main(void){<br /><br /><br />    DDRD = 0xff;<br />    PORTD = 0xff;<br /><br />    //DDRC &amp;= ~(1&lt;&lt;PB1);<br />    PORTB |= (1&lt;&lt;PB1);<br /><br />    uint8_t i;<br />    _delay_ms(10);<br />    while(1){<br /><br />       for( ktory_efekt=0; ktory_efekt&lt;5; ktory_efekt++)<br />          if(0 == ktory_efekt) {<br />              for( i=0; i&lt;9; i++){<br /><br />                  PORTD = ~tab1&#91; i &#93;;<br />                  mk_delay_ms(500);<br />              }<br /><br />          }<br />            if(1 == ktory_efekt) {<br />              for( i=0; i&lt;9; i++){<br /><br />                  PORTD = ~tab2&#91; i &#93;;<br />                  mk_delay_ms(500);<br />           }<br /><br />       }<br />           if(2 == ktory_efekt) {<br />              for( i=0; i&lt;9; i++){<br /><br />                  PORTD = ~tab3&#91; i &#93;;<br />                  mk_delay_ms(500);<br />           }<br /><br />       }<br />           if(3 == ktory_efekt) {<br />              for( i=0; i&lt;9; i++){<br /><br />                  PORTD = ~tab4&#91; i &#93;;<br />                  mk_delay_ms(500);<br />           }<br /><br />       }<br />          if(4 == ktory_efekt) {<br />              for( i=0; i&lt;9; i++){<br /><br />                  PORTD = ~tab5&#91; i &#93;;<br />                  mk_delay_ms(500);<br />           }<br /><br />       }<br /><br /><br /><br />   }<br />}<br /><br /><br /><br />void mk_delay_ms(uint16_t ms) {<br /><br />  while(ms--) {<br />     _delay_ms(0.9);<br /><br /><br />if( !(PINB &amp;(1&lt;&lt;PB1))) {<br />             ktory_efekt = ktory_efekt + 1;<br />             break;<br />          }<br />  }<br />}[/syntax]<br /><br /><br /><br /><br />Z góry dziękuje i pozdrawiam<br /><br />                   Sebbek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4734">sebbek</a> — 10 cze 2014, o 06:40</p><hr />
]]></content>
</entry>
</feed>