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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=19892&amp;mode</id>
<entry>
<author><name><![CDATA[mikandrzej]]></name></author>
<updated>2018-01-01T22:26:51+01:00</updated>
<published>2018-01-01T22:26:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201348#p201348</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201348#p201348"/>
<title type="html"><![CDATA[Re: FreeRTOS - jak pisać drivery (1wire, HD44780 itp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201348#p201348"><![CDATA[
Dzięki Panowie. Ma to sens, w sumie taki urok tej magistrali, że trzeba ją obsługiwać badając stan pinu co jakiś czas, a nie na przerwanie przy zboczu.<br /><br />Co do pisania obsługi tego na FREERTOS, to faktycznie takie podejście można zastosować, tylko zastanawiam się czy nie lepiej jednak wówczas szukać termometru na I2C, albo inne sprzetowo zaimplementowane rozwiązanie? Czekanie w pętli mnie odrzuca, nie po to chce stosować STM32F7, żeby zajmować jego cenny czas czekaniem tysięcy cykli w pętli... Już wolałbym osobnego STM32F1 dać obok, żeby robił wszystko co związane z 1wire i oddawał to przez i2c <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />W innym wątku poruszę temat obsługi 1wire za pomocą UART, byc może będzie już ktoś miał z tym jakieś doświadczenie:)<br /><br />Pozdrawiam<br /><br />Wysłane z mojego Redmi Note 4 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=431">mikandrzej</a> — 1 sty 2018, o 22:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2018-01-01T20:11:25+01:00</updated>
<published>2018-01-01T20:11:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201345#p201345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201345#p201345"/>
<title type="html"><![CDATA[Re: FreeRTOS - jak pisać drivery (1wire, HD44780 itp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201345#p201345"><![CDATA[
Witam,<br /><br /><div class="quotetitle">mikandrzej napisał(a):</div><div class="quotecontent"><br />No właśnie... Tylko jak? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br /><br />Tworzysz taska np. vYaskPomTemp, nadajesz mu najwyższy priorytet. Opóźnienia rzędu us realizujesz za pomocą dodatkowego timera, po prostu w pętli ( w tym tasku) czekasz na jego wyzerowanie. Pamiętaj tylko o umieszczeniu tego opóźnienia w sekcji krytycznej. Oczywiście, mówię tu o najprostszej i nieoptymalnej implementacji tego 1W. Z praktyki mogę Ci napisać, że opóźnienia dla wygenerowania resetu możesz wygenerować nawet za pomocą vTaskDelay - pod warunkiem, że ustawisz sobie tick dla RTOS na poziomie 0.2-0.5ms. Początkowo zastosowałem tą metodę u siebie i nawet w miarę sensownie to działało.<br />Jeśli chcesz zrobić to bardziej &quot;po ludzku&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" />, to niestety trzeba już trochę bardziej się namęczyć. Ja u siebie mam obecnie maszynę stanów napędzaną przez jeden z timerów w OPM i w przerwaniu od tego timera mam obsługę 1W na poziomie &quot;bitowym&quot;. I tu uwaga - gdybyś chciał tak to zrealizować, to musisz ustawić najwyższy (0) priorytet dla tego przerwania.<br /><br />Pozdrawiam, QuadMan.<br /><br />P.S. Widzę, że kol <strong>dambo</strong> był szybszy, ale zostawię tego posta tak jak jest.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 1 sty 2018, o 20:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mikandrzej]]></name></author>
<updated>2018-01-01T19:50:58+01:00</updated>
<published>2018-01-01T19:50:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201343#p201343</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201343#p201343"/>
<title type="html"><![CDATA[Re: FreeRTOS - jak pisać drivery (1wire, HD44780 itp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201343#p201343"><![CDATA[
<div class="quotetitle">roberto_k_w napisał(a):</div><div class="quotecontent"><br />Ahoj, <br />generalnie to wykorzystuje się funkcje wbudowane w FreeRtos <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> vTaskDelay, vTaskDelayUntil.<br />Jeśli chodzi o implementację FreeRtos na STM32 to mogę polecić Tobie stronę autora ciekawej książki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br /><!-- m --><a class="postlink" href="https://www.carminenoviello.com/2015/06/22/running-freertos-stm32nucleo-free-gcceclipse-toolchain/" >https://www.carminenoviello.com/2015/06 ... toolchain/</a><!-- m --> <br />Wszystkiego dobrego w Nowym Roku 2018, wielu ciekawych pomysłów <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br />Pozdrawiam<br /></div><br /><br />Dzięki za link, przejrzę co tam mają ciekawego <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Niestety nie ma w nim słowa o moim problemie...<br /><br /><div class="quotetitle">dambo napisał(a):</div><div class="quotecontent"><br />vTaskDelay, vTaskDelayUntil - spoko jeśli nie są to jakieś krytyczne rzeczy itp. Jednak w przypadku 1W itp gdzie te czasy w uS są kluczowe trzeba jakoś inaczej podejść - nadać większy priorytet + zrobić ten delay na osobnym timerku z odliczaniem uS. Jeśli chodzi o delaye w LCD, lub bardziej ogólnie o obsługę LCD - to się u mnie dzieje zawsze na najniższym priorytecie i każdy wątek może to przerwać, ale jak pisałem w LCD to na nic nie wpłynie, ale komunikację 1W trzeba inaczej zorganizować.<br /></div><br /><br />No właśnie... Tylko jak? <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=431">mikandrzej</a> — 1 sty 2018, o 19:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[roberto_k_w]]></name></author>
<updated>2018-01-01T15:31:59+01:00</updated>
<published>2018-01-01T15:31:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201333#p201333</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201333#p201333"/>
<title type="html"><![CDATA[Re: FreeRTOS - jak pisać drivery (1wire, HD44780 itp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201333#p201333"><![CDATA[
Ahoj, <br />generalnie to wykorzystuje się funkcje wbudowane w FreeRtos <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> vTaskDelay, vTaskDelayUntil.<br />Jeśli chodzi o implementację FreeRtos na STM32 to mogę polecić Tobie stronę autora ciekawej książki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br /><!-- m --><a class="postlink" href="https://www.carminenoviello.com/2015/06/22/running-freertos-stm32nucleo-free-gcceclipse-toolchain/" >https://www.carminenoviello.com/2015/06 ... toolchain/</a><!-- m --> <br />Wszystkiego dobrego w Nowym Roku 2018, wielu ciekawych pomysłów <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /><br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13729">roberto_k_w</a> — 1 sty 2018, o 15:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mikandrzej]]></name></author>
<updated>2018-01-01T14:07:10+01:00</updated>
<published>2018-01-01T14:07:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201330#p201330</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201330#p201330"/>
<title type="html"><![CDATA[FreeRTOS - jak pisać drivery (1wire, HD44780 itp)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19892&amp;p=201330#p201330"><![CDATA[
Witam Was.<br /><br />Na razie mogę tylko ogólnikowo zapytać, gdyż nie mam pod ręką żadnego kodu.<br /><br />Zacząłem zabawę z systemem operacyjnym jak w tytule (FREERTOS). Pisanie sterowników bazujących na sprzętowych rozwiązaniach (i2c, uart itp) jest generalnie dość proste. Kolejki są do opanowania. Jednak przy próbach na zastawie uruchomieniowym pojawiły się pewne komplikacje. <br /><br />Nie potrafię wprost przepisać kodów z AVR (mirekk36) na ARM (STM32) tak, aby działały na systemie FreeRTOS. Wszystko jest jasne i logiczne do momentu, aż nie natknę się na linijkę w stylu &quot;_delay_us(47)&quot;. Jak takie opóźnienie prawidłowo implementować w systemie operacyjnym? Oczywiście rozumiem, że brzydko wstawić delay, ale przy częstotliwości proca 400MHz czekanie tyłu cykli zegara to marnotrawstwo zasobów.<br /><br />Ma ktoś jakieś pomysły na to?<br /><br />Przy okazji najlepsze życzenia dla forumowiczów na nowy 2018 rok:)<br /><br />Mikołaj<br /><br />Wysłane z mojego Redmi Note 4 przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=431">mikandrzej</a> — 1 sty 2018, o 14:07</p><hr />
]]></content>
</entry>
</feed>