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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-08-03T20:18:59+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=15887&amp;mode</id>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-08-03T19:14:28+01:00</updated>
<published>2016-08-03T19:14:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165348#p165348</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165348#p165348"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165348#p165348"><![CDATA[
Tak, nie na 100%, ale masz około 100 000 cykli zapisu do każdej z komórek.<br /><br />PS. kontroluj PW.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 3 sie 2016, o 19:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-08-03T20:18:59+01:00</updated>
<published>2016-08-03T18:57:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165346#p165346</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165346#p165346"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165346#p165346"><![CDATA[
Dzięki Daro.<br />Czujny jesteś  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> .<br />Jak zawsze w takich sytuacjach przeważa niecierpliwość, a przecież nie samym forum ludzie żyją. Muszę się tego nauczyć  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> .<br />Broń Boże co sekundę, czy w pętli. Te info dawno wyczytałem. Zapoznam się z tym, co mi podsunąłeś. Jeszcze raz dziękuję.<br />Na razie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 3 sie 2016, o 18:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-08-03T18:36:05+01:00</updated>
<published>2016-08-03T18:36:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165344#p165344</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165344#p165344"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165344#p165344"><![CDATA[
hejka,<br />Może koledzy akurat w innych wątkach dyskutują. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />Tylko nie _delay  <img src="https://forum.atnel.pl/images/smilies/icon_e_surprised.gif" alt=":o" title="Zdziwiony" /><br />Do zabezpieczenia procesu zapisu jest używany pewien sposób.<br />Poczytaj np tu. <a href="http://forum.atnel.pl/post81196.html#p81196"  class="postlink">http://forum.atnel.pl/post81196.html#p81196</a><br />Mam nadzieję że nie próbujesz zapisywać do eeprom danych co sekundę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 3 sie 2016, o 18:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-08-03T09:26:21+01:00</updated>
<published>2016-08-03T09:26:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165318#p165318</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165318#p165318"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165318#p165318"><![CDATA[
Mam prośbę.<br />Nie chcę zakładać nowego tematu dla jednego, czy dwóch pytań, a prosiłbym o odpowiedź.<br /><br />Czy zapisując dane np. z ram do eprom, np: copy_ram_to_eem(); i podobnym operacjom<br />powinienem zastosować delay np:<br /><br />[syntax=c]copy_ram_to_eem();<br />_delay_ms(1000);[/syntax]<br /><br />Czy procesor potrzebuje czasu na prawidłowe zapisanie danych i po tym delay dopiero może wykonywać kolejne instrukcje, czy też<br />Ten delay jest zbędny i dane i tak prawidłowo się zapiszą ?.<br /><br />Pytam, ponieważ wprowadza on opóźnienie w pętli dość znaczne. Jeśli takie opóźnienie jest konieczne, to jak należałoby to zrobić (timer ???).<br />Pytanie może banalne, ale proszę o radę i ewentualne wyjaśnienie.<br />Dziękuję z góry za pomoc.<br /><br /><br />CZY NIE MA OSOBY, KTÓRA ODPOWIEDZIAŁA BY NA MOJE PYTANIE?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 3 sie 2016, o 09:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-08-01T22:53:55+01:00</updated>
<published>2016-08-01T22:53:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165233#p165233</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165233#p165233"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165233#p165233"><![CDATA[
Tak jest dobrze.<br /><br />[syntax=c]while(1)<br /><br />{<br /><br />if(ms2_flag)/* sprawdzamy flagę, rozdzielczość 2ms */<br /><br />{<br /><br /><br />if ( !(PINB &amp; silnik_1_prawo_szybko) )  kroki_prawo_silnik_1();<br />    else if ( !(PINB &amp; silnik_1_lewo_szybko) )  kroki_lewo_silnik_1();<br />    else if ( !(PINB &amp; silnik_1_prawo_wolno) )  kroki_prawo_silnik_1();<br />    else if ( !(PINB &amp; silnik_1_lewo_wolno) )  kroki_lewo_silnik_1();<br />    else if ( !(PIND &amp; silnik_2_prawo_szybko) )  kroki_prawo_silnik_2();<br />    else if ( !(PIND &amp; silnik_2_lewo_szybko) )  kroki_lewo_silnik_2();<br />    else if ( !(PIND &amp; silnik_2_prawo_wolno) )  kroki_prawo_silnik_2();<br />    else if ( !(PIND &amp; silnik_2_lewo_wolno) )  kroki_lewo_silnik_2();<br />    else<br />    {<br />    silnik_1_stop(); silnik_2_stop();<br />    }<br /><br />ms2_flag = 0;// zerujemy flagę<br />}<br /><br />}<br /><br />}[/syntax]<br /><br /><br />Pozostaje mi tylko zrobić dwie prędkości silnika. Na razie klawisz wolno i szybko obraca tak samo. Trzeba by zmieniać milisekundy. Jak wcisnę przycisk wolno<br />to w przerwaniu np. 20ms, a jak wcisnę przycisk szybko, to ms 5 np. Jakoś tak sobie to wyobrażm. Pewnie jest to możliwe<br /><br />Starczy. Idę spać.<br />Dzięki i na razie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 1 sie 2016, o 22:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-08-01T22:09:19+01:00</updated>
<published>2016-08-01T22:09:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165232#p165232</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165232#p165232"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165232#p165232"><![CDATA[
hm.. jeżeli jest flaga, co 2ms sprawdza klawisze i tym samym<br />co 2ms wykonuje funkcje kręcenia silnikiem które<br />co 2ms uaktualniają stan napięć na silniku.  -głośno myślę.-  <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /> gdzie ten błąd ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 1 sie 2016, o 22:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-08-01T21:28:12+01:00</updated>
<published>2016-08-01T21:28:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165229#p165229</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165229#p165229"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165229#p165229"><![CDATA[
Witam.<br />Próbowałem, ale w takim układzie  nie kręci. Ale jak wyłączę wszystkie else, to wtedy wszystko działa prawidłowo, poza tym, że silnik pobiera prąd, kiedy zatrzymany. Po prostu za długo siedzę i już bezmyślnie pisze. Trzeba odpocząć.<br />Poniżej kod, ale sory, że tyle nawstawiane. To tylko testy i jest ogólny bałagan.<br /><br />Tak wszystkie przyciski pracują, ale do poprawy &quot;na trzeźwo&quot;.<br /><br />[syntax=c]while(1)<br /><br />{<br /><br />if(ms2_flag)/* sprawdzamy flagę, rozdzielczość 2ms */<br /><br />{<br />if ( !(PINB &amp; silnik_1_prawo_szybko) )  kroki_prawo_silnik_1(); //else silnik_1_stop();<br />if ( !(PINB &amp; silnik_1_lewo_szybko) )  kroki_lewo_silnik_1(); //else silnik_1_stop();<br />if ( !(PINB &amp; silnik_1_prawo_wolno) )  kroki_prawo_silnik_1(); //else silnik_1_stop();<br />if ( !(PINB &amp; silnik_1_lewo_wolno) )  kroki_lewo_silnik_1(); //else silnik_1_stop();<br />if ( !(PIND &amp; silnik_2_prawo_szybko) )  kroki_prawo_silnik_2(); //else silnik_2_stop();<br />if ( !(PIND &amp; silnik_2_lewo_szybko) )  kroki_lewo_silnik_2(); //else silnik_2_stop();<br />if ( !(PIND &amp; silnik_2_prawo_wolno) )  kroki_prawo_silnik_2(); //else silnik_2_stop();<br />if ( !(PIND &amp; silnik_2_lewo_wolno) )  kroki_lewo_silnik_2(); //else silnik_2_stop();<br /><br /><br /><br />/*if ( !(PINB &amp; silnik_1_prawo_szybko) )  kroki_prawo_silnik_1();<br />    else if ( !(PINB &amp; silnik_1_lewo_szybko) )  kroki_lewo_silnik_1();<br />    else if ( !(PINB &amp; silnik_1_prawo_wolno) )  kroki_prawo_silnik_1();<br />    else if ( !(PINB &amp; silnik_1_lewo_wolno) )  kroki_lewo_silnik_1();<br />    else if ( !(PIND &amp; silnik_2_prawo_szybko) )  kroki_prawo_silnik_2();<br />    else if ( !(PIND &amp; silnik_2_lewo_szybko) )  kroki_lewo_silnik_2();<br />    else if ( !(PIND &amp; silnik_2_prawo_wolno) )  kroki_prawo_silnik_2();<br />    else if ( !(PIND &amp; silnik_2_lewo_wolno) )  kroki_lewo_silnik_2();<br />    else {silnik_2_stop(); silnik_1_stop(); ms2_flag = 0;}   zatrzymujemy silnik, zerujemy flagę jezeli zaden klawisz nie nacisniety*/<br /><br /><br />ms2_flag = 0;// zerujemy flagę<br /><br />}<br /><br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 1 sie 2016, o 21:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-08-01T20:35:16+01:00</updated>
<published>2016-08-01T20:35:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165225#p165225</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165225#p165225"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165225#p165225"><![CDATA[
hejka,<br />a spróbuj tak:<br />[syntax=c]{<br />                        if ( !(PINB &amp; silnik_1_prawo_szybko) )  kroki_prawo_silnik_1();/*jezeli wcisniety wykonaj funkcje*/<br />                        else if ( !(PINB &amp; silnik_1_lewo_szybko) )  kroki_lewo_silnik_1();/*jezeli nie, to jezeli ten wcisniety..*/<br />                        else if ( !(PINB &amp; silnik_1_prawo_wolno) )  kroki_prawo_silnik_1();/*jezeli nie, to jezeli ten wcisniety..*/<br />                        else if ( !(PINB &amp; silnik_1_lewo_wolno) )  kroki_lewo_silnik_1();<br />                        else if ( !(PIND &amp; silnik_2_prawo_szybko) )  kroki_prawo_silnik_2();<br />                        else if ( !(PIND &amp; silnik_2_lewo_szybko) )  kroki_lewo_silnik_2();<br />                        else if ( !(PIND &amp; silnik_2_prawo_wolno) )  kroki_prawo_silnik_2();<br />                        else if ( !(PIND &amp; silnik_2_lewo_wolno) )  kroki_lewo_silnik_2();<br />                        else {silnik_2_stop();ms2_flag = 0;}   /*jezeli ten tez nie, zatrzymujemy silnik, zerujemy flage bo zaden klawisz nie nacisniety*/<br /> <br />                }[/syntax]<br />sprawdza wszystkie klawisze i wykonuje wybraną funkcję - dopóki trzymasz klawisz nie zeruje flagi.<br /><br />dopisałem jeszcze komentarze . <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=11549">Daro69</a> — 1 sie 2016, o 20:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-08-01T19:51:54+01:00</updated>
<published>2016-08-01T19:51:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165214#p165214</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165214#p165214"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165214#p165214"><![CDATA[
Wielkie dzięki Daro za kolejną pomoc.<br />Muszę trochę Tobie odpuścić i sam popracować. Twoje posty były bardzo pomocne. Dzisiaj napisałem wszystko od nowa. Zmieniłem wszystkie funkcje do obsługi silnika<br />na takie, jak mi pokazałeś i opierając się na BB i kodach P.Mirka. Wszystkie delaye wywaliłem. Puki co muszę sam pomedytować. Ja pisząc coś bez doświadczenia robię to<br />na własną logikę, która nie zawsze jest słuszna, ale postępy jakieś są. Na razie chcę porządnie napisać obsługę silnika lewo, prawo, wolno, szybko w przerwaniach.<br />Wtedy będę dodawał kolejne elementy. Za jakiś czas podeślę Tobie kod do obejrzenia, a może coś Ci się przyda. Wrzuciłbym tutaj, ale wiadomo, że większość nie moja<br />i ponoć nie wolno.<br />Tak czy siak istotnie te timery, to super sprawa jest, jak się je zrozumie. W 100% jeszcze nie łapię, ale prawie.<br />Puki co mam na razie ostatnie pytanie. <br />Pół godzinki temu odpaliłem programik. Nie mam żadnych alertów. Silnik na timerze kręci,aż miło. Zmieniając wartość OCR0 = 30; na różne wartości zmieniam<br />prędkość obrotową silnika.<br />Jest tylko problem, że tylko jeden przycisk działa, tzn. ten pierwszy if od góry pod if(ms2_flag). Następne nie funkcjonują.<br />Myślałem, że po kolei sprawdzane są przyciski w pętli, i jeśli któryś wcisnę, to wykona się instrukcja do tego przycisku, a tu tylko działa:<br /><br />if ( !(PINB &amp; silnik_1_prawo_szybko) )  kroki_prawo_silnik_1(); else silnik_1_stop();<br /><br />Oczywiście trzeba dalej próbować. Może źle myślę i moja logika w tym miejscu jest błędna. Co robię źle ?.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Zapomniałem wstawić<br /><br />[syntax=c]while(1)<br /><br />{<br /><br />if(ms2_flag)/* sprawdzamy flagę, rozdzielczość 2ms */<br /><br />{<br />if ( !(PINB &amp; silnik_1_prawo_szybko) )  kroki_prawo_silnik_1(); else silnik_1_stop();<br />if ( !(PINB &amp; silnik_1_lewo_szybko) )  kroki_lewo_silnik_1(); else silnik_1_stop();<br />if ( !(PINB &amp; silnik_1_prawo_wolno) )  kroki_prawo_silnik_1(); else silnik_1_stop();<br />if ( !(PINB &amp; silnik_1_lewo_wolno) )  kroki_lewo_silnik_1(); else silnik_1_stop();<br />if ( !(PIND &amp; silnik_2_prawo_szybko) )  kroki_prawo_silnik_2(); else silnik_2_stop();<br />if ( !(PIND &amp; silnik_2_lewo_szybko) )  kroki_lewo_silnik_2(); else silnik_2_stop();<br />if ( !(PIND &amp; silnik_2_prawo_wolno) )  kroki_prawo_silnik_2(); else silnik_2_stop();<br />if ( !(PIND &amp; silnik_2_lewo_wolno) )  kroki_lewo_silnik_2(); else silnik_2_stop();<br /><br />ms2_flag = 0;/* zerujemy flagę */<br /><br />}<br /><br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 1 sie 2016, o 19:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-08-01T17:57:29+01:00</updated>
<published>2016-08-01T17:57:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165198#p165198</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165198#p165198"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165198#p165198"><![CDATA[
No to jeszcze raz  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />[syntax=c]/*w przerwaniu co 5ms.*/<br />if (krok_szybko &lt; 4) /*jezeli nie ma jeszcze 4 kroku wykona tylko to pomiedzy dwoma nawiasami*/<br />                        {<br />                        krok_szybko++;      /*zwiększaj o 1*/<br />                        }<br /><br />else                 /*jezeli warunek 1 nie jest spelniony- czyli krok_szybko ma wartosc 4 - ostatnia-*/<br /><br />     {  /* wykonaj wszystko od tego miejsca do ostatniej klamry*/<br />                         krok_szybko = 1;    /*przypisz wartość 1 i licz od nowa i tak w kółko w pętli*/<br /><br />                         if (krok_wolno &lt; 4)  /*jezeli krok_wolno nie jest 4, to też wykonaj - oczywiscie pamietamy -jezeli krok_szybko miał wartosc 4-*/                                  <br />                                 {<br />                                 krok_wolno++;  /*inkrementacja &quot;krok_wolno&quot;*/<br />                                 }<br />                         else /*jezeli jednak krok_wolno jest juz 4 wykonaj to */<br />                                 {<br />                                 krok_wolno = 1; /*powrot kroku do 1- (pamietajac ze program tu dobrnie,<br />                                                                       1.jezeli pierwszy if nie jest spelniony- wykona pierwsze else-, a w nim...<br />                                                                       2.jezeli drugi if nie jest spelniony- wykona jeszcze drugie else) zanim opusci to przerwanie*/<br />                                 }<br />      }[/syntax]<br />może tak jakoś będzie łatwiej.  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Na marginesie: <br /><div class="quotetitle">Robson napisał(a):</div><div class="quotecontent"><br />Nie wiem ile czasu poświęcasz na naukę, ale jak patrzę na posty,<br />to tak łatwo Tobie te przykłady wychodzą.<br /></div><br />Uczę się w wolnych chwilach, na początku ~2h dziennie po fajrant, trochę w przerwach w pracy. Teraz mniej - jakoś więcej obowiązków się zrobiło.<br />Zauważ że to co piszę w kodach opiera się niestety tylko na podstawach. Ja tylko nimi żongluję, czasem bardzo niezgrabnie. <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br />Mam jeszcze problemy z wieloma podstawowymi zagadnieniami więc ich na razie nie używam,nie mam do nich wyczucia mimo że wiem jak działają.<br />To jak z japońskimi pałeczkami  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  wiesz jak działają, ale żeby nimi zjeść  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" />  to potrzeba wprawy.<br />No właśnie - WPRAWY.  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 1 sie 2016, o 17:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-08-01T11:24:53+01:00</updated>
<published>2016-08-01T11:24:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165187#p165187</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165187#p165187"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165187#p165187"><![CDATA[
Wieczorem postaram się rozpisać kod z komentarzami.<br />Chodzi o to że warunkowe  zwiększanie wolnego kroku razem z przypisaniem 1-dynki jest wewnątrz &quot;else&quot; kroku szybkiego, czyli występuje co 4 zmiany kroku szybkiego. <br />E... Kiepsko się pisze paluchem na małym wyswietlaczu.<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=11549">Daro69</a> — 1 sie 2016, o 11:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-08-01T07:27:56+01:00</updated>
<published>2016-08-01T07:27:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165174#p165174</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165174#p165174"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165174#p165174"><![CDATA[
Ok.Dzięki.<br />Żeby nie przeszkadzać w pracy, to tylko napisz w wolnej chwili, czy prawidłowo rozumiem zapis. Muszę dojść do tego, a żeby rozumieć<br />wszystko, co piszę. Inaczej to nie ma sensu i zawsze będą luki w wiedzy. Ja wiem, że wszystko jest opisane w książce, ale dla jednej osoby<br />po jednym przeczytaniu jest wszystko jasne, a dla drugiej nie do końca. Nieraz temat wytłumaczony w trochę inny sposób, albo przez inną<br />osobę łatwiej dociera. Swoją drogą, to piszesz, że niecały rok zajmujesz się C. Nie wiem ile czasu poświęcasz na naukę, ale jak patrzę na posty,<br />to tak łatwo Tobie te przykłady wychodzą. Jeżeli jesteś na etapie, że sam podejmujesz decyzje, że możesz coś zrobić na kilka sposobów, to<br />już jest duży sukces. Myślę, że z czasem i ja dam radę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 1 sie 2016, o 07:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-08-01T06:54:17+01:00</updated>
<published>2016-08-01T06:54:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165173#p165173</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165173#p165173"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165173#p165173"><![CDATA[
Też w pracy. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Chodzi o to że kiedy szybko konczy 4-ty krok to wolno przybiera kolejny. Wynikło z Twoich założeń 5ms i 20ms.<br />Fakt, to też nie jest najlepsze rozwiązanie bo ciężko zmieniać czasy, ale pomaga w zrozumieniu zasady działania w przerwaniach. No i del.. Znika. <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=11549">Daro69</a> — 1 sie 2016, o 06:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-08-01T06:23:22+01:00</updated>
<published>2016-08-01T06:23:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165171#p165171</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165171#p165171"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165171#p165171"><![CDATA[
Witam.<br />Co prawda jestem w pracy, ale czasami mogę chwilę poświęcić.Dopisałem swoje komentarze, a żeby się upewnić, czy dobrze myślę.<br />Wiem, że to podstawy podstaw <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> , ale bez zrozumienia i przepisywanie czyjegoś kodu, żeby &quot;zadziałało&quot; to zła droga.<br /><br />[syntax=c]if (krok_szybko &lt; 4)<br />                        {<br />                        krok_szybko++;      // jeszcze nie ma 4 kroku, a więc zwiększaj o 1<br />                        }<br />else<br />                        {<br />                        krok_szybko = 1;    // jeśli licznik dojdzie do 4, to przypisz wartość 1 i licz od nowa i tak w kółko w pętli<br />                        if (krok_wolno &lt; 4)                                    // dotyczy wszystkich linijek tego kodu. Czy dobrze interpretuję ?<br />                                {<br />                                krok_wolno++;<br />                                } else<br />                                {<br />                                krok_wolno = 1;<br />                                }<br />                        }<br />GeSHi[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 1 sie 2016, o 06:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-07-31T21:33:11+01:00</updated>
<published>2016-07-31T21:33:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165153#p165153</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165153#p165153"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165153#p165153"><![CDATA[
Spoko, <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />Jestem początkujący. A programowanie to też moje hobby, od niecałego roku.<br />Staram się jak mogę, ale i tak nie zawsze wychodzi dobrze, dlatego fajnie że są jeszcze koledzy chętni do pomocy i korygowania mojego toku rozumowania.<br />Jest tu kilku sympatycznych pomagierów.  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />-ja  podpowiadam na ile potrafię i przy okazji sam się uczę. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />Jestem tu często, ale też mam nieraz przerwy - wiadomo codzienne obowiązki .<br />Potem przeglądam historię postów, wątków i archiwum chat'a , by być trochę na bieżąco.<br />Teraz ja się rozpisałem  <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> <br /><br />Żeby nie było że nie na temat :<br />Warto przestudiować jak do zagadnienia silników bipolarnych podchodzi Mirek, i w jaki sposób to ogarnia. -<strong> BB i kod z płyty</strong> -. a resztę po swojemu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 31 lip 2016, o 21:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-07-31T20:50:27+01:00</updated>
<published>2016-07-31T20:50:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165144#p165144</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165144#p165144"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165144#p165144"><![CDATA[
Dziękuję Daro za cenną pomoc.<br />Goście pojechali, ale teraz głowa nie za bardzo do myślenia.... <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> <br />Jutro po pracy biorę się za robotę i postaram się zastosować. Mam też inne zajęcia (to, to tylko hobby) przy domu, tak że jak bym się opóźniał z postami, to<br />nie znaczy, że zaniechałem tematu. A i odpocząć czasem trzeba, to wtedy lepiej się myśli.<br />Tak, czy inaczej zanim dokończę ten projekt, to już z góry wielkie dzięki za włożony wkład, poświęcony czas i w ogóle.<br />Twoje podpowiedzi są dla mnie cenne, pisane w sposób zrozumiały dla mnie i przede wszystkim komentarze. Im jest ich więcej, tym bardziej pomocne.<br />Mi trzeba jak &quot;krowie na rowie&quot; tłumaczyć. Na jedną linijkę kodu pięć linijek komentarza  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> . Nie każdy ma tyle cierpliwości.<br />Ja oczywiście oglądam dużo poradników, czytam książkę, ale kiedy słyszę, że trzeba wykonać jakieś jawne rzutowanie, volatile, extern, specyfikator...itd itd<br />to ręce opadają. No ale pomału na swój sposób zaczynam pewne rzeczy rozumieć. Programistą nigdy prawdziwym nie będę, ale chciałbym trochę nauczyć.<br />Dzięki forum i takim ludziom, jak Ty jest to możliwe. Gdyby nie poradniki Pana MIrka, to pewnie bym się dawno poddał. <br />No ale dosyć tych wywodów.<br />Dziękuję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 31 lip 2016, o 20:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-07-31T14:28:53+01:00</updated>
<published>2016-07-31T14:28:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165121#p165121</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165121#p165121"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165121#p165121"><![CDATA[
<div class="quotetitle">Robson napisał(a):</div><div class="quotecontent"><br />Zrozumiałem, że muszę stworzyć funkcję pomiar=pomiar(). a jak to podzielić na dwa ?<br /></div><br />w przerwaniu np. co 0,5 sek:<br />[syntax=c]if (!wybor_1) wybor_2 = 1;<br />if (!wybor_2) wybor_1 = 1;/*flagi wyboru, jezeli w petli po wykonwniu funkcji wyzerujesz wybor_1, to ustawi sie na 1 wybor_2*/[/syntax]<br />w pętli<br />[syntax=c]if (wybor_1) /*jezeli wybor_1 ma wartosc 1*/<br />{<br />f_1();/*tu pomiar - wynik_zapis=wynik()*/<br />wybor_1 = 0;<br />}<br />if (wybor_2)/*jezeli wybor_2 ma wartosc 1*/<br />{<br />f_2(); /*wyswietlanie przepisanego do wynik_zapis - wynik() &quot;lcd_int(wynik_zapis);&quot;*/<br />wybor_2 = 0;<br />}[/syntax]<br />w przerwaniu co 1ms można wykorzystać licznik, i od niego uzależnić flagi i zmienne. np. coś tak.<br />[syntax=c]static uint8_t licznik;<br />if (licznik &lt; 100) licznik++;<br />else /*tu mija 100ms, - &quot;f_ms_100&quot; to flaga ktora mozesz wykorzystac w programie*/<br />{<br />licznik = 1; /*kasowanie licznika*/<br />f_100_ms = 1; /*flaga*/<br />if (ms_100 &lt; 9) ms_100++;<br />else /*tu mija 1s. mozemy ustawic flage, i w głównej zerowac ja zliczajac do uzyskania minuty, itd. */<br />{<br />ms_100 = 0; /*kasowanie ms_100*/<br />flag_1_SEK = 1; /*flaga 1 sek*/<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 31 lip 2016, o 14:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-07-31T14:21:56+01:00</updated>
<published>2016-07-31T14:21:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165120#p165120</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165120#p165120"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165120#p165120"><![CDATA[
Dzięki Daro69.<br />Bardzo ciekawa koncepcja. Pokombinuję. Na razie dzięki wielki. Tym razem to mój wątek, a więc mogę dodawać punkty <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> .Będę pamiętał.<br />Dzisiaj odpuszczam, bo mam mieć gości, ale temat cały czas aktualny.<br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 31 lip 2016, o 14:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-07-31T13:19:36+01:00</updated>
<published>2016-07-31T13:19:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165115#p165115</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165115#p165115"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165115#p165115"><![CDATA[
może jeszcze tak do przeanalizowania.<br />[syntax=c]static void kroki_prawo_1_szybko(void)<br />{<br />if (krok_szybko == 1) KROK_1_1;<br />if (krok_szybko == 2) KROK_2_1;<br />if (krok_szybko == 3) KROK_3_1;<br />if (krok_szybko == 4) KROK_4_1;<br />}<br />static void kroki_lewo_1_szybko(void)<br />{<br />if (krok_szybko == 4) KROK_4_1;<br />if (krok_szybko == 3) KROK_3_1;<br />if (krok_szybko == 2) KROK_2_1;<br />if (krok_szybko == 1) KROK_1_1;<br />}<br />static void kroki_prawo_1_wolno(void)<br />{<br />if (krok_wolno == 1) KROK_1_1;<br />if (krok_wolno == 2) KROK_2_1;<br />if (krok_wolno == 3) KROK_3_1;<br />if (krok_wolno == 4) KROK_4_1;<br />}<br />static void kroki_lewo_1_wolno(void)<br />{<br />if (krok_wolno == 4) KROK_4_1;<br />if (krok_wolno == 3) KROK_3_1;<br />if (krok_wolno == 2) KROK_2_1;<br />if (krok_wolno == 1) KROK_1_1;<br />}[/syntax]<br />a w przerwaniu co 5 ms. np. coś tak:<br />[syntax=c]if (krok_szybko &lt; 4)<br />{<br />krok_szybko++;<br />}<br />else<br />{<br />krok_szybko = 1;<br />if (krok_wolno &lt; 4)<br />{<br />krok_wolno++;<br />} else<br />{<br />krok_wolno = 1;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 31 lip 2016, o 13:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-07-31T13:17:57+01:00</updated>
<published>2016-07-31T13:17:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165114#p165114</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165114#p165114"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165114#p165114"><![CDATA[
Witaj Daro69<br />Widzę, że jesteś stałym bywalcem forum. Dzięki.<br />Zrozumiałem, że muszę stworzyć funkcję pomiar=pomiar(). a jak to podzielić na dwa ?. Musiałbym zrobić dwa tajmery, tzn jeden do obsługi pomiaru, a drugi do<br />wyświetlania ?.<br />Wybacz za tego typu pytania, ale to wszystko jest dla mnie zupełnie czymś nowym i ciężko zatrybić. Żebym kiedyś miał chociaż jakieś zajęcia z informatyki, czy<br />cokolwiek, a tak to same słownictwo, określenia w C powalają. Ktoś nieraz coś do mnie pisze, albo przeglądam inne posty, czytam i nie rozumiem, o co chodzi.<br />No ale wiadomo, że to po prostu luki w wiedzy.<br />Kiedyś miałem taki moment, że chciałem to wszystko rzucić, ale zmieniłem zdanie. Ta cała zabawa w procesory jest tak ciekawa, że nie sposób tego zaprzestać.<br />Im więcej się wie, tym bardziej wciąga. Nawet zgromadziłem materiały do bascoma, ponieważ często słyszałem, że łatwy itd..., ale zostałem przy C.<br />Po prostu po mału do przodu, jak napisałeś. Inaczej się nie da <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> .<br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 31 lip 2016, o 13:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-07-31T11:53:56+01:00</updated>
<published>2016-07-31T11:53:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165108#p165108</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165108#p165108"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165108#p165108"><![CDATA[
cześć,<br /><br />he.. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  Powoli do przodu. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />możesz rozbić na dwa co 0,5 sek.<br />pomiar=pomiar(),<br />a w następnej 0,5 sek. wyświetl pomiar.<br /><br />Odciążysz funkcję wyświetlania z pomiarem. To zresztą Twój pomysł. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />Jeszcze tylko coś z tymi del...w krokach   <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> pokombinować z timerem programowym.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 31 lip 2016, o 11:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-07-31T11:40:23+01:00</updated>
<published>2016-07-31T11:40:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165107#p165107</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165107#p165107"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165107#p165107"><![CDATA[
Witam ponownie.<br /><br />Eureka  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  <img src="https://forum.atnel.pl/images/smilies/icon_idea.gif" alt=":idea:" title="Pomysł" />  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> .<br />Udało się. Cieszę się, jak łysy z grzebienia (nie mam nic do łysych), ale proszę mi wybaczyć. Poczytełem, pomyślałem i chyba zrozumiałem, o co chodzi z tymi<br />przerwaniami. Niestety bez wnikliwego i metodycznego czytania blubuka nie da rady. Po łepkach się nie da.<br /><br />Poniżej, jak zrobiłem. Jeszcze nie przeliczyłem wartości dla rezonatora 8MHz, ale zrobię to i poprawię. Chodziło tylko o pokazanie, jak jest teraz.<br /><br />Przyznam się, że puki co, kroki silnika są z delayami, ale potrzebuję więcej czasu na zmianę wszystkiego od nowa. Na tym etapie silniczek kręci, jak na poczatku, tzn. bez dodania kodu z pomiarem adc i funkcją wyświetlania.<br /><br />Proszę o ocenę sytuacji (analizując kod), co jeszcze powinienem poprawić (pomijam na razie nie użycie przerwań do sterowania krokami silnika). Gdzie tkwi ewentualny babol, czy we właściwym miejscu umieściłem przerwanie i zerowanie flagi. <br /><br />Proszę jeszcze o podpowiedź, jak ewentualnie rozwiązać sytuację, gdzie musiałbym wyświetlać szybkie zmiany na lcd. Tutaj akurat wyświetla się tylko wartość <br />adc, powiedzmy sobie statycznie. Odświeżanie co 05-1s jest ok. Ale jeśli będzie to jakaś animacja tego adc, to jak to zrobić praktycznie, a żeby nie wpływało to<br />na prace cilniczka i jednocześnie wyświetlacz reagował na szybkie zmiany na wyświetlaczu.<br />Szczerze mówiąc nie mam pomysłu na tą chwilę. Nie zamieszczał pełnego kodu do przerwań, bo nie wiem, czy autor nie będzie miał pretensji. Jeśli nie, to zamieszczę.<br /><br />Dziękuję.<br /><br />[syntax=c]sei();/* włączamy globalne przerwania */<br /><br />while(1)<br /><br />{<br /><br /><br />if ( !(PINB &amp; silnik_1_prawo_szybko) )  kroki_prawo_1_szybko(); else silnik_1_stop();<br />if ( !(PINB &amp; silnik_1_lewo_szybko) )  kroki_lewo_1_szybko(); else silnik_1_stop();<br />if ( !(PINB &amp; silnik_1_prawo_wolno) )  kroki_prawo_1_wolno(); else silnik_1_stop();<br />if ( !(PINB &amp; silnik_1_lewo_wolno) )  kroki_lewo_1_wolno(); else silnik_1_stop();<br />if ( !(PIND &amp; silnik_2_prawo_szybko) )  kroki_prawo_2_szybko(); else silnik_2_stop();<br />if ( !(PIND &amp; silnik_2_lewo_szybko) )  kroki_lewo_2_szybko(); else silnik_2_stop();<br />if ( !(PIND &amp; silnik_2_prawo_wolno) )  kroki_prawo_2_wolno(); else silnik_2_stop();<br />if ( !(PIND &amp; silnik_2_lewo_wolno) )  kroki_lewo_2_wolno(); else silnik_2_stop();<br /><br />if(s1_flag) {/* sprawdzanie flagi tyknięć timera programowego co 1 sekundę */<br /><br />lcd_cls();                     // kasowanie LCD //<br />lcd_int(pomiar(7));            // dokonanie pomiaru na PA7 //<br />lcd_locate(1,0);<br />//_delay_ms(200);<br /><br />/* zerujemy flagę aby tylko jeden raz w ciągu sekundy wykonać operacje */<br />s1_flag=0;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 31 lip 2016, o 11:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-07-29T22:25:28+01:00</updated>
<published>2016-07-29T22:25:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165032#p165032</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165032#p165032"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165032#p165032"><![CDATA[
Jak dotrzesz w książce (BB) do rozdziału &quot;Wstęp do systemów czasu rzeczywistego&quot; i zobaczysz co to znaczy &quot;timer programowy&quot; to zrozumiesz i się zakochasz (zresztą jak każdy) w takim rozwiązaniu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 lip 2016, o 22:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Robson]]></name></author>
<updated>2016-07-29T20:55:12+01:00</updated>
<published>2016-07-29T20:55:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165030#p165030</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165030#p165030"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165030#p165030"><![CDATA[
Witam kol. czarekgr, kicajek, mirekk36, Daro69.<br /><br />Dziękuje wam za chęć pomocy i wskazówki, co robić.<br />Tak myślałem, że to będzie porażka.<br />Panie Mirku.Ten delay 100ms, to nie wiem jak go tam wstawiłem i po co , ale to teraz nie ważne. Do samego kręcenia silniczkiem, to te delaye nie<br />były takie beznadziejne. Zmieniając te wartości mogłem wpłynąć na prędkość obrotów.To oczywiste dla wszystkich.Tylko niestety w początkowej<br />wersji mój kod miał sens. Po dodaniu wyświetlania na lcd + adc stał się bezużyteczny i z tym się oczywiście zgodzę. Jasne, że odpalałem ten program<br />i widziałem, co się dzieje. Dlatego założyłem temat.To mnie utwierdziło, że trzeba przerwać projekt i wrócić do książki. Czytałem całą oczywiście, ale przyznam<br />się, że nie wnikliwie każdy rozdział. Ma Pan zdecydowaną większość czytelników z podobnymi problemami i podejściem do czytania BB, jak w moim przypadku.<br />Wiem, bo oglądam wiele poradników i czytam posty. Temat czytania po łepkach się powtarza.<br />Reasumując i żeby nie zabierać cennego czasu proszę tylko o kilka krótkich wskazówek, a ja zabieram się do czytania i jeszcze raz do poradników.<br />Rozumiem, że jak przetrenuję podstawy, uruchomię przerwania, to powinienem je zastosować do lcd i do pomiaru adc ?.<br />I jeszcze jedno. Tylko bez krzyków  <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> .<br />Pamiętam z poradników, że nie należy umieszczać żadnych delay w przerwaniach, ani obsługi lcd, ponieważ tam też istnieją opóźnienia.<br />Czy po prostu samo wyświetlenie np. wyniku pomiaru, to już nie skucha ?.<br />Dziękuje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6641">Robson</a> — 29 lip 2016, o 20:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Daro69]]></name></author>
<updated>2016-07-29T20:18:54+01:00</updated>
<published>2016-07-29T20:18:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165027#p165027</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165027#p165027"/>
<title type="html"><![CDATA[Re: Sterowanie silnikiem krokowym bipolarnym]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15887&amp;p=165027#p165027"><![CDATA[
cześć,<br /><br />Widzę że koledzy mnie wyprzedzili, powoli piszę. <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Niestety nic nie mogę wymyślić z tymi delayami. <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> <br />Najprostszy sposób to chyba zerknąć na rozwiązanie w kodzie z płyty z BB: silnik_bipolarny, silnik_unipolarny.<br /><br />Tam ładnie widać ustawienia przerwań i co się z nimi dzieje, oraz wystawianie flag i używanie ich do zmiany kierunku.<br /><br />Tak samo można wyświetlać na lcd, oraz robić pomiar na adc np. co sekundę bez delay.<br />poza tym tego del..100, możesz usunąć.<br />Ale to nie wiele da.  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11549">Daro69</a> — 29 lip 2016, o 20:18</p><hr />
]]></content>
</entry>
</feed>