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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2021-07-23T14:44:54+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=23812&amp;mode</id>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-07-23T14:44:54+01:00</updated>
<published>2021-07-23T14:44:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=233048#p233048</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=233048#p233048"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=233048#p233048"><![CDATA[
Przyszedł czas żeby zamknąć temat. Doczytałem, pooglądałem i poeksperymentowałem.<br /><br />W końcu zrobiłem sterownik, który oprócz tego, że jest generatorem CTC, sterownikiem rejestrów to ma jeszcze funkcję testu enkodera. Test można robić zboczem opadającym lub zmianą zbocza.<br /><br /><a href="https://obrazkiforum.atnel.pl/21755/d9fd18a3280b6c49ba702223186ed928.JPG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/21755/d9fd18a3280b6c49ba702223186ed928.JPG" alt="Obrazek" /></a><br /><br />Jeżeli chodzi o osiągi to:<br /><br />Procesor jest taktowany 20 Mhz. Funkcja przerwania zajmuje dokładnie 32 linie poleceń asm. <br /><br />Czas wykonania jednego polecenia to:<br />1 / 20000000 = 0,00000005 czyli 50 ns.<br /><br />Czas wykonania funkcji przerwania to:<br />50 ns * 32 linie = 1600 ns = 1,6 mikrosekundy<br /><br />Maksymalna ilość obsłużonych przerwań (zajętość procesora w tym przypadku = 100%) to: <br />1 / 0,0000016 = 625000 / sekundę.<br /><br />Enkodery, które testuję dają 2048 impulsów na jeden obrót, a podczas normalnej pracy kręcą się  1500 ob/min.<br /><br />Tester pokazuje stan wejścia INT0, liczy impulsy oraz pokazuje ilość impulsów na sekundę. <br />Samo dzielenie licznika przerwań robi TIMER1, który ustawiony jest na przerwanie co sekundę.<br /><br />Funkcje związane z LCD pracują w głównej pętli.<br /><br />Tester działa poprawnie przy częstotliwości znamionowej pracy enkodera tzn przy 25 ob/sek. <br />Robiłem testy zewnętrznym generatorem i dopiero przy 300-400 khz zaczyna &quot;przymulać&quot; LCD. <br />Gdy dam mu ponad 0,5 mhz to przestaje działać menu.<br /><br />Pozdrawiam i dziękuję za rady.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 23 lip 2021, o 14:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-06-10T15:28:25+01:00</updated>
<published>2021-06-10T15:28:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232681#p232681</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232681#p232681"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232681#p232681"><![CDATA[
dzięki Panie Mirku. Na pewno obejrzę<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 10 cze 2021, o 15:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2021-06-10T11:36:48+01:00</updated>
<published>2021-06-10T11:36:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232678#p232678</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232678#p232678"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232678#p232678"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Panie kochany a zaglądałeś chociażby do byle pierwszej noty PDF dowolnego,<br /></div><br />No pewnie, że zaglądałem, ale nie tak gdzie wskazujesz, tam to były zawsze jakieś znaczki, dziwne słowa,rzeczy których nie rozumiałem, więc nie zaglądałem tam  bo to straszyło i jakieś takie dziwne  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />&quot;Panie kochany...&quot;, że tak Cię zacytuję, gdybym ja to wszystko wiedział o czym wielokrotnie mówisz i piszesz to bym Ciebie nie potrzebował, a tak jesteś mi niezbędny  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Dziękuje serdecznie za wyjaśnienie, już wiem trochę więcej<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 10 cze 2021, o 11:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-06-10T08:05:12+01:00</updated>
<published>2021-06-10T08:05:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232675#p232675</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232675#p232675"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232675#p232675"><![CDATA[
<div class="quotetitle">Tom277 napisał(a):</div><div class="quotecontent"><br />Jeszcze tylko gdyby ktoś mógł dodać, skąd mam wiedzieć, że np. &quot;lds&quot; to 2 cykle, a &quot;pop&quot; to już 1 cykl itd?<br /></div><br /><br />Przyjrzyj się temu fragmentowi kodu przecież <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> czy nie zauważasz czym się różnią (nie zawsze ale w 95%) te rozkazy zajmujące 1 cykl od tych zajmujących 2 cykle ?<br /><br />Nie widzisz że po lewej te jednocyklowe zajmują DWA bajty czyli jedno słowo w pamięci FLASH ? A te dwu-cyklowe zajmują DWA SŁOWA ! czyli aż 4 bajty we Flash ?<br /><br />To oczywiście jest spore uproszczenie ale z grubsza tak można przyjąć ... bez zaglądania do noty - no bo pytasz skąd masz wiedzieć <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Panie kochany a zaglądałeś chociażby do byle pierwszej noty PDF dowolnego, podkreślam dowolnego procka AVR ? Toż zawsze pod jej koniec masz opisane kody ASM i ile cykli co zajmuje <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> zawsze masz na końcu<br /><br />&quot;Instruction Set Summary&quot; i tam masz jak na patelni podane ile który rozkaz zajmuje cykli czyli czasu procka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 cze 2021, o 08:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Tom277]]></name></author>
<updated>2021-06-10T07:38:29+01:00</updated>
<published>2021-06-10T07:38:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232674#p232674</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232674#p232674"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232674#p232674"><![CDATA[
Mirek dzięki serdeczne za omówienie kodu przerwania z rozkazami asemblera, bardzo pomocne. Niejednokrotnie ktoś z Was odsyłał mnie do analizy właśnie kodu asemblera jaki tworzy kompilator, ale nic z tego nie mogłem zrozumieć. Po twoim krótkim opisie jest dużo łatwiej. Jeszcze tylko gdyby ktoś mógł dodać, skąd mam wiedzieć, że np. &quot;lds&quot; to 2 cykle, a &quot;pop&quot; to już 1 cykl itd?<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Analizator świetna rzecz <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> zanim się zorientowałem że MK_AVR_Calculator posiada tą funkcjonalność to wcześniej ogarnąłem dla Magic Ledów nop-y analizatorkiem dla wybranych rezonatorków<br /></div><br /><strong>akenes</strong> o czym Ty piszesz? O jaka funkcjonalność Ci chodzi?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=548">Tom277</a> — 10 cze 2021, o 07:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-06-09T21:38:18+01:00</updated>
<published>2021-06-09T21:38:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232673#p232673</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232673#p232673"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232673#p232673"><![CDATA[
No przecież jeśli w ciągu 2us wykona się w całości przerwanie, od razu w kolejnych dwóch i też przez całe dwie us kolejne przerwanie i tak dalej - to gdzie reszta czasu dla pętli głównej ? rozumiesz? W przerwie między przerwanimi procek zdaży ledwie wykonać może po jednym rozkazie ASM z kodu głównego..<br /><br />wiesz co? Obejrzyj ty sobie DOKŁADNIE te dwa poradniki i to koniecznie, to wtedy zrozumiesz już przerwania do końca i co to oznacza zajętość procka w przypadku 8-bitowców, bo tu to wyjaśniam<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 cze 2021, o 21:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-06-09T21:21:05+01:00</updated>
<published>2021-06-09T21:21:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232670#p232670</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232670#p232670"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232670#p232670"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent">Rozumiem, że w trakcie jednej pętli procesor ma mieć możliwość przynajmniej raz skoczyć do wektora/adresu przerwania czyli do funkcji,<br /></div><br />Oj oj - joj - to kolega jeszcze widzę nie rozumie w ogóle jak działają przerwania, ... ale ok mega krótka podpowiedź. Absolutnie nie jest tak, że procek ma możliwość sobie skakania przynajmniej raz do wektora ...<br /><br />Program główny wykonuje się w pętli i nie patrz na czas jego wykonania bo to dla ciebie nie jest tu istotne za bardzo. Natomiast gdy na pinie INTx wystąpi (W DOWOLNYM MOMENCIE) np zbobcze opadające (bo tak jest skonfigurowany INTx) to wtedy NIEZLAEŻNIE od wszystkiego - program główny jest przerywany, i następuje skok do procedury obsługi przerwania, a po jego zakończeniu, wznawiane jest wykonywania kodu programu głównego od momentu gdzie został on przerwany. Więc to nie ma nic wspólnego z jakąś możliwością o której napisałeś.<br /><br /><div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent"><br />Jedna pętla to w tym przypadku 16000000 / 102400 = 156.<br /></div><br />Więc to - jest jakimś kompletnym nieporozumieniem i nie za bardzo nawet rozumiem co tu próbujesz obliczać.<br /><br /><div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent"><br />Gdy wywalę wszystko oprócz timera i przerwań to kod zajmuje 160 linijek tylko, że wtedy nic nigdzie nie zobaczę.<br /></div><br />W ogóle zostaw te rozważania i wywalania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> po co ? o co chodzi ? W programie możesz mieć co chcesz - toż program główny nie ma wpływu na czas wykonywania przerwań, wręcz odwrotnie to PRZERWANIA mają wpływ na jego czas - ale ciebie czas wykonania programu w ogóle tu nie interesuje.<br /><br /><div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent"><br />Gdyby tak &quot;podnieść&quot; kwarc, podzielić wynik na 3 bajty i wysłać go od razu na cały port, a innym prockiem go wyświetlić?? chyba słaby pomysł.<br /></div><br />Większy kwarc to tak ale TYLKO po to żeby ci się ew szybciej przerwanie INTx wykonywało <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> a nie program główny tutaj.<br /><br /><div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent"><br />Nie wiem czy to o ten kawałek kodu chodzi?:<br /></div><br />dokładnie o ten i zobacz teraz:<br /><br /><img src="https://obrazkiforum.atnel.pl/54/aba77f6d55f81448784cda4c1eb59628.png" alt="Obrazek" /><br />Więc ? jak widzisz na czerwono zaznaczyłem ci ile cykli zegara zajmuje każdy z rozkazów ASM tak na szybko bez zaglądania do dokumentacji, i podsumowanie, czyli łącznie  przerwanie zajmuje 32 cykle ... a to oznacza, że jeśli jeden cykl trwa: 1/16000000Hz = 62,5 ns ! Więc teraz 62,5ns * 32cykle = czas wykonania przerwania = 2 us.<br /><br /><br />więc gdybyś przerwanie wyowływał z częstotliwością 500 kHz - to by się program główny troszkę &quot;dławił&quot; że tak powiem bo osiągnąłbyś - można powiedzieć 100% zajętości procka - zakładając do tego, że nie występują inne przerwania. Więc to górna i graniczna częstotliwość dla taktowania 16 Mhz<br /><br /><br /></div><br /><br />Rozumiem, że przerwania to sprzętowy break dla programu i nie ma nic do tego ilość kodu, delaye itp. Rozumiem, 32 cykle to funkcja przerwania i że im krótsza tym lepiej bo wtedy wychodzi mniejsza zajętość procka. Rozumiem też skąd biorą się 62,5 ns na jeden cykl. Nie rozumiem dlaczego te 2 us czyli 500khz to 100% zajętości procka.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 9 cze 2021, o 21:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-06-09T05:27:58+01:00</updated>
<published>2021-06-09T05:27:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232666#p232666</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232666#p232666"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232666#p232666"><![CDATA[
<div class="quotetitle">akenes napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">micky napisał(a):</div><div class="quotecontent">Masz jakikolwiek analizator logiczny? W bardzo łatwy sposób zmierzysz sobie ile czasu co zajmuje w programie<br /></div><br /><br />Analizator świetna rzecz <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> zanim się zorientowałem że MK_AVR_Calculator posiada tą funkcjonalność to wcześniej ogarnąłem dla Magic Ledów nop-y analizatorkiem dla wybranych rezonatorków.</div><br /><br />Też miałem z tym tym trochę zabawy. Nie byłem w stanie ustawić na oko tych czasów. Dopiero jak pożyczyłem oscyloskop to udało się ustawić nopami 800/400 ns i diody zaczęły się słuchać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 9 cze 2021, o 05:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mario17]]></name></author>
<updated>2021-06-08T23:44:21+01:00</updated>
<published>2021-06-08T23:44:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232665#p232665</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232665#p232665"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232665#p232665"><![CDATA[
A w międzyczasie optymalizacji wersji na przerwaniach, wersja z odczytem pinu T1, taktowanie 16Mhz. Pomiar sygnału o częstotliwości 1MHz i więcej, a proc w tym czasie będzie się nudził <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />.  <br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />volatile uint32_t imp_per_second;<br />volatile uint8_t display;<br /><br />int main(void){<br /><br />// T1 input<br />TCCR1B |= (1&lt;&lt;CS12) | (1&lt;&lt;CS11);<br /><br />// interrupt every 10ms<br />TCCR2 |= (1&lt;&lt;WGM21) | (1&lt;&lt;CS22) | (1&lt;&lt;CS21) | (1&lt;&lt;CS20);<br />TIMSK |= (1&lt;&lt;OCIE2);<br />OCR2 = 155;<br /><br />sei();<br /><br />while(1){<br />if(display){ // display every 1s<br />//lcd_display(imp_per_second);<br />display = 0;<br />}<br />}<br />}<br /><br />ISR(TIMER2_COMP_vect){<br />static uint8_t counter = 100;<br />static uint16_t imp;<br />static uint32_t imp_per_10ms_sum;<br /><br />imp = TCNT1;<br />TCNT1 = 0;<br /><br />imp_per_10ms_sum += imp;<br /><br />if(counter) counter--;<br />else{<br />imp_per_second = imp_per_10ms_sum;<br />imp_per_10ms_sum = 0;<br />counter = 100;<br />display = 1;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3695">Mario17</a> — 8 cze 2021, o 23:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-06-08T22:29:11+01:00</updated>
<published>2021-06-08T22:29:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232664#p232664</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232664#p232664"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232664#p232664"><![CDATA[
<div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent"><br />Rozumiem, że w trakcie jednej pętli procesor ma mieć możliwość przynajmniej raz skoczyć do wektora/adresu przerwania czyli do funkcji,<br /></div><br />Oj oj - joj - to kolega jeszcze widzę nie rozumie w ogóle jak działają przerwania, ... ale ok mega krótka podpowiedź. Absolutnie nie jest tak, że procek ma możliwość sobie skakania przynajmniej raz do wektora ...<br /><br />Program główny wykonuje się w pętli i nie patrz na czas jego wykonania bo to dla ciebie nie jest tu istotne za bardzo. Natomiast gdy na pinie INTx wystąpi (W DOWOLNYM MOMENCIE) np zbobcze opadające (bo tak jest skonfigurowany INTx) to wtedy NIEZLAEŻNIE od wszystkiego - program główny jest przerywany, i następuje skok do procedury obsługi przerwania, a po jego zakończeniu, wznawiane jest wykonywania kodu programu głównego od momentu gdzie został on przerwany. Więc to nie ma nic wspólnego z jakąś możliwością o której napisałeś.<br /><br /><div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent"><br />Jedna pętla to w tym przypadku 16000000 / 102400 = 156.<br /></div><br />Więc to - jest jakimś kompletnym nieporozumieniem i nie za bardzo nawet rozumiem co tu próbujesz obliczać.<br /><br /><div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent"><br />Gdy wywalę wszystko oprócz timera i przerwań to kod zajmuje 160 linijek tylko, że wtedy nic nigdzie nie zobaczę.<br /></div><br />W ogóle zostaw te rozważania i wywalania <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> po co ? o co chodzi ? W programie możesz mieć co chcesz - toż program główny nie ma wpływu na czas wykonywania przerwań, wręcz odwrotnie to PRZERWANIA mają wpływ na jego czas - ale ciebie czas wykonania programu w ogóle tu nie interesuje.<br /><br /><div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent"><br />Gdyby tak &quot;podnieść&quot; kwarc, podzielić wynik na 3 bajty i wysłać go od razu na cały port, a innym prockiem go wyświetlić?? chyba słaby pomysł.<br /></div><br />Większy kwarc to tak ale TYLKO po to żeby ci się ew szybciej przerwanie INTx wykonywało <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> a nie program główny tutaj.<br /><br /><div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent"><br />Nie wiem czy to o ten kawałek kodu chodzi?:<br /></div><br />dokładnie o ten i zobacz teraz:<br /><br /><img src="https://obrazkiforum.atnel.pl/54/aba77f6d55f81448784cda4c1eb59628.png" alt="Obrazek" /><br />Więc ? jak widzisz na czerwono zaznaczyłem ci ile cykli zegara zajmuje każdy z rozkazów ASM tak na szybko bez zaglądania do dokumentacji, i podsumowanie, czyli łącznie  przerwanie zajmuje 32 cykle ... a to oznacza, że jeśli jeden cykl trwa: 1/16000000Hz = 62,5 ns ! Więc teraz 62,5ns * 32cykle = czas wykonania przerwania = 2 us.<br /><br />2 us to 500 kHz<br /><br />więc gdybyś przerwanie wyowływał z częstotliwością 500 kHz - to by się program główny troszkę &quot;dławił&quot; że tak powiem bo osiągnąłbyś - można powiedzieć 100% zajętości procka - zakładając do tego, że nie występują inne przerwania. Więc to górna i graniczna częstotliwość dla taktowania 16 Mhz<br /><br />A dla 20 MHz ? 1 cykl - 50ns, więc 32 cykle zajmą 1,6us zatem zwiększa się panie maksymalna częstotliwość to już ok 625 kHz<br /><br />-------------------------------<br /><br />krótko mówiąc przy kwarcu 16 MHz możesz sobie przy takim kodzie przerwania pozwolić bezpiecznie na ok - powiedzmy 450 kHz zaś przy kwarcu 20 Mhz na ok 570 kHz<br /><br />To przy założeniu, że albo nie używasz innych przerwań, np od timera albo jeśli z nich korzystasz to z argumentem NO_ISR, żeby mogły być przerywane przez INTx<br /><br />albo w ogóle zamiast przerwań timera - tylko odczytujesz sobie jego rejestr żeby zliczyć czas 1s. Oczywiście w tym wypadku ta sekunda z uwagi na konieczność też zastosowania jakiejś zmiennej - licznika, być może się troszkę rozjedzie i nie będzie to równo 1.00000000000000000000000 sekundy ale np 1.00002 sekundy.<br /><br />Ale w tym wypadku można to sobie też skorygować programowo - a szczególnie jak już zrozumiesz jak działają przerwania i weźmiesz w rękę analizator stanów logicznych jak pisze wyżej kolega i sobie w mega prosty sposób określisz ile tak w rzeczywistości trwa u ciebie przerwanie. <br /><br />Obejrzyj sobie koniecznie np ten poradnik:<br /><br /><div style="width: 583px; height: 471px; margin: 0 auto; padding-left: 26px; padding-top: 48px; background: url('https://www.atnel.pl/download/atnel_tv.png') no-repeat;"> <strong>iframe</strong> </div><br /><br />dopiero wtedy zobaczysz co to daje i JAK BARDZO takie narzędzie jest potrzebne gdy bawimy się prockami a szczególnie że można jego najprostszą wersję kupić na allegro za ok 30-40zł<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 8 cze 2021, o 22:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[akenes]]></name></author>
<updated>2021-06-08T22:10:43+01:00</updated>
<published>2021-06-08T22:10:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232663#p232663</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232663#p232663"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232663#p232663"><![CDATA[
<div class="quotetitle">micky napisał(a):</div><div class="quotecontent"><br />Masz jakikolwiek analizator logiczny? W bardzo łatwy sposób zmierzysz sobie ile czasu co zajmuje w programie<br /></div><br /><br />Analizator świetna rzecz <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> zanim się zorientowałem że MK_AVR_Calculator posiada tą funkcjonalność to wcześniej ogarnąłem dla Magic Ledów nop-y analizatorkiem dla wybranych rezonatorków.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17388">akenes</a> — 8 cze 2021, o 22:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-06-08T18:33:02+01:00</updated>
<published>2021-06-08T18:33:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232659#p232659</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232659#p232659"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232659#p232659"><![CDATA[
<div class="quotetitle">micky napisał(a):</div><div class="quotecontent"><br />Masz jakikolwiek analizator logiczny? W bardzo łatwy sposób zmierzysz sobie ile czasu co zajmuje w programie<br /></div><br /><br />Przymierzam się do zrobienia ale póki co zbieram informacje na ten temat. Mam oscyloskop. Jak przyjdzie obudowa za kilka dni i poskładam to wszystko to zaczną się eksperymenty.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 8 cze 2021, o 18:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2021-06-08T16:03:51+01:00</updated>
<published>2021-06-08T16:03:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232658#p232658</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232658#p232658"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232658#p232658"><![CDATA[
Masz jakikolwiek analizator logiczny? W bardzo łatwy sposób zmierzysz sobie ile czasu co zajmuje w programie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 8 cze 2021, o 16:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-06-08T14:35:03+01:00</updated>
<published>2021-06-08T14:35:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232657#p232657</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232657#p232657"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232657#p232657"><![CDATA[
Nie mam na razie kwarcu 20 MHz to będę działał na 16 MHz. <br />Rozumiem, że w trakcie jednej pętli procesor ma mieć możliwość przynajmniej raz skoczyć do wektora/adresu przerwania czyli do funkcji, która inkrementuje mi zmienną i ją jeszcze wykonać.<br />Jedna pętla to w tym przypadku 16000000 / 102400 = 156. <br />W tej chwili cały kod z obsługą przerwania, lcd zajmuje mi 1200 linijek. <br />Gdy wywalę wszystko oprócz timera i przerwań to kod zajmuje 160 linijek tylko, że wtedy nic nigdzie nie zobaczę.<br />Gdyby tak &quot;podnieść&quot; kwarc, podzielić wynik na 3 bajty i wysłać go od razu na cały port, a innym prockiem go wyświetlić?? chyba słaby pomysł.<br />Nie wiem czy to o ten kawałek kodu chodzi?:<br /><br />[syntax=asm]000001ee &lt;__vector_1&gt;:<br /> 1ee:1f 92       pushr1<br /> 1f0:0f 92       pushr0<br /> 1f2:0f b6       inr0, 0x3f; 63<br /> 1f4:0f 92       pushr0<br /> 1f6:11 24       eorr1, r1<br /> 1f8:8f 93       pushr24<br /> 1fa:9f 93       pushr25<br /> 1fc:80 91 71 00 ldsr24, 0x0071<br /> 200:90 91 72 00 ldsr25, 0x0072<br /> 204:01 96       adiwr24, 0x01; 1<br /> 206:90 93 72 00 sts0x0072, r25<br /> 20a:80 93 71 00 sts0x0071, r24<br /> 20e:80 91 7d 00 ldsr24, 0x007D<br /> 212:90 91 7e 00 ldsr25, 0x007E<br /> 216:01 96       adiwr24, 0x01; 1<br /> 218:90 93 7e 00 sts0x007E, r25<br /> 21c:80 93 7d 00 sts0x007D, r24<br /> 220:9f 91       popr25<br /> 222:8f 91       popr24<br /> 224:0f 90       popr0<br /> 226:0f be       out0x3f, r0; 63<br /> 228:0f 90       popr0<br /> 22a:1f 90       popr1<br /> 22c:18 95       reti[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 8 cze 2021, o 14:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-06-07T22:51:58+01:00</updated>
<published>2021-06-07T22:51:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232652#p232652</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232652#p232652"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232652#p232652"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Spróbuję to sprawdzić.<br /></div><br />Dokładnie - obejrzyj tamten poradnik i zajrzyj do swojego przerwania, wklej ten fragment w ASM to poanalizujemy <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> — 7 cze 2021, o 22:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-06-07T21:38:08+01:00</updated>
<published>2021-06-07T21:38:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232651#p232651</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232651#p232651"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232651#p232651"><![CDATA[
Nie znam się na C a co dopiero na ASM ale rozumiem o co chodzi. Mówił Pan o tym przy okazji Magic Led. <br />Spróbuję to sprawdzić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 7 cze 2021, o 21:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-06-07T20:52:46+01:00</updated>
<published>2021-06-07T20:52:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232650#p232650</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232650#p232650"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232650#p232650"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />ISR (INT0_vect) //+ ISR INT1 do drugiego kanału enkodera<br />{<br />encoder_licznik ++;<br />}<br /></div><br />A to ok - to sprawdź teraz z ciekawości w pliku *.lss po kompilacji ile komend ASM użytych jest w tym przerwaniu a dalej to już będzie łatwo policzyć ile taktów zegara schodzi na przerwanie. Musisz tylko sprawdzić ile każda z komend ASM zajmuje taktów.<br /><br />Przy okazji, daj sobie kwarc 20MHz zamiast 16MHz żeby na maxa wykorzystać możliwości procka w przerwaniu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 cze 2021, o 20:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-06-07T20:45:45+01:00</updated>
<published>2021-06-07T20:45:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232649#p232649</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232649#p232649"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232649#p232649"><![CDATA[
Ależ skąd...…..<br /><br />Przerwania wyglądają tak:<br />/*<br /> GICR = 0b11000000 ;          //przerwania INT0 i INT1<br /> MCUCR = 0b00001010;   //zbocze opadające<br /><br />ISR (INT0_vect)                           //+ ISR INT1 do drugiego kanału enkodera<br />{<br />encoder_licznik ++;   <br />}<br />*/<br />do tego mam timer0, który w przerwaniu co 100 ms pobiera mi stan encoder_licznik do LCD i zaraz potem go kasuje.<br />Obsługa LCD jest w odrębnej funkcji w odrębnym pliku .c<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br /><div class="quotetitle">DarkMajster napisał(a):</div><div class="quotecontent"><br />A próbowałeś po prostu wywalić obsługę lcd z przerwania?<br /></div><br /><br />Obsługa LCD jest w pętli głównej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 7 cze 2021, o 20:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-06-07T20:08:21+01:00</updated>
<published>2021-06-07T20:08:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232647#p232647</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232647#p232647"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232647#p232647"><![CDATA[
<div class="quotetitle">LukMeks napisał(a):</div><div class="quotecontent"><br />Nie próbowałem. Spróbuję.<br /></div><br />No nie mów, że próbowałeś do tej pory wyświetlać cokolwiek na LCD bezpośrednio z przerwania jakiegokolwiek, bo jeśli tak - to pamiętaj, że to daje mniej więcej taki efekt, jak włożenie kija w szprychy, podczas gdy jedziesz rowerem. Więc na przyszłość pamiętaj, żeby nigdy tego nie robić. LCD się obsługuje tylko w pętli głównej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 cze 2021, o 20:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-06-07T18:03:29+01:00</updated>
<published>2021-06-07T18:03:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232646#p232646</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232646#p232646"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232646#p232646"><![CDATA[
Rozumiem, że chodzi o takie wyłączenie żeby bez obsługi LCD odczytać wartość z enkodera, a potem włączyć LCD by wyświetlić wynik. Czy np. co 5s wysyłać wynik na LCD, a potem z powrotem przejść do odczytu (zapisu np. do bufora) danych z enkodera.<br />Nie próbowałem. Spróbuję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 7 cze 2021, o 18:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DarkMajster]]></name></author>
<updated>2021-06-06T18:24:38+01:00</updated>
<published>2021-06-06T18:24:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232641#p232641</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232641#p232641"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232641#p232641"><![CDATA[
A próbowałeś po prostu wywalić obsługę lcd z przerwania?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17494">DarkMajster</a> — 6 cze 2021, o 18:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-06-05T20:27:00+01:00</updated>
<published>2021-06-05T20:27:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232630#p232630</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232630#p232630"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232630#p232630"><![CDATA[
<div class="quotetitle">43kuku napisał(a):</div><div class="quotecontent"><br />Jaką częstotliwością taktowałeś procesor?<br /></div><br /><br /><br />16Mhz<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 16 minutach ]</span></strong><br /><br />[quote=&quot;Mario17&quot;]Jeśli nie zależy Ci na informacji o kierunku obrotu enkodera, do zliczania impulsów możesz wykorzystać wejście T1 timera 1. Prescaler timera 1 ustwiasz tak żeby źródłem zegara było źródło zewnętrzne na pinie T1, wtedy impulsy enkodera będą zliczne sprzętowo ..<br /><br />&quot;Brawo Ty&quot;. Zapomniałem, że kwarc nie zawsze musi na tej budowie nadawać wszystkim tępo,  .. a raczej nie wpadłem na to że tak można to zorganizować. <br />0,00000006 x 156 = 10mikrosekund max . Faktycznie mało czasu doliczając obsługę wyświetlacza. <br />Info o kierunku nie jest ważne. <br /><br />Spróbuję to tak ogarnąć jak kolega pisze.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 5 cze 2021, o 20:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mario17]]></name></author>
<updated>2021-06-05T14:28:32+01:00</updated>
<published>2021-06-05T14:28:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232626#p232626</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232626#p232626"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232626#p232626"><![CDATA[
Jeśli nie zależy Ci na informacji o kierunku obrotu enkodera, do zliczania impulsów możesz wykorzystać wejście T1 timera 1. Prescaler timera 1 ustwiasz tak żeby źródłem zegara było źródło zewnętrzne na pinie T1, wtedy impulsy enkodera będą zliczne sprzętowo w rejestrze TCNT1. Dodatokowo musisz skonfigurować timer 0 lub timer 2 tak żeby wywowyłać przerwanie co np 1s i zapisywać rejestr TNCT1 do zmiennej i kasować rejster TNCT1 żeby zaczął zliczać od nowa. Tylko przy przerwaniu co 1s, maksymalna liczba impulsów to 65535 imp/s (timer 16 bitowy). Możesz tą liczbę zwiększyć na dwa sposoby:<br />1) Dodać przerwanie od przepełenienia TCNT1 i zliczać ilość przerwań a potem wyliczyć całkowitą liczbę impulsów: 65535 * enc_ovf_counter + TNCT1,<br />2) Zmniejszyć czas próbkowania z 1s do np: 100ms, a potem przeliczać wynik na sekundy.<br />Atemga32 ma tylko jedno wejście T1 więc będziesz mógł mierzyć tylko jeden kanał w danym momencie ale za to będzie sie to odbywać praktycznie tylko sprzętowo.<br /><br />Wykorzystując przerwania INT0, INT1 dla częstotliwości taktowania 16Mhz i 102400 imp/s, będzie tylko 156 cykli zegara na obsługę przerwania i wyświetlenie wyników na LCD, co nie będzie działać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3695">Mario17</a> — 5 cze 2021, o 14:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[43kuku]]></name></author>
<updated>2021-06-05T14:21:43+01:00</updated>
<published>2021-06-05T14:21:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232624#p232624</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232624#p232624"/>
<title type="html"><![CDATA[Re: Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232624#p232624"><![CDATA[
Jaką częstotliwością taktowałeś procesor?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3190">43kuku</a> — 5 cze 2021, o 14:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[LukMeks]]></name></author>
<updated>2021-06-05T12:34:12+01:00</updated>
<published>2021-06-05T12:34:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232621#p232621</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232621#p232621"/>
<title type="html"><![CDATA[Max częstotliwość przerwań INT0 Atmega32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23812&amp;p=232621#p232621"><![CDATA[
Witam<br />Robię tester enkoderów inkrementalnych. Te, które będę sprawdzał dają 4096 impulsów na obrót. Na stole będę je kręcił około 25 obrotów na sekundę. Daje to 102400 impulsów na sekundę. Zrobiłem, układ, który mi to wyświetla na atmedze 32 i lcd2x16. Układ pokazuje poprawnie zmianę(przyrost) impulsów gdy ręcznie powoli kręcę enkoderem natomiast gdy już próbuję trochę szybciej kręcić to tester nie widzi przerwań. Mam podobny układ zrobiony na ESP32 w &quot;androino&quot;, też na przerwaniach i ten układ działa poprawnie tzn widzi ponad 100000 przerwań.<br /><br />Zastanawiam się czy przerwania  INT0 i INT1 dadzą radę to zobaczyć.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21755">LukMeks</a> — 5 cze 2021, o 12:34</p><hr />
]]></content>
</entry>
</feed>