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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-04-17T11:59:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=18171&amp;mode</id>
<entry>
<author><name><![CDATA[kamilck13]]></name></author>
<updated>2017-04-17T11:59:09+01:00</updated>
<published>2017-04-17T11:59:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187303#p187303</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187303#p187303"/>
<title type="html"><![CDATA[Re: do...while problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187303#p187303"><![CDATA[
Sorry ale święta nie pozwalają mi na szybszy czas reakcji <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Jeden określony ma być pierwszy czy obojętnie który? Czy wymagany jest czas odstępu między zwolnieniem pierwszego, a wciśnięciem drugiego? Czy w ogóle musi nastąpić zwolnienie pierwszego, czy na oba razem też ma wyjść z pętli?<br /><br />Zakładając że czujnik_belki ma być wciśnięty pierwszy (lub oba naraz), nie musi być zwolniony przed wciśnięciem drugiego (ale może) i czas pomiędzy wciśnięciem pierwszego a drugiego może być nieskończenie długi to ja widzę to tak:<br />[syntax=c]bool czujnik1=true;<br />do<br />{<br />//w tym miejscu te twoje dwa if-y (bo nie ma sensu żebym ich kopiował)<br /><br />if (digitalRead(czujnik_belki_pin) != HIGH)  //jeśli ten zostanie wciśnięty to zmienna czujnik1 będzie cały czas false<br />czujnik1 = false;<br />}<br />while (czujnik1 || digitalRead(czujnik_dlugosci_deski_pin)==HIGH)  //żeby wyjść z pętli oba muszą być false[/syntax]<br />nie wiem czy o to dokładnie ci chodziło, jeśli dalej nie spełniłem twoich oczekiwań to doprecyzuj pytanie<br /><br />[syntax=c]while (digitalRead(czujnik_belki_pin) == HIGH &amp; digitalRead(czujnik_dlugosci_deski_pin)==HIGH );[/syntax]<br />w tej linijce jeśli już to powinien być podwójny &amp;&amp; bo nie wiem co by miał pojedynczy robić, to tak na przyszłość bo warunek i tak ci zmieniłem. Tak teraz patrzę, że wszędzie tak piszesz czy na pewno ci to wszystko działa poprawnie? Pojedynczy AND jest od pobierania adresu, a podwójny od działania logicznego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15774">kamilck13</a> — 17 kwi 2017, o 11:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2017-04-16T09:18:12+01:00</updated>
<published>2017-04-16T09:18:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187252#p187252</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187252#p187252"/>
<title type="html"><![CDATA[Re: do...while problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187252#p187252"><![CDATA[
A ja zrobiłem tak tez nie wiem czy dobrze ale działa<br />[syntax=cpp]if (start_przycisk == LOW) {<br />  on_off = true;<br />  sprawdz();[/syntax]<br /><br /><br />no i <br /><br />[syntax=cpp]void sprawdz()<br />{<br />   <br />   int czujnik_szerokosci_deski_s3 = debouncer7.read();<br />   debouncer7.update();  //S3 Bounce czujnika wykrywajacego szerokosc deski<br />   <br />   lcd.setCursor(0,0);<br />    lcd.print(&quot;start          &quot;);<br /> do <br />   { <br />     digitalWrite(enable_krokowy_pin, LOW);<br />     analogWrite(pwm_krokowy_pin, 5);<br />      <br />      int czujnik_szerokosci_deski_s3 = debouncer7.read();<br />      debouncer7.update();  //S3 Bounce czujnika wykrywajacego szerokosc deski<br />  <br />  } while (digitalRead(czujnik_szerokosci_deski_pin) == LOW) ;  //dopuki s3 jest w stanie wysokim wykonuj petle<br />   <br />}[/syntax]<br /><br />teraz znowu mam problem bo nie potrafię wyjść z pętli poprawnie... chicał bym wyjść z petlli jak jeden a później drugi przycisk zostanie wciśnięty  a wychodzę z pętli jak wcisnę jeden lub drugi osobno lub oba razem<br />[syntax=cpp]do{<br />  if (czujnik_belki_s2 == HIGH ){<br />    analogWrite(pwm_krokowy_pin, 5);<br />    lcd.setCursor(0,0);<br />    lcd.print(&quot; BAZOWANIE GLOWICY  &quot;);<br />    }<br />  else{<br />       analogWrite(pwm_krokowy_pin, 0);  //zatrzymanie silnika krokowego<br />       lcd.setCursor(0,0);<br />       lcd.print(&quot; GLOWICA WYBAZOWANA &quot;);<br />      }<br /><br /><br />  if (czujnik_dlugosci_deski_s1 == HIGH){<br />    analogWrite(pwm_stolu_pin, 5);<br />    lcd.setCursor(0,1);<br />    lcd.print(&quot; BAZOWANIE SOLU     &quot;);<br />    }<br />  else{<br />       analogWrite(pwm_stolu_pin, 0);<br />       lcd.setCursor(0,1);<br />       lcd.print(&quot; STOL WYBAZOWANY &quot;);<br />      } <br />   }while (digitalRead(czujnik_belki_pin) == HIGH &amp; digitalRead(czujnik_dlugosci_deski_pin)==HIGH );<br /> }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 16 kwi 2017, o 09:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kamilck13]]></name></author>
<updated>2017-04-16T08:31:24+01:00</updated>
<published>2017-04-16T08:31:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187251#p187251</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187251#p187251"/>
<title type="html"><![CDATA[Re: do...while problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187251#p187251"><![CDATA[
Ja to bym zrobił tak, ale pewnie jest łatwiejszy sposób, bardziej idealny:<br />[syntax=c]bool start=true;<br />while(1)<br />{<br />   //inne instrukcje<br />if (start==true)<br />{<br />   do<br />   {<br />   //to co robisz w tej pętli która leci tylko na starcie<br />   }<br />   while(czujnik_szerokosci_deski_s3 != LOW)<br />   start=false;<br />}<br />   //inne instrukcje<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15774">kamilck13</a> — 16 kwi 2017, o 08:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2017-04-15T17:59:27+01:00</updated>
<published>2017-04-15T17:59:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187206#p187206</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187206#p187206"/>
<title type="html"><![CDATA[Re: do...while problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187206#p187206"><![CDATA[
Dziękuje za szybką odpowiedz jednak nie o to chodziło. Ma wykonać jeden raz ale po starcie tym:[syntax=cpp]if (on_off==true){[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 15 kwi 2017, o 17:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kamilck13]]></name></author>
<updated>2017-04-15T17:29:08+01:00</updated>
<published>2017-04-15T17:29:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187202#p187202</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187202#p187202"/>
<title type="html"><![CDATA[Re: do...while problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187202#p187202"><![CDATA[
Nie chce mi się analizować twojego kodu, rozumiem, że ta pętla ma być gdzieś na początku. Z opisu wynika, że powinno wyglądać to tak:<br />[syntax=c]int main()<br />{<br />//np. deklaracja zmiennych<br /><br />do<br />{<br />//to co robisz w tej pętli która leci tylko na starcie<br />}<br />while(czujnik_szerokosci_deski_s3 != LOW)<br /><br />while(1)<br />{<br />//pętla główna z której program nigdy nie wyjdzie<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15774">kamilck13</a> — 15 kwi 2017, o 17:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2017-04-15T17:26:23+01:00</updated>
<published>2017-04-15T17:26:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187201#p187201</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187201#p187201"/>
<title type="html"><![CDATA[Re: do...while problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187201#p187201"><![CDATA[
Jeśli jakiś ciąg instrukcji ma się wykonać tylko raz, to po co wstawiasz je do pętli do...while?<br />Przecież pętle stosuje się tam gdzie trzeba powtarzać instrukcje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 15 kwi 2017, o 17:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2017-04-15T15:30:02+01:00</updated>
<published>2017-04-15T15:30:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187192#p187192</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187192#p187192"/>
<title type="html"><![CDATA[do...while problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18171&amp;p=187192#p187192"><![CDATA[
Witam<br />Mam taki problem chciał bym że by program  w pętli do..while wykonał się tylko raz przy starcie i opuścił tą pętle dopiero jak czujnik_szerokosci_deski_s3 == LOW a potem wykonywał resztę programu. Pomoże ktoś?<br /><br />[syntax=cpp]//-----------START/stop------------------------------------------------<br /><br />if (czujnik_dlugosci_deski_s1 == LOW &amp; czujnik_belki_s2 == LOW &amp; czujnik_szerokosci_deski_s3 == LOW &amp; start_przycisk == LOW){<br />  on_off = true ;<br />  delay(20);<br />  }<br /><br />if (on_off==true){<br />  do <br />   { <br />    digitalWrite(enable_krokowy_pin, LOW);<br />    digitalWrite(dir_krokowy_pin, LOW);<br />    analogWrite(pwm_krokowy_pin, 5);<br /><br />   }while (czujnik_szerokosci_deski_s3 == LOW);<br />   <br />}<br /><br />//if (stop_przycisk == LOW){<br />//  on_off = false;<br />//}<br /><br /><br />if (czujnik_belki_s2 == LOW &amp; on_off == true){<br />  analogWrite(pwm_krokowy_pin, 0);<br />  analogWrite(pwm_stolu_pin, 5);<br />  delay(2000);<br />  digitalWrite(dir_krokowy_pin, LOW);<br />  analogWrite(pwm_stolu_pin, 0);<br />  analogWrite(pwm_krokowy_pin, 5);<br />  }<br /> if (czujnik_szerokosci_deski_s3 == LOW &amp; on_off == true){<br />  analogWrite(pwm_krokowy_pin, 0);<br />  analogWrite(pwm_stolu_pin, 5);<br />  delay(2000);<br />  digitalWrite(dir_krokowy_pin, HIGH);<br />  analogWrite(pwm_stolu_pin, 0);<br />  analogWrite(pwm_krokowy_pin, 5);<br />  }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 15 kwi 2017, o 15:30</p><hr />
]]></content>
</entry>
</feed>