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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-10-19T05:42:53+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=21436&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-10-19T05:42:53+01:00</updated>
<published>2018-10-19T05:42:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212777#p212777</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212777#p212777"/>
<title type="html"><![CDATA[Re: Nie dziala obsluga INT0 na Atmega328P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212777#p212777"><![CDATA[
<div class="quotetitle">szymanskim napisał(a):</div><div class="quotecontent"><br />Odnosnie kasowania to dlaczego tak trzeba kasowac ? Nawet na filmiku <!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=rPxRkYTtvYg" >https://www.youtube.com/watch?v=rPxRkYTtvYg</a><!-- m --> w chwili 1:43:41 ustawiasz tak jak ja (co prawda odpowiednik chyba na Atmega8) czy w atmega328p jest inaczej ?<br /></div><br /><br />dlatego odpisałem tutaj - bo wtedy w tym filmiku też zrobiłem błąd<br /><br />dlaczego?<br /><br />dlatego, że bez operacji OR skasujesz tylko jedną wybraną flagę przerwania a nie kilka naraz, jeśli załóżmy kilka było przypadkowo ustawionych w tym czasie, co może być niepożądanym efektem.<br /><br />Operacja OR jak sobie rozpiszesz bitowo - spowoduje że załóżmy inne przerwanie mające falgę &quot;1&quot; a ty nie chcesz jej jeszcze kasować albo ma to zrobić procedura ISR - to że tak powiem - sama się skasuje własną jedynką<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 paź 2018, o 05:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szymanskim]]></name></author>
<updated>2018-10-16T15:39:48+01:00</updated>
<published>2018-10-16T15:39:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212681#p212681</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212681#p212681"/>
<title type="html"><![CDATA[Re: Nie dziala obsluga INT0 na Atmega328P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212681#p212681"><![CDATA[
Dzieki...<br />kurde jak wkleilem post to wlasnie zauwazylem, ze zapomnialem wlaczyl przerywanie EIMSK |= (1&lt;&lt;INT0);  <br />To jest chyba jak z pokazywaniem kodu innej osobie jak zaczynasz opowiadac jaki masz problem to zauwazasz blad <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Odnosnie kasowania  to dlaczego tak trzeba kasowac ? Nawet na filmiku <!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=rPxRkYTtvYg" >https://www.youtube.com/watch?v=rPxRkYTtvYg</a><!-- m --> w chwili 1:43:41 ustawiasz tak jak ja (co prawda odpowiednik chyba na Atmega8) czy w atmega328p jest inaczej ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17916">szymanskim</a> — 16 paź 2018, o 15:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-10-16T15:31:47+01:00</updated>
<published>2018-10-16T15:31:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212679#p212679</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212679#p212679"/>
<title type="html"><![CDATA[Re: Nie dziala obsluga INT0 na Atmega328P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212679#p212679"><![CDATA[
Po pierwsze w przerwaniu nie trzeba kasować flagi przerwania bo wtedy jest automatycznie kasowana - a w pętli głównej OK - trzeba kasować<br /><br />ale flagę trzeba kasować tak:<br /><br />[syntax=c]EIFR = (1&lt;&lt;INTF0);[/syntax]<br /><br />a nie tak:<br /><br />[syntax=c]EIFR |= (1&lt;&lt;INTF0);[/syntax]<br /><br />a przerwanie żeby poszło to trzeba odblokować jeszcze to przerwanie w rejestrze <strong><span style="color: #0040FF">EIMSK</span></strong><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />[syntax=c]EIMSK |= (1&lt;&lt;INT0);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 paź 2018, o 15:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[szymanskim]]></name></author>
<updated>2018-10-16T15:10:42+01:00</updated>
<published>2018-10-16T15:10:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212677#p212677</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212677#p212677"/>
<title type="html"><![CDATA[Nie dziala obsluga INT0 na Atmega328P]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=21436&amp;p=212677#p212677"><![CDATA[
Cześć<br />Mam problem z obsługą INT0 na Atmega328P. Okrojony kod wyglada tak:<br /><br />[syntax=c]int main( void ) {<br />// Ustawienie przerywania INT0<br />PORTD |=(1&lt;&lt;PD2);  //podciaganie PD2 (jest to wymagane przez wyjscie DS3231)<br />EICRA = (1&lt;&lt; ISC01);    // opadajace zbocze INT0<br /><br />// wlaczenie przerywan<br />sei();<br />while(1) {}<br />}<br /><br />ISR( INT0_vect ) {<br /><br />LED_TOG;<br />// restartuje alarm<br />EIFR |= (1&lt;&lt;INTF0);<br />}[/syntax]<br /><br />Niestety sterowanie nie wchodzi w przerywanie. Jak napisze w programie glownym cos takiego:<br /><br />[syntax=c]while(1) {<br />if( EIFR &amp; (1&lt;&lt;INTF0) ) {<br />LED_TOG;<br />uart_puts(&quot;Wszedl&quot;);<br />EIFR |= (1&lt;&lt;INTF0);<br />}<br />}[/syntax]<br /><br />To przy przejsciu na stan niski (linia INT0 jest podciagnieta do 3.2V)  dostaje na uart komunikat ze wszedl do ifa.<br />Czyli jestem w stanie wykryc ze jest prrzejscie na stan niski ale cos jest nie tak z konfiguracja przerywania. <br />Jakies sugestie?<br /><br />Michal<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17916">szymanskim</a> — 16 paź 2018, o 15:10</p><hr />
]]></content>
</entry>
</feed>