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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-08-28T15:26:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3960&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-28T15:26:13+01:00</updated>
<published>2013-08-28T15:26:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47321#p47321</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47321#p47321"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47321#p47321"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Zastanawiam się jeszcze czemu służy funkcja i2cSetBitrate();<br /></div><br /><br />Żeby to zrozumieć to najpierw (nie ma że boli) trzeba zaglądać do not PDF układów I2C. Szybko zobaczysz i doczytasz że standardowa prędkość na I2C to 100kHz ... ale są scalaki które działają na 400kHz i szybciej, nawet 1MHz<br /><br />więc jak myślisz po co jest void i2cSetBitrate(uint16_t bitrateKHz)?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 sie 2013, o 15:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-28T15:05:55+01:00</updated>
<published>2013-08-28T15:05:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47317#p47317</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47317#p47317"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47317#p47317"><![CDATA[
Po wielu dniach zmagań winny okazał się mikroprocesor. Pożyczyłem od kumpla jego atmege8 i tu już program działał poprwanie....<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br />Zastanawiam się jeszcze czemu służy funkcja i2cSetBitrate();<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 28 sie 2013, o 15:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-26T18:21:40+01:00</updated>
<published>2013-08-26T18:21:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47137#p47137</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47137#p47137"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47137#p47137"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />ale jakoś nie jestem na tę chwilę o tym przekonany.<br /></div><br /><br />Ja też nie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br /><div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Mirku, nie napisałem, że jest w stanie spoczynku<br /></div><br /><br />Wiem wiem ale ja dodałem od siebie - że jeśli np I2C nie jest w procku aktywne i nic się nie dzieje - to nie może być stan niski na tej linii.<br /><br />A z opisu widzę że jak kolega odłączy SCL od nogi procka to ma stan wysoki a jak podłączy to stan niski .... czyli kicha jakby<br /><br />owszem może być jak mówisz - że czeka procek na ACK ... i zwiecha ... ale można to sprawdzić np wyłączając na chwilę komunikację I2C i co się stanie ze stanem na tej linii prawda ? No kolega Jari musi po kolei sprawdzać nie ma innego wyjścia bo widać że coś jest ze sprzętem nieteges<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2013, o 18:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-26T16:49:00+01:00</updated>
<published>2013-08-26T16:49:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47133#p47133</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47133#p47133"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47133#p47133"><![CDATA[
czy możliwe jest by mikroprocesor był uszkodzony lub PCF8583???<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 26 sie 2013, o 16:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-26T16:45:38+01:00</updated>
<published>2013-08-26T16:45:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47132#p47132</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47132#p47132"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47132#p47132"><![CDATA[
<div class="quotetitle">jari17 napisał(a):</div><div class="quotecontent"><br />Wszystko już było wysyłane. patrz wyżej.<br /></div><br /><br />skup się na tym:<br /><br /><div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />3. Na SCL występuje stan niski,<br /></div><br /><br />nie może być stanu niskiego gdy jest stan spoczynkowy na SCL<br /><br />moim zdaniem ewidentnie coś jest nie tak sprzętowo - bo program wygląda ok<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2013, o 16:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-26T16:18:42+01:00</updated>
<published>2013-08-26T16:18:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47131#p47131</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47131#p47131"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47131#p47131"><![CDATA[
Wszystko już było wysyłane. patrz wyżej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 26 sie 2013, o 16:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2013-08-26T16:08:58+01:00</updated>
<published>2013-08-26T16:08:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47129#p47129</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47129#p47129"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47129#p47129"><![CDATA[
Dla pewności zrób Clean projektu z kompiluj jeszcze raz i podeślij wszystko co masz w consoli.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 26 sie 2013, o 16:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-26T15:56:39+01:00</updated>
<published>2013-08-26T15:56:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47128#p47128</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47128#p47128"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47128#p47128"><![CDATA[
Taktowanie jest ustawione poprawnie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 26 sie 2013, o 15:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2013-08-26T15:48:29+01:00</updated>
<published>2013-08-26T15:48:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47127#p47127</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47127#p47127"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47127#p47127"><![CDATA[
A ja jeszcze się upewnię na pewno dobrze ustawiłeś taktowanie w eclipsie? Bo ja miałem taki sam problem jak ty tylko napis start... i nic więcej jak się okazało pomyliłem się z jednym 0 przy wyborze taktowania w eclipse.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 26 sie 2013, o 15:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-26T15:29:34+01:00</updated>
<published>2013-08-26T15:29:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47125#p47125</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47125#p47125"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47125#p47125"><![CDATA[
eprom został skasowany<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;LCD/lcd44780.h&quot;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br /><br />#define PCF8583_ADDR 0xA2 <br /><br />//#define _24C04_ADDR 0xA8<br /><br />// utworzenie typu u08, odpowiednika uint8_t aby kod był bardziej czytelny<br />typedef unsigned char  u08;<br />typedef unsigned short u16;<br /><br /><br /><br />//uint8_t tekst&#91;&#93; = &quot;EEPROM&quot;;<br /><br />//uint8_t bo&#91; sizeof(tekst)+1 &#93;; // bufor pomocniczy na odczyt z EEPROM<br /><br /><br />volatile uint8_t int0_flag=1;// flaga zmieniana w przerwaniu i sprawdzana w pętli głównej<br /><br />// konwersja liczby dziesiętnej na BCD<br />uint8_t dec2bcd(uint8_t dec);<br />// konwersja liczby BCD na dziesiętną<br />uint8_t bcd2dec(uint8_t bcd);<br /><br /><br />// odczyt danych z pamięci EEPROM<br />//void EI2C_read_buf(u08 device, u16 subAddr, u16 len, u08 *buf);<br />// zapis danych do pamięci EEPROM<br />//void EI2C_write_buf(u08 device, u16 subAddr, u16 len, u08 *buf);<br /><br />int main(void) {<br /><br />DDRD|=(1&lt;&lt;PD0);<br /><br />// Przerwanie INT0<br />MCUCR |= (1&lt;&lt;ISC01);// wyzwalanie zboczem opadającym<br />GICR |= (1&lt;&lt;INT0);// odblokowanie przerwania<br />PORTD |= (1&lt;&lt;PD2);// podciągnięcie pinu INT0 do VCC<br /><br /><br />// definiujemy sobie dla polepszenia czytelności programu typ wyliczeniowy<br />// wskazujący nam później na odpowiednie indeksy w tablicy (buforze)<br />enum {ss=1, mm, hh};<br />uint8_t bufor&#91;4&#93;;// rezerwacja bufora 4 bajty<br />uint8_t sekundy, minuty, godziny;<br /><br /><br />lcd_init();<br /><br />i2cSetBitrate(100);<br /><br />sei();<br /><br />lcd_str_P(PSTR(&quot;START...&quot;));<br /><br />// Ustawianie czasu na godzinę: 18:34:27<br /><br />bufor&#91;0&#93; = 0;// setne części sekundy<br />bufor&#91;1&#93; = dec2bcd(14);// sekundy<br />bufor&#91;2&#93; = dec2bcd(34);// minuty<br />bufor&#91;3&#93; = dec2bcd(18);// 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 /><br />// zapis tekstu do pamięci EEPROM od adresu 253, dlatego aby tekst<br />// został zapisany w jednym i drugim banku pamięci<br />//EI2C_write_buf( _24C04_ADDR, 253, sizeof(tekst), tekst );<br /><br /><br /><br />while(1) {<br /><br /><br />if ( int0_flag ) {<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 />PORTD ^=(1&lt;&lt;PD0);<br /><br />sekundy = bcd2dec( bufor&#91;ss&#93; );<br />minuty = bcd2dec( bufor&#91;mm&#93; );<br />godziny = bcd2dec( bufor&#91;hh&#93; );<br /><br />// wyświetlenie czasu na LCD<br />lcd_locate(1,0);<br />if( godziny &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(godziny);<br />lcd_str(&quot;:&quot;);<br />if( minuty &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(minuty);<br />lcd_str(&quot;:&quot;);<br />if( sekundy &lt; 10 ) lcd_str(&quot;0&quot;);<br />lcd_int(sekundy);<br /><br />// odczyt z EEPROM<br />//EI2C_read_buf( _24C04_ADDR, 253, sizeof(tekst), bo );<br /><br />// wyświetlenie napisu z EEPROM na LCD<br />//lcd_locate(0, 9);<br />//lcd_str( (char*)bo );<br /><br />int0_flag=0;<br />}<br /><br />}<br />}<br /><br /><br /><br />// procedura obsługi przerwania INT 0<br />ISR( INT0_vect ) {<br />int0_flag = 1;<br /><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 /><br />// odczyt danych z pamięci EEPROM<br />/*void EI2C_read_buf(u08 device, u16 subAddr, u16 len, u08 *buf) {<br /><br />while (len--) {<br />TWI_start();<br />TWI_write(device | ((subAddr&gt;&gt;8)&lt;&lt;1) );<br />TWI_write(subAddr);<br />TWI_start();<br />TWI_write(device + 1);<br />*buf++ = TWI_read( NACK );<br />TWI_stop();<br />subAddr++;<br />}<br /><br /><br /><br />}*/<br /><br />// zapis danych do pamięci EEPROM<br />/*void EI2C_write_buf(u08 device, u16 subAddr, u16 len, u08 *buf) {<br /><br />while (len--) {<br />TWI_start();<br />// ustawienie 9 bitu adresu pamięci EEPROM w ramach<br />// sprzętowego adresu urządzenia na pozycji bitu 1 (nr.2)<br />TWI_write( device | ((subAddr&gt;&gt;8)&lt;&lt;1) );<br />TWI_write(subAddr);<br /><br />TWI_write(*buf++);<br /><br />TWI_stop();<br />_delay_ms(5); // oczekiwanie na zapis<br />subAddr++;<br />}<br />}*/[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 26 sie 2013, o 15:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-26T11:20:30+01:00</updated>
<published>2013-08-26T11:20:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47113#p47113</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47113#p47113"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47113#p47113"><![CDATA[
Zdecydowanie tak. Już kilka razy sprawdziłem. <br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1173/039d66ee3adaa188f6b62aeefd8c668c.JPG"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1173/039d66ee3adaa188f6b62aeefd8c668c.JPG" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 26 sie 2013, o 11:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-26T11:11:15+01:00</updated>
<published>2013-08-26T11:11:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47112#p47112</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47112#p47112"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47112#p47112"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Napięcie się pojawiło.<br /></div><br /><br />No to teraz sprawdź czy do dobrych pinów procka podłączasz <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> — 26 sie 2013, o 11:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-26T10:52:09+01:00</updated>
<published>2013-08-26T10:52:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47108#p47108</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47108#p47108"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47108#p47108"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />nalezy sprawdzić podłączenie rezystora 4.7k oraz sam scalak, czy nie ma zwarcia tego pinu do GND<br /></div><br /><br />Zwarcia nie ma <br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Odłącz SDA i SCL od procka, a następnie sprawdź, czy nadal nie masz napięcia na SCL.<br /></div><br /><br />Napięcie się pojawiło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 26 sie 2013, o 10:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-26T10:16:26+01:00</updated>
<published>2013-08-26T10:16:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47101#p47101</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47101#p47101"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47101#p47101"><![CDATA[
<div class="quotetitle">jari17 napisał(a):</div><div class="quotecontent"><br />SCL -&gt; 0V, i tu nie wiem czy tak ma być.<br /></div><br /><br />gdy nie działa I2C to musi być tu też stan wysoki - po to są rezystory podciągające 4,7K<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2013, o 10:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-26T09:49:19+01:00</updated>
<published>2013-08-26T09:49:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47098#p47098</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47098#p47098"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47098#p47098"><![CDATA[
Pomiary:<br />A0 -&gt; niecałe 5V, czyli ok<br />SDA -&gt; niecałe 5V, czyli ok<br />VCC -&gt; niecałe 5V , czyli ok<br />GND -&gt; 0V, czyli ok<br />INT -&gt; 0V lub 5V (w zależności od zegara), czyli ok<br />SCL -&gt; 0V, i tu nie wiem czy tak ma być.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 26 sie 2013, o 09:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-26T06:27:56+01:00</updated>
<published>2013-08-26T06:27:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47088#p47088</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47088#p47088"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47088#p47088"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Teraz rozumiesz, co mam na mysli, Mirku?<br /></div><br /><br />Antystatyczny --&gt; ale zobacz co ja napisałem, <br /><br /><div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Zdecydowanie dopuszczalny <strong><span style="color: #0040FF"> wszystko zależy oczywiście od projektu</span></strong><br /></div><br /><br />Dlatego wcale nie masz bujnej wyobraźni bo takich projektów gdzie to będzie przeszkadzało są setki jak nie tysiące tak samo jak są setki/tysiące gdzie nie będzie przeszkadzało. Tylko o to mi chodziło ... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> więc nie mogę się z tobą nie zgodzić. A i bez bujnej wyobraźni można podać jeszcze z 10000000 przypadków gdzie jest konieczne aby funkcje te nie były blokujące w ten sposób <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Uwierz mi to nie jest tak - że ja byłem przekonany że nie ma przypadków w których to może stanowić problem. Proszę bardzo o wiele bardziej banalny przykład. Byle system, który coś tam robi - np wpuszcza pracowników na teren zakładu po wsunięciu karty <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> i rejestruje godziny wejścia/wyjścia <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... więc pracuje tam pewnie RTC na I2c (załóżmy) ... no i padła magistrala I2C - i co ? system ma paść i pracowników nie wpuścić albo wypuścić z tego powodu ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> toż zaraz zamieszki by powstały <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /><br />A wprowadzenie timeout'u w tych procedurach na prawdę nie jest trudne to wręcz bułka z masłem i nawet bez użycia systemu przerwań ... To trzeba mieć na uwadze ... wtedy na prawdę przykłady mogą być jednak bułką z masłem dla każdego. Liczy się czasem najprostszy pomysł, który pokazuje drogę ... (OCZYWIŚCIE to jest droga na piechotę - a można też skorzystać z rozbudowanego systemu sprzętowych statusów TWI .... ale myślę, że najprostsza metoda da po prostu dużo do myślenia i inspirację jak do tego w ogóle podchodzić)<br /><br />żeby nie być gołosłownym proszę bardzo - poniżej funkcja, która np blokuje nam program gdy mamy coś nie tak na magistrali sprzętowej (pokażę tylko jedną i jej przeróbkę - a na podobnej zasadzie można przerobić pozostałe, Ba! takie podejście programistyczne można stosować wszędzie - choć nie zawsze musi to być akurat dokładnie takie - staram się tylko naprowadzić na pewien typ myślenia), oto blogujący kod:<br /><br />[syntax=c]uint8_t TWI_read(uint8_t ack) {<br />TWCR = (1&lt;&lt;TWINT)|(ack&lt;&lt;TWEA)|(1&lt;&lt;TWEN);<br />while ( !(TWCR &amp; (1&lt;&lt;TWINT))); // &lt;--- tu mamy ZONK'a gdy I2C jest zepsute<br />return TWDR;<br />}[/syntax]<br /><br />teraz zastanówmy się jaki jest nasz cel? Załóżmy że funkcja ma zasygnalizować w jakikolwiek sposób, że jest awaria. Można to zrobić na wiele sposobów, jednym z prostszych jest zwracanie rezultatu błędu, można ustawiać jakąś globalną flagę itp itd. My zrobimy to poprzez zwracanie błędu w rezultacie, dzięki czemu łatwo będzie sprawdzić to w nadrzędnej funkcji.<br /><br />[syntax=c]int TWI_read(uint8_t ack) {<br />        uint16_t tmo=0;  // przygotowujemy zmienną timeout'u<br />TWCR = (1&lt;&lt;TWINT)|(ack&lt;&lt;TWEA)|(1&lt;&lt;TWEN);<br />while ( !(TWCR &amp; (1&lt;&lt;TWINT))) {<br />              if( tmo++ &gt; 1000 ) return -1;  // tu opuszczamy funkcję z informacją o błędzie (ZONK'u)<br />        }<br />return TWDR;<br />}[/syntax]<br /><br />oczywiście tą wartość = 1000 dobieramy doświadczalnie albo uzależniamy jeszcze od prędkości I2C (nie ważne na razie). Dzięki czemu później wywołanie takiej funkcji gdzieś w nadrzędnej funkcji można już robić tak <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]int data = TWI_read( 1 );<br />if( data &lt; 0 ) ...... zgłoś błąd magistrali I2C[/syntax]<br /><br />jak mówię - jest to prosty albo nawet mega uproszczony przykład ale nie ma możliwości aby nie działał <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> i to skutecznie<br /><br />REASUMUJĄC - Arek tu nie chodzi o znajdowanie przykładów gdzie to może być ISTOTNE a gdzie NIE - bo jak mówiłem jednych i drugich jest pełno. <br /><br />Np budując zegarek - ot taki zegarek/budzik <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... mi nie chciałoby się rozbudowywać tych funkcji po to tylko aby np dodać jakieś tam miganie diodą czy może wyświetlanie statusu na wyświetlaczu I2C error <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Dlaczego ?<br /><br />tu też jest kilka ważnych powodów hmm może praktycznych. <br /><br />Po pierwsze dlatego, że napracuję się a prędzej urządzenie przeze mnie zbudowane zestarzeje się i NIKT NIGDY tego komunikatu nie zobaczy <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> to jest najbardziej smutne <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /><br />Po drugie nawet jak nie ma obsługi błędów sprzętowych TWI (mówimy tu o tego typu projektach a nie w aucie z twojego przykładu)  i takie urządzenie nie działa - zawiesza się to na prawdę uwierz mi - praktyka (którą sam jak mówisz nabyłeś niedawno) strasznie szybko podpowiada ci co jest uszkodzone .... sam zobacz jaką podpowiedź dałeś - że skoro się zawiesza odczyt to pewnie jest coś nie tak na magistrali I2C <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... widzisz jak to działa? (oczywiście że nie zawsze to musi być powód szczególnie gdy w urządzeniu pracuje więcej modułów i mogą generować one różne problemy - ale jednak uszkodzenie I2C bywają bardzo charakterystyczne w objawach. Np działa sobie cały TV a nie działa tylko regulacja głosu ... serwisant zwykle zaraz sprawdza czy nie padła komunikacja I2C z układem wzmacniacza czy potencjometra pracującego na I2C ... a jak na razie producenci telewizorów nie przygotowują tzw &quot;komputerków&quot; jak w samochodach gzie można się wpiąć i odczytać status błędu. <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Po prostu robi to serwisant <br /><br />No i po trzecie ... jak się ma byle oscyl pod ręką, byle analizator stanów logicznych to wystarczy dotknąć sondą do SCL czy SDA i sprawdzić czy coś tam &quot;biega sobie&quot; (bo podczas normalnej pracy wiemy że &quot;biega&quot;) .... a jak widzimy, że jest głucho no to już znowu wiadomo że mamy sprzętową awarię I2C<br /><br />A zatem - na prawdę wykrycie awarii sprzętowej I2C to można powiedzieć taki pryszcz (oczywiście jak już się nabrało troszkę praktyki) że szkoda gadać .... Niestety nie ma co się dziwić początkującym, że o tym nie wiedzą. Ba! oni mają problem w ogóle z namierzeniem problemu nawet mając własny kod źródłowy - a przecież jak widać wystarczy tu JEDNA DIODA LED, którą wg super prostej procedury wystarczy podłączyć po kolei:<br /><br />1. do nogi RTC<br />2. do pinu procka i migać z przerwania<br />3. do pinu procka i próbować migać po odczycie I2C<br /><br />to TYLKO tyle .... i mamy tak prosty sygnalizator 3 najczęściej spotykanych błędów że szok - nawet bez timeoutów i pokazywania komunikatów dla USERA że &quot;I2C error&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bo czasem nie ma nawet na czym ich pokazać.<br /><br />---------------------------<br /><br />Arek - to aż tyle albo tylko tyle co chciałem tu dopowiedzieć i pokazać jak zwykle różne drogi<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2013, o 06:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-25T22:10:38+01:00</updated>
<published>2013-08-25T22:10:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47078#p47078</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47078#p47078"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47078#p47078"><![CDATA[
<div class="quotetitle">Antystatyczny napisał(a):</div><div class="quotecontent"><br />Oczywiście w mega zaawansowanym sprzęcie, który odgrywa jakąś super ważną rolę taki soft jest niedopuszczalny<br /></div><br /><br />Zdecydowanie dopuszczalny <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> wszystko zależy oczywiście od projektu<br /><br />ale wyobraź sobie, że PODSTAWĄ działania jakiegoś urządzenia jest np RTC albo EEPROM bo mają się w nim zapisywać istotne dane a jak nie to nie ma sensu aby urządzenie działało<br /><br />w takich sytuacjach psu na budę zda się funkcja która co ? przejdzie dalej ? a po co ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />  żeby np wyświetlić błąd ? ... a gdzie? na czym ? jeśli nawet wyświetlacza w urządzeniu nie ma ???<br /><br />wystarczy że np na czas prawidłowego działania urządzenia będzie sobie migać LED a gdy przestanie to wiemy że jest jakaś awaria <br /><br />jak widać rozwiązań może być bez liku<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 sie 2013, o 22:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-25T21:48:30+01:00</updated>
<published>2013-08-25T21:48:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47075#p47075</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47075#p47075"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47075#p47075"><![CDATA[
no to znaczy że masz złe połączenia procka z RTC<br /><br />niestety <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> typowy błąd<br /><br />coś pewnie na stykówce nie tak albo złe rezystory - musisz to po raz kolejny posprawdzać<br /><br />bo jeśli sprzętowo będzie źle to odczyt TWI się zawiesi w tej wersji bibliotek - tak ma być<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />o! Anty mnie uprzedził <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> — 25 sie 2013, o 21:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-25T21:43:15+01:00</updated>
<published>2013-08-25T21:43:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47073#p47073</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47073#p47073"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47073#p47073"><![CDATA[
Niestety tu już nie działa <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> -&gt;odpowiedź dla pana Mirka. zaraz reszte sprawdze<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 25 sie 2013, o 21:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-25T21:36:08+01:00</updated>
<published>2013-08-25T21:36:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47071#p47071</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47071#p47071"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47071#p47071"><![CDATA[
no ok nareszcie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />to teraz - znaczy że RTC tyka, że przerwanie działa więc tą diodą na PD0 spróbuj zamigać pod koniec funkcji<br /><br />TWI_read_buf()<br /><br />a z przerwania ją usuń i zobacz czy będzie migać czy przypadkiem ci się nie zatrzymuje odczyt z RTC<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 sie 2013, o 21:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-25T21:26:14+01:00</updated>
<published>2013-08-25T21:26:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47070#p47070</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47070#p47070"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47070#p47070"><![CDATA[
Już się poprawiam. <br /><br />W sumie w projekcie podłączyłem dwie diody LED.<br /><br />1)Pierwsza jest podłączona do INT - działa poprawnie, miga co sekundę<br /><br />2)Drugą podłączyłem do wolnego pinu. W procedurze obsługi przerwań wstawiłem kod by zmieniała stan na przeciwny. -również działa poprawnie, miga co sekundę. <br /><br />procedury obsługi EEPROMA już usunąłem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 25 sie 2013, o 21:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-25T21:12:00+01:00</updated>
<published>2013-08-25T21:12:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47067#p47067</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47067#p47067"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47067#p47067"><![CDATA[
<div class="quotetitle">jari17 napisał(a):</div><div class="quotecontent"><br />W każdym razie zegarek dalej stoi w miejscu. Samo przerwanie raczej działa bo zgodnie z zaleceniami wykonałem eksperyment z diodą.<br /></div><br /><br />to raczej? czy dobrze ? .... powiedz co szkodzi dodać kilka słów np:<br /><br />Podłączyłem diodę LED i w przerwaniu zmieniam jej stan - miga sobie co sekundę<br /><br />.... więc miga co tą sekundę czy nie miga , panie kolego staraj się współpracować ok ? i odpowiadaj na pytania<br /><br />bo &quot;raczej&quot; to niewiele mówi - wręcz nie wiadomo<br /><br />A jeśli ci PCF nie tyka - to wyżej kolega Krauser podpowiedział ci cenną uwagę<br /><br />ale musisz odpowiadać na pytania bo jak inaczej ci pomóc ?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 2 minutach ]</span></strong><br /><br />aaa no i po co ci te procedury obsługi EEPROMA, wcześniej już pytał cię o nie z kolei kolega Antystatyczny ale też nic nie odpowiedziałeś<br /><br />więc ja już nie wiem o co chodzi ... czy ty jakoś wybiórczo tylko niektóre zdania tu czytasz czy jak ? <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 sie 2013, o 21:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jari17]]></name></author>
<updated>2013-08-25T21:06:08+01:00</updated>
<published>2013-08-25T21:06:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47064#p47064</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47064#p47064"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47064#p47064"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />eeeeeh eeeeeh no tak jeśli w ten sposób będziesz traktował błędy to zapewniam cię - daleko w nauce programowania w C nie zajedziesz<br /></div><br /><br />Panie Mirku być może nieprecyzyjnie się wyraziłem. Kompilacja przeszła. <strong><span style="text-decoration: underline">Na konsoli nie ma błędów</span></strong>. Mimo to eclipse podkreśla. Zdarzało się to juz częściej w innych, poprawnie działających projektach, wiec olałem te podkreślenia. <br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1173/851d119506409a600935cd66965d3635.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1173/851d119506409a600935cd66965d3635.jpg" alt="Obrazek" /></a><br /><br />W każdym razie zegarek dalej stoi w miejscu. Samo przerwanie raczej działa bo zgodnie z zaleceniami wykonałem eksperyment z diodą. Kod C w poprzednim poście. <br /><br />Nie ukrywam ze zależy mi na tym zegarku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1173">jari17</a> — 25 sie 2013, o 21:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-08-25T17:57:15+01:00</updated>
<published>2013-08-25T17:57:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47034#p47034</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47034#p47034"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47034#p47034"><![CDATA[
<div class="quotetitle">jari17 napisał(a):</div><div class="quotecontent"><br />teraz jednak zegar się wyświetla, ale stoi w miejscu <br />więc coś jest jeszcze nie tak.<br /></div><br />Te kwarce mają bardzo cienkie nóżki i może nie styka. Łatwo sprawdzić czy zegar PCF8583 pracuje i nie potrzeba do tego mikrokontrolera. Pomiędzy wyjście INT a +5V wepnij LED szeregowo z rezystorem 1k. I jak jest OK to LED będzie mrugać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 25 sie 2013, o 17:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-08-25T17:18:45+01:00</updated>
<published>2013-08-25T17:18:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47020#p47020</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47020#p47020"/>
<title type="html"><![CDATA[Re: TWI nie działa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3960&amp;p=47020#p47020"><![CDATA[
<div class="quotetitle">jari17 napisał(a):</div><div class="quotecontent"><br />co prawda program się kompiluje, ale podkreśla błędy. Przypuszczam że to mało istotne, ale dla formalności:<br /></div><br /><br />eeeeeh eeeeeh no tak jeśli w ten sposób będziesz traktował błędy to zapewniam cię - daleko w nauce programowania w C nie zajedziesz <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 25 sie 2013, o 17:18</p><hr />
]]></content>
</entry>
</feed>