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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-27T00:42:46+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17957&amp;mode</id>
<entry>
<author><name><![CDATA[Spikee]]></name></author>
<updated>2017-03-27T00:42:46+01:00</updated>
<published>2017-03-27T00:42:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17957&amp;p=185701#p185701</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17957&amp;p=185701#p185701"/>
<title type="html"><![CDATA[Re: MCP-23017 i przerwania]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17957&amp;p=185701#p185701"><![CDATA[
Problem rozwiązałem (a właściwie mój kolega Michał - dzięki Michał)<br /><br />Cały układ MCP23017 działa poprawnie z tym przerwaniem przy porównywaniu z rejestrem DEFVAL. Proszę spojrzeć do noty rozdział 1.7.5 rysunek 1.7 strona 25.<br /><br />Cały problem polega na tym, iż konstruktorzy tego układu go tak zaprojektowali, że po wywołaniu przerwania ono &quot;trwa&quot; dopóki trwa stan który je wywołał. Dlatego odczyt GPIO czy INTCAP (zaznaczone na rysunku przerywaną linią) w pierwszym i trzecim przypadku kasuje przerwanie. Inaczej jest w drugim przypadku, gdzie odczyt tych rejestrów przypada na stan niski portu GP2, które to przerwanie wywołało. W takim przypadku przerwanie nie będzie wyzerowane.<br /><br />Ja obsługuję akurat klawisze, więc po ich naciśnięciu nie mam szans odczekać na ich zwolnienie gdy pojawi się przerwanie.<br />Ot cała przyczyna.<br />Pracuję nad rozwiązaniem, ale kiedy już znam przyczynę będzie łatwiej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15674">Spikee</a> — 27 mar 2017, o 00:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Spikee]]></name></author>
<updated>2017-03-24T04:03:08+01:00</updated>
<published>2017-03-24T04:03:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17957&amp;p=185481#p185481</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17957&amp;p=185481#p185481"/>
<title type="html"><![CDATA[MCP-23017 i przerwania]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17957&amp;p=185481#p185481"><![CDATA[
Mam być może banalny problem.<br />Steruję via I2C expanderem MCP-23017.<br />Podłączyłem go do mega 2560. Generalnie komunikację nawiązałem i układ działa, ale jest jedno ale.<br />Kiedy ustawię w rejestrach INTCONn  aby przerwanie było generowane na stan pinu przeciwny (w/g dokumentacji wtedy przerwanie jest generowane na oba zbocza czyli naciśnięcie i puszczenie przycisku) to wszystko jest OK. Przerwanie podłączone do procka jest wymuszane i da się je obsłużyć i wyczyścić aby potem odebrać kolejne. Licznik klikania doszedł do setki więc uznałem że jest OK.<br /><br />Inaczej jest kiedy zmienię INTCONn  aby przerwanie generowało się kiedy pin portu wejściowego przybiera stan przeciwny niż ten określony w rejestrze DEFVALn .<br />Wtedy przerwanie wykonuje się tylko raz, pin INTA czy INTB ustawia się na &quot;0&quot; i niestety trwa tak w nieskończoność, mimo że zgodnie z dokumentacją Odczytuje rejestr GPIOn i/lub INTCAPn co powinno w jednym i drugim przypadku wyzerować przerwanie i przygotować je do następnego użycia. Sprawę rozwiązuje dopiero zapis do rej. OLATn wartości 1 na odpowiednim bicie.<br /><br />Próbuję już drugą noc i nic. Może ktoś ma doświadczenie z tym Expanderem.<br /><br />Oba porty A i B ustawiam na wejścia na które podłączony jest transoptor shmidta z pullup-em.<br />SDA i SCL mają pullup 4,7k reset 1k a INTA i INTB także po 1k.<br /><br />Steruje Mirkową wersją magistrali I2C, a wartości odczytywane z rejestrów są prawidłowe.<br /><br />Proszę o pomoc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15674">Spikee</a> — 24 mar 2017, o 04:03</p><hr />
]]></content>
</entry>
</feed>