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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-05-27T22:06:26+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1110&amp;mode</id>
<entry>
<author><name><![CDATA[wasu]]></name></author>
<updated>2012-05-27T22:06:26+01:00</updated>
<published>2012-05-27T22:06:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7148#p7148</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7148#p7148"/>
<title type="html"><![CDATA[Re: problem z przerwaniem INT0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7148#p7148"><![CDATA[
nie podłączyłem wyjscia z RTC do INT0, hihi<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=260">wasu</a> — 27 maja 2012, o 22:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kubusek32]]></name></author>
<updated>2012-05-27T22:03:58+01:00</updated>
<published>2012-05-27T22:03:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7147#p7147</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7147#p7147"/>
<title type="html"><![CDATA[Re: problem z przerwaniem INT0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7147#p7147"><![CDATA[
Podziel się informacją. Do tego służy forum. Przypuszczam, że nie zrobiłeś nowego projektu tylko zmieniałeś jakiś inny dlatego INT0 miał 7. Odczytywałeś nie tą bibliotekę co trzeba. Tak mi się przynajmniej wydaje <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=283">kubusek32</a> — 27 maja 2012, o 22:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wasu]]></name></author>
<updated>2012-05-27T21:43:54+01:00</updated>
<published>2012-05-27T21:43:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7146#p7146</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7146#p7146"/>
<title type="html"><![CDATA[Re: problem z przerwaniem INT0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7146#p7146"><![CDATA[
okej, rozwiazalem problem ale moze nie bede mowil co bylo zle &lt;lol2&gt;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=260">wasu</a> — 27 maja 2012, o 21:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Piotrek_P]]></name></author>
<updated>2012-05-27T21:17:03+01:00</updated>
<published>2012-05-27T21:17:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7145#p7145</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7145#p7145"/>
<title type="html"><![CDATA[Re: problem z przerwaniem INT0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7145#p7145"><![CDATA[
A czy podłączałeś LED bezpośrednio do wyjścia INT zegarka RTC, jak sugerował Mirek <img src="https://forum.atnel.pl/images/smilies/icon_question.gif" alt=":?:" title="Znak zapytania" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=290">Piotrek_P</a> — 27 maja 2012, o 21:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wasu]]></name></author>
<updated>2012-05-27T21:17:56+01:00</updated>
<published>2012-05-27T21:04:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7144#p7144</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7144#p7144"/>
<title type="html"><![CDATA[Re: problem z przerwaniem INT0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7144#p7144"><![CDATA[
Wg mnie przerwanie wogóle się nie wykonuje, sprawdzilem to na osobnym programie :<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2012-05-27<br /> *      Author: wasuzlasu<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br /><br />#define LED_PIN (1&lt;&lt;PC7)<br />#define LED_TOG PORTC ^= LED_PIN<br /><br /><br />int main()<br />{<br /><br />EIMSK |= (1&lt;&lt;INT0);// odblokowanie przerwania<br />EICRA |= (1&lt;&lt;ISC01);// wyzwalanie zboczem opadającym<br />        PORTD |= (1&lt;&lt;PD2);// podciągnięcie pinu INT0 do VCC<br /><br />        DDRC |= LED_PIN;             // pin 7 portu C jako wyjscie<br /><br />         sei();<br /><br />while(1)<br />{<br />//LED_TOG;<br />//_delay_ms(1000);<br />}<br /><br />}<br /><br />ISR( INT0_vect ) {<br /><br />LED_TOG;<br /><br />}[/syntax]<br /><br />Podłączyłem Diodę do  PC7 i jest ciągle zapalona, czyli na wyjsciu PC7 caly czas jest stan niski a powinien się zmieniać co sekundę. Jakiś pomysł co może być przyczyną?<br /><br />edit:<br />w bibliotece iom16.h z ktorej zapewne korzystam <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> znajduje sie cos takiego:<br />[syntax=c]<br />#define GICR    _SFR_IO8(0x3B)<br />#define IVCE    0<br />#define IVSEL   1<br />#define INT2    5<br />#define INT0    6<br />#define INT1    7[/syntax]<br /><br />w nocie do Atmegi znajdziemy że INT0 to LSB czyli 0 a nie 7, INT1 to 1 a nie 7 itd...<br />także wklepałem ręcznie:<br />EIMSK |= (1&lt;&lt;0);<br />ale to nie pomogło także jest pewnie jeszcze inny problem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=260">wasu</a> — 27 maja 2012, o 21:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-05-27T16:28:24+01:00</updated>
<published>2012-05-27T16:28:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7125#p7125</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7125#p7125"/>
<title type="html"><![CDATA[Re: problem z przerwaniem INT0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7125#p7125"><![CDATA[
No konfiguracja przerwania wygląda na poprawną ale co za problem w przerwaniu wstawić zmianę jakiegoś pinu portu na przeciwną za każdym razem i podłączyć do niego diodę LED i sprawdzić czy miga sobie co sekundę i mieć pewność że przerwanie się w ogóle wykonuje ????<br /><br />Bo jeśli się nie wykona czyli dioda nie będzie migać to wtedy wiesz przynajmniej co sprawdzać dalej albo program albo w ogóle połączenie z wyjścia INT układu RTC albo w ogóle podłącz LED'a do tego wyjścia bezpośrednio katodą i zobacz czy miga dioda co sekundę - przecież to wszystko da radę ładnie po kolei sprawdzić taką metodą debugera na jednej diodzie LED <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> — 27 maja 2012, o 16:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wasu]]></name></author>
<updated>2012-05-27T13:53:56+01:00</updated>
<published>2012-05-27T13:53:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7119#p7119</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7119#p7119"/>
<title type="html"><![CDATA[problem z przerwaniem INT0]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1110&amp;p=7119#p7119"><![CDATA[
Witam, realizuje cwiczenia na magistrali i2c. W kodzie ponizej zostalo zaprezentowane wyswietlanie godziny na lcd. Problem jest taki że godzina stoi w miejscu, wiem ze problem tkwi w przerwaniu i nie ustawia zmiennej pomocniczej int0_flag czyli tak jakby to przerwanie wogole sie nie wykonywalo (gdy usuniemy warunek w funkcji wyswitlajacej czas if (int0_flag) godzina sie zmienia).; Nie wiem gdzie popełniłem błąd, myśle ze rejestry do przerwania ustawiłem dobrze (dla Atmegi644P) globlane odblokowanie przerwan sei() tez jest. Gdzie tkwi problem?<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2012-03-12<br /> *      Author: wasuzlasu<br /> */<br />#define PCF8583_ADDR 0xA2<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/hd44780lib.h&quot;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br /><br />// konwersja liczby dziesiętnej na BCD<br />uint8_t dec2bcd(uint8_t dec);<br /><br />// konwersja liczby BCD na dziesiętną<br />uint8_t bcd2dec(uint8_t bcd);<br /><br />//funkcja wyswietlajaca datę/godzinę<br />void  ShowTime(void);<br /><br />volatile uint8_t int0_flag=1;// flaga zmieniana w przerwaniu i sprawdzana w pętli głównej<br /><br />enum {ss=1, mm, hh};<br />uint8_t bufor[4];// rezerwacja bufora 4 bajty<br />uint8_t sekundy, minuty, godziny;<br /><br />int main()<br />{<br /><br /><br />// Przerwanie INT0<br />EIMSK |= (1&lt;&lt;INT0);// odblokowanie przerwania<br />    EICRA |= (1&lt;&lt;ISC01);// wyzwalanie zboczem opadającym<br />PORTD |= (1&lt;&lt;PD2);// podciągnięcie pinu INT0 do VCC<br /><br /><br /><br />i2cSetBitrate(100);<br /><br />lcd_init();<br />//ustawienie czasu<br />bufor[0] = 0;// setne części sekundy<br />bufor[1] = dec2bcd(50);// sekundy<br />bufor[2] = dec2bcd(59);// minuty<br />bufor[3] = dec2bcd(23);// godziny<br />// zapis 4 bajtów z bufora pod adres 0x01 w pamięci RAM naszego RTC<br />TWI_write_buf( PCF8583_ADDR, 0x01, 4, bufor );<br /><br />sei();<br />while(1)<br />{<br />ShowTime();<br />}<br />}<br /><br />// konwersja liczby dziesiętnej na BCD<br />uint8_t dec2bcd(uint8_t dec) {<br />return ((dec / 10)&lt;&lt;4) | (dec % 10);<br />}<br /><br />// konwersja liczby BCD na dziesiętną<br />uint8_t bcd2dec(uint8_t bcd) {<br />    return ((((bcd) &gt;&gt; 4) &amp; 0x0F) * 10) + ((bcd) &amp; 0x0F);<br />}<br /><br />//wyswietlanie czasu<br />void ShowTime(void)<br />{<br />if ( int0_flag )<br />{<br />//odczyt 4 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC<br />TWI_read_buf( PCF8583_ADDR, 0x01, 4, bufor );<br /><br />sekundy = bcd2dec( bufor[ss] );<br />minuty = bcd2dec( bufor[mm] );<br />godziny = bcd2dec( bufor[hh] );<br /><br />// wyświetlenie czasu na LCD<br />lcd_locate(1,0);<br />if( godziny &lt; 10 )<br />lcd_str(&quot;0&quot;);<br />lcd_int(godziny);<br />lcd_str(&quot;:&quot;);<br />if( minuty &lt; 10 )<br />lcd_str(&quot;0&quot;);<br />lcd_int(minuty);<br />lcd_str(&quot;:&quot;);<br />if( sekundy &lt; 10 )<br />lcd_str(&quot;0&quot;);<br />lcd_int(sekundy);<br />int0_flag=0;<br />}<br />}<br /><br />// procedura obsługi przerwania INT 0<br />// procedura obsługi przerwania INT 0<br />ISR( INT0_vect ) {<br />int0_flag = 1;<br />}<br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=260">wasu</a> — 27 maja 2012, o 13:53</p><hr />
]]></content>
</entry>
</feed>