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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-06-14T20:25:01+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=7430&amp;mode</id>
<entry>
<author><name><![CDATA[DamCos]]></name></author>
<updated>2014-06-14T20:25:01+01:00</updated>
<published>2014-06-14T20:25:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84466#p84466</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84466#p84466"/>
<title type="html"><![CDATA[Re: Nie wykrywa zmiennej w przerwaniu INT1_vect]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84466#p84466"><![CDATA[
A ok, łapię <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br />Po dodaniu kondensatorów nic się nie resetuje <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3947">DamCos</a> — 14 cze 2014, o 20:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-06-14T20:16:47+01:00</updated>
<published>2014-06-14T20:16:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84464#p84464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84464#p84464"/>
<title type="html"><![CDATA[Re: Nie wykrywa zmiennej w przerwaniu INT1_vect]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84464#p84464"><![CDATA[
Nie wiem jak ustawić myślałem, że można. Po prostu procesorowi &quot;łatwiej&quot; jest wykryć stan niski jako pin. <br /><br /><br /><div class="quotetitle">DamCos napisał(a):</div><div class="quotecontent"><br />Czy piny przerwań trzeba podciągać?<br /></div><br /><br />Jeśli miałbyś wykrywać stan niski to wtedy musisz podciągnąć, bo wtedy panowałby ciągle stan niski i przerwanie ciągle by się wykonywało, dlatego podciągasz pull upem. Jeśli przerwanie jest ustawione (tak jak teraz masz) na wykrywanie narastającego ( z 0 na 1) to musisz mieć port ustawiony na 0, logiczna jedynka wysterowana z myszki generuje przerwanie.<br /><br />Łapiesz? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />EDIT: popraw post bo zdublowałeś cytat. <br />EDIT2: przeciętna myszka zjada ok 100ma jeśli nie masz wodotrysków w postaci świecącej obudowy, 400ma zostaje na medzie co jest sporym zapasem, nadal Ci resetuje przy odłączeniu? to nie rób tego <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=542">Sheep</a> — 14 cze 2014, o 20:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DamCos]]></name></author>
<updated>2014-06-14T20:23:42+01:00</updated>
<published>2014-06-14T18:22:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84445#p84445</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84445#p84445"/>
<title type="html"><![CDATA[Re: Nie wykrywa zmiennej w przerwaniu INT1_vect]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84445#p84445"><![CDATA[
<div class="quotetitle">Sheep napisał(a):</div><div class="quotecontent"><br />To medzia 16/32 tak?<br />Wygląda na to, że z jakiegoś powodu medzia przy odłączeniu dostaje reset, jak z filtracją zasilania u Ciebie?<br />A tak w ogóle, to po ustawieniu pinu PD3 na wejście ustaw ten pin na 0 instrukcją PORTB&amp;=~(1&lt;&lt;PB3) skoro ustawiłeś  MCUCR na zbocze narastające. Nie możesz ustawić tej myszki by wystawiała 0 i MCUCR na zboczę opadające?<br /><br />Sheep<br /></div><br /><br />Atmega 32.<br /><br />Jak mam ustawić myszkę na zbocze opadające? Raczej się nie da. Czy piny przerwań trzeba podciągać?<br /><br />Dodałem 3x 100 uF i już nie spada napięcie (zasilam z programatora na czas testów).<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br />[quote=&quot;DamCos&quot;][quote=&quot;Sheep&quot;]To medzia 16/32 tak?<br />Wygląda na to, że z jakiegoś powodu medzia przy odłączeniu dostaje reset, jak z filtracją zasilania u Ciebie?<br />A tak w ogóle, to po ustawieniu pinu PD3 na wejście ustaw ten pin na 0 instrukcją PORTB&amp;=~(1&lt;&lt;PB3) skoro ustawiłeś  MCUCR na zbocze narastające. Nie możesz ustawić tej myszki by wystawiała 0 i MCUCR na zboczę opadające?<br /><br />Sheep<br /><br />Atmega 32.<br /><br />Jak mam ustawić myszkę na zbocze opadające? Raczej się nie da. No chyba, że z kostką 74LS04, bo akurat taką mam. Czy piny przerwań trzeba podciągać?<br /><br />Dodałem 3x 100 uF i już nie spada napięcie (zasilam z programatora na czas testów).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3947">DamCos</a> — 14 cze 2014, o 18:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-06-14T18:01:35+01:00</updated>
<published>2014-06-14T18:01:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84443#p84443</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84443#p84443"/>
<title type="html"><![CDATA[Re: Nie wykrywa zmiennej w przerwaniu INT1_vect]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84443#p84443"><![CDATA[
To medzia 16/32 tak?<br />Wygląda na to, że z jakiegoś powodu medzia przy odłączeniu dostaje reset, jak z filtracją zasilania u Ciebie?<br />A tak w ogóle, to po ustawieniu pinu PD3 na wejście ustaw ten pin na 0 instrukcją PORTB&amp;=~(1&lt;&lt;PB3) skoro ustawiłeś  MCUCR na zbocze narastające. Nie możesz ustawić tej myszki by wystawiała 0 i MCUCR na zboczę opadające?<br /><br />Sheep<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 14 cze 2014, o 18:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DamCos]]></name></author>
<updated>2014-06-14T14:41:38+01:00</updated>
<published>2014-06-14T14:41:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84424#p84424</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84424#p84424"/>
<title type="html"><![CDATA[Re: Nie wykrywa zmiennej w przerwaniu INT1_vect]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84424#p84424"><![CDATA[
A więc: podziękuję panu Mirkowi za oświecenie z tą pętlą główną <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Sheep: przerzuciłem te deklaracje &quot;na górę&quot; i wszystko działa.<br /><br />Oto kod programu:<br />[syntax=c]/*<br /> * mian.c<br /> *<br /> *  Created on: 11 cze 2014<br /> *      Author: user<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />//#include &lt;avr/pgmspace.h&gt;<br />//#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;lcd44780.h&quot;<br /><br /><br />extern void lcd_write_data(uint8_t);  //deklaracja funkcji zawartej w pliku lcd44780.c, ale nie ma jej w lcd44780.h<br /><br /><br />//deklaracje zmiennych jako bajtów z myszy<br />volatile uint8_t byte0 = 0;<br />volatile uint8_t byte1 = 0;<br />volatile uint8_t byte2 = 0;<br />volatile uint8_t byte3 = 0;<br /><br />volatile uint16_t vid;<br />volatile uint16_t pid;<br /><br />volatile uint8_t connect_flag = 0; //flaga podłączenia myszki<br /><br />int main(void){<br /><br />DDRB |= (1&lt;&lt;PB0) | (1&lt;&lt;PB1) | (1&lt;&lt;PB2);<br /><br /><br />PORTB &amp;= ~(1&lt;&lt;PB0);<br />PORTB |= (1&lt;&lt;PB1);<br /><br />lcd_init();<br />lcd_str(&quot;Myszka USB&quot;);<br />_delay_ms(3000);<br />lcd_cls();<br /><br /><br />DDRD &amp;= ~(1&lt;&lt;PD3);<br />MCUCR |= (1&lt;&lt;ISC11) | (1&lt;&lt;ISC10);<br /><br />GICR |= (1&lt;&lt;INT1);<br /><br />sei();<br />_delay_ms(2);<br /><br /><br /><br />while(1) {<br /><br />if(!connect_flag){<br /><br />PORTB &amp;= ~(1&lt;&lt;PB0);<br />PORTB |= (1&lt;&lt;PB1);<br /><br />}<br />else if(connect_flag) {<br />PORTB |= (1&lt;&lt;PB0);<br />PORTB &amp;= ~(1&lt;&lt;PB1);<br />}<br />}<br />}<br /><br />ISR( INT1_vect ) {<br /><br />if(connect_flag) lcd_str(&quot;Podlaczono mysz&quot;);<br />_delay_ms(1000);<br />lcd_cls();<br /><br /><br /><br />connect_flag = 1;<br /><br />}[/syntax]<br /><br />Działa to tak:<br /><br />Po podłączeniu zapala się czerwona dioda (PB1) sygnalizująca brak wykrycia myszki. Po wyświetleniu napisu &quot;Myszka USB&quot; program szuka myszki, tzn sprawdza, czy mysz zgłosiła się za pomocą przerwania. Jeśli tak, to zapala się zielona dioda. problem wciąż polega na tym, że po wyjęciu i włożeniu kabla do myszki program cofa się z powrotem na górę, tzn pojawia się napis &quot;Mysz USB&quot; i dioda robi się znów czerwona i tak dalej. <br /><br />Czy wiecie panowie jak to naprawić?<br />Z góry dzięki <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3947">DamCos</a> — 14 cze 2014, o 14:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sheep]]></name></author>
<updated>2014-06-14T11:46:15+01:00</updated>
<published>2014-06-14T11:46:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84407#p84407</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84407#p84407"/>
<title type="html"><![CDATA[Re: Nie wykrywa zmiennej w przerwaniu INT1_vect]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84407#p84407"><![CDATA[
W pierwszym poście w kodzie masz zadeklarowaną zmienną byte0 jako volatile, ale w int main(), musisz stworzyć ją jako globalną przed int main.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=542">Sheep</a> — 14 cze 2014, o 11:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-14T11:13:39+01:00</updated>
<published>2014-06-14T11:13:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84401#p84401</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84401#p84401"/>
<title type="html"><![CDATA[Re: Nie wykrywa zmiennej w przerwaniu INT1_vect]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84401#p84401"><![CDATA[
<div class="quotetitle">DamCos napisał(a):</div><div class="quotecontent"><br />Poprawiony kod:<br /></div><br /><br />Panowie, panowie .... no z taką oszczędnością słów - to ciężko dyskutować .... bo skoro poprawiony kod to działa czy nie działa ? wypadałoby chyba dopisać hmmm ?<br /><br />A jeśli nie działa - to :<br /><br />1. gdzie masz globalne zezwolenie na przerwania sei(); ???<br />2. gdzie masz pan pętlę główną programu ? bez niej (jako PODSTAWOWEGO składnika programu dokładniej funkcji main() .. będziesz miał bardzo dziwne efekty ... a wydaje mi się że już w innym wątku też tobie o tym podpowiadałem <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> — 14 cze 2014, o 11:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DamCos]]></name></author>
<updated>2014-06-14T10:36:01+01:00</updated>
<published>2014-06-14T10:36:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84398#p84398</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84398#p84398"/>
<title type="html"><![CDATA[Re: Nie wykrywa zmiennej w przerwaniu INT1_vect]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84398#p84398"><![CDATA[
Poprawiony kod:<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />//#include &lt;avr/pgmspace.h&gt;<br />//#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;lcd44780.h&quot;<br /><br />extern void lcd_write_data(uint8_t);<br /><br />int main(void){<br /><br />DDRB |= (1&lt;&lt;PB0);<br /><br /><br />MCUCR |= (1&lt;&lt;ISC11) | (1&lt;&lt;ISC10);<br />GICR |= (1&lt;&lt;INT1);<br /><br /><br />//deklaracje zmiennych jako bajtów z myszy<br /><br />volatile uint8_t byte0 = 0;<br />volatile uint8_t byte1 = 0;<br />volatile uint8_t byte2 = 0;<br />volatile uint8_t byte3 = 0;<br /><br />volatile uint16_t vid;<br />volatile uint16_t pid;<br /><br /><br /><br /><br /><br />lcd_init();<br />lcd_str(&quot;Myszka USB&quot;);<br />_delay_ms(1000);<br />lcd_cls();<br /><br /><br /><br /><br />}<br /><br />ISR( INT1_vect ) {<br /><br /><br />PORTB |= (1&lt;&lt;PB0);<br /><br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3947">DamCos</a> — 14 cze 2014, o 10:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Demooon]]></name></author>
<updated>2014-06-14T10:23:37+01:00</updated>
<published>2014-06-14T10:23:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84394#p84394</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84394#p84394"/>
<title type="html"><![CDATA[Re: Nie wykrywa zmiennej w przerwaniu INT1_vect]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84394#p84394"><![CDATA[
A co z rejestrem GICR do obsługi przerwań zewnętrznych ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2997">Demooon</a> — 14 cze 2014, o 10:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[DamCos]]></name></author>
<updated>2014-06-14T10:17:39+01:00</updated>
<published>2014-06-14T10:17:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84393#p84393</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84393#p84393"/>
<title type="html"><![CDATA[Nie wykrywa zmiennej w przerwaniu INT1_vect]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7430&amp;p=84393#p84393"><![CDATA[
Witam, mam taki problem, ponieważ utworzyłem sobie strukturę o nazwie mysz, a w niej zawarłem zmienne takie jak pozycja myszy, przyciski i vid i pid.<br /> <br />Oto kod:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />//#include &lt;avr/pgmspace.h&gt;<br />//#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;lcd44780.h&quot;<br /><br />extern void lcd_write_data(uint8_t);<br /><br />int main(void){<br /><br />MCUCR |= (1&lt;&lt;ISC11) | (1&lt;&lt;ISC10);<br /><br />//deklaracje zmiennych jako bajtów z myszy<br /><br />volatile uint8_t byte0;<br />volatile uint8_t byte1;<br />volatile uint8_t byte2;<br />volatile uint8_t byte3;<br /><br />volatile uint16_t vid;<br />volatile uint16_t pid;<br /><br /><br /><br /><br /><br />lcd_init();<br />lcd_str(&quot;Myszka USB&quot;);<br />lcd_cls();<br /><br />while(1) {<br /><br />lcd_write_data( byte0 );<br />_delay_ms(250);<br />}<br /><br /><br />}<br /><br />ISR( INT1_vect ) {<br /><br />byte0 += 1;<br /><br />}[/syntax]<br /><br />Natomiast mam warninga, że wszystkie zmienne są niewykorzystane, a jest i error - &quot;byte0 undeclared (first use in this function)<br /><br />proszę was o pomoc.<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3947">DamCos</a> — 14 cze 2014, o 10:17</p><hr />
]]></content>
</entry>
</feed>