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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-01-05T14:16:48+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=10047&amp;mode</id>
<entry>
<author><name><![CDATA[adam_z9]]></name></author>
<updated>2015-01-05T14:16:48+01:00</updated>
<published>2015-01-05T14:16:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112429#p112429</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112429#p112429"/>
<title type="html"><![CDATA[Re: Bariera podczerwieni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112429#p112429"><![CDATA[
Dzięki za odp.<br />Czy kolega lub ktokolwiek inny mógłby mi wyliczyć jeszcze ile cykli zegara zajmie wykonanie poniższego podprogramu :<br /><br />[syntax=c]OCR2=133-OCR2;<br />wsk--;<br />if (wsk==0) TCCR2&amp;=~(1&lt;&lt;CS20);<br />if ((wsk&amp;127)==0) TCCR2|=(1&lt;&lt;FOC2);<br />if ((wsk&amp;127)==64) TCCR2&amp;=~(1&lt;&lt;FOC2);[/syntax]<br /><br />Zmienna wsk jest typu int. Obiecuję że to już ostatnie pytanie tego typu, w środę będę miał Eclipsa to będę oglądał sobie kod w asemblerze wygenerowany przez kompilator i sam takie rzeczy będę liczył.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7648">adam_z9</a> — 5 sty 2015, o 14:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2015-01-05T02:46:19+01:00</updated>
<published>2015-01-05T02:46:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112378#p112378</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112378#p112378"/>
<title type="html"><![CDATA[Re: Bariera podczerwieni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112378#p112378"><![CDATA[
1. Tak<br />2. Tak<br />3. Nie wiem co masz na myśli pisząc o &quot;rozjeżdżaniu&quot;. Jeżeli chodzi o czasy to wszystko zależy od koncepcji algorytmu, a jeśli o stabilność programu to będzie ok.<br />4. <!-- m --><a class="postlink" href="http://en.wikipedia.org/wiki/RC-5#System_and_Command_Codes" >http://en.wikipedia.org/wiki/RC-5#Syste ... mand_Codes</a><!-- m --><br />5. Kolejne przerwanie zostanie obsłużone praktycznie zaraz po zakończeniu poprzedniego (dokładnie z przesunięciem jednej instrukcji asemblera). W efekcie można będzie odnieść wrażenie, że uC się &quot;dziwnie&quot; zawiesił.<br /><br />Procedury przerwaniowe powinny wykonywać się jak najkrócej, a jeśli nie ma innej możliwości to trzeba zmienić koncepcję albo uC na mocniejszą jednostkę, która jest w stanie wykonać większą część programu w tym samym czasie.<br />Piszę oczywiście bardzo ogólnikowo, bo bardzo wiele rzeczy (tym bardziej podstawowych) da się zrealizować przy użyciu nawet niewielkich częstotliwości taktowania.<br /><br />Jasna sprawa, że np. jeśli przerwanie od przepełnienia licznika generowane by było co 1ms, a w nim chcielibyśmy wysłać jakąś komendę przez dowolny interfejs, i oczekiwać w tym przerwaniu na odpowiedź, wiedząc że przyjdzie ona za 1,5ms, to zawsze będziemy &quot;w plecy&quot; o te 0,5ms i taki program jest z założenia nietrafiony.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 5 sty 2015, o 02:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jaglarz]]></name></author>
<updated>2015-01-05T02:18:20+01:00</updated>
<published>2015-01-05T02:18:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112377#p112377</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112377#p112377"/>
<title type="html"><![CDATA[Re: Bariera podczerwieni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112377#p112377"><![CDATA[
<!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=471">Jaglarz</a> — 5 sty 2015, o 02:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[adam_z9]]></name></author>
<updated>2015-01-05T02:07:49+01:00</updated>
<published>2015-01-05T02:07:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112374#p112374</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112374#p112374"/>
<title type="html"><![CDATA[Bariera podczerwieni]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10047&amp;p=112374#p112374"><![CDATA[
Jako że jestem tutaj nowy, chciałbym Wszystkich serdecznie pozdrowić i się przywitać. <br />Czekam aktualnie na zamówioną książkę i programator ale nie mogłem się już doczekać odpowiednich informacji więc zadaję pytanie od razu tu na forum:<br /><br />Załóżmy że mam taki kod:<br /><br /><span style="color: #FF0000">W związku ze zignorowaniem prośby źle umieszczony kod został usunięty - Zielono-Różowy J.</span><br /><br />Pytania:<br />1. Czy instrukcja : OCR2=(133*wypełnienie)/100; wymusza dzielenie bez reszty ?<br />2. Czy AVR łyknie to : OCR2=133-OCR2; czytałem że OCR2 jest R/W więc moim zdaniem powinien<br />3. Czy taki algorytm z przełączaniem w obsłudze przerwania nie będzie się rozjeżdżać ?<br />4. Teoretycznie pomiędzy bitami ramki nie mam żadnej przerwy, czy tak też jest w RC5 ?<br /><strong>5. Jak podejść do tego tematu jeśli kod zawarty w procedurze obsługi przerwania będzie zbyt długi, na tyle długi że okaże się że zanim obsługa tego przerwania się zakończy przyjdzie to samo następne ? </strong> Rozumiem że musiałbym program pisać w nieco innej koncepcji niż sobie założyłem. Za bardzo jednak nie mogę wymyśleć tej koncepcji.<br />Założenie jest także takie że absolutnie nie chcę (i nie lubię) korzystać z żadnych delay'ów a jedynie z przerwań.<br /><br />Stosuję Atmega8 i chciałbym zrobić barierę podczerwieni do alarmu samochodowego. Nadajnik + odbiornik obsługuje ten sam procek, dodatkowo obsługuje on po I2C (tj. TWI) cyfrowy moduł przyspieszenia ADXL345, tak że każda zmiana przyspieszenia w dowolnej z trzech osi o krytyczną wartość wyzwoli mi alarm.<br /><br />On tam ma trzy liczniki, ale nie wiem czy w obsłudze TWI nie jest któryś z nich wykorzystywany, to przede mną dopiero <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Jeśli jest, mamy do dyspozycji pozostałe dwa. Podejrzewam bowiem, że aby zrobić nadawanie całej ramki, i to nie tylko takiej jak ja chcę (czternaście jedynek) to trzeba angażować nie jednego a dwa liczniki.<br /><br />Teoretycznie możnaby wykorzystać tylko ten jeden licznik, ale ograniczeniem wydaje się być ilość instrukcji w tym przerwaniu które musiałby obsłużyć uC i to nie później niż do momentu w którym przychodzi kolejne przerwanie.<br />Natomiast jak to zrobić profesjonalnie to ja niewiem i stąd ten cały wywód <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> help please.<br /><br />Ja rozumiem również że do takiego czegoś jak alarm może nie jest potrzebne wysyłanie &quot;danych&quot; ale ja już chcę to wiedzieć na przyszłość bo pewnie kiedyś człowiek będzie chciał zrobić coś na zdalne sterowanie.<br /><br />W środę będę miał książkę, eclipsa, toolchainy (może dwa jak dobrze pójdzie) i inne zabawki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Ale z ciekawości nie wytrzymałem już dziś stąd pytania.<br /><br />Pzdr,<br />Adam Zadęcki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7648">adam_z9</a> — 5 sty 2015, o 02:07</p><hr />
]]></content>
</entry>
</feed>