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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-03-07T15:51:14+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2284&amp;mode</id>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-03-07T15:51:14+01:00</updated>
<published>2013-03-07T15:51:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=30012#p30012</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=30012#p30012"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=30012#p30012"><![CDATA[
Problem uważam za rozwiązany, chcę oświadczyć że błędy które powodowały złe odczyty to:<br />1. brak kondensatora filtrującego 10nF przy układzie ds1621<br />2. programowe I2C na ATtiny2313 + przerwania pochodzące z wyświetlacza 7-segmentowego (przy odczytywaniu danych z DS1621 po I2C działające w tle przerwania od wyświetlacza 7-segmentowego powodowały odbieranie co jakiś czas wartości 255) Udało się to sprawdzić wyłączając przerwania od wyświetlacza na czas odbioru danych lecz w efekcie końcowym powoduje to przerwę w wyświetlaniu cyfr.<br />----------------------------------------------------------------------------------<br />Na razie korzystam z wyświetlacza LCD lecz będę testował układ na ATmedze16 ponieważ będę chciał  wyświetlać to na  7-segmentowym. ATmega16 bo chcę sprawdzić czy na sprzętowym I2C nie będzie żadnych problemów.<br />Układ obecnie działa prawidłowo bez żadnych błędów w konfiguracji: (ATtiny2313 + programowe I2C + USART + LCD)<br />W przyszłości testowa platforma to: (ATmega16 + sprzętowa I2C + USART + wyświetlacz 7-segmentowy) Jak zrobię testy dam znać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />Na końcu chciałem gorąco podziękować kolegom: krafin i swierku za zainteresowanie tematem i pomoc w znalezieniu błędów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 7 mar 2013, o 15:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-14T21:37:23+01:00</updated>
<published>2013-02-14T21:37:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=28137#p28137</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=28137#p28137"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=28137#p28137"><![CDATA[
Spoko, będę bardzo wdzięczny jak sprawdzisz, ja także korzystam z bibliotek Mirka z bluebook'a <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=142">zlata_n</a> — 14 lut 2013, o 21:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-14T20:46:43+01:00</updated>
<published>2013-02-14T20:46:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=28133#p28133</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=28133#p28133"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=28133#p28133"><![CDATA[
Gdybym nie widział kodu to bym powiedział STOS!, ale w tym kodzie nie ma żadnych wielkich tablic, struktur więc to nie może być to <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />Zaraz odpalę zegarek pcf, i wysyłanie do pc godziny, co prawda, na bibliotekach z bluebook ale wydaje mi się po ich nazwach, że to jedno i to samo (aczkolwiek jeśli się mylę to mnie popraw)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 14 lut 2013, o 20:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-14T20:06:49+01:00</updated>
<published>2013-02-14T20:06:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=28130#p28130</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=28130#p28130"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=28130#p28130"><![CDATA[
krafin zrobiłem tak jak mówiłeś i faktycznie przerwania wykonują się poprawnie, nie ma żadnej zawiechy, mało tego przeniosłem czujnik do małego ATtiny2313 gdzie miałem wyświetlacz 7-segmentowy i pięknie pokazuje temperaturę co 1sek a wiadomo, że w tle także działa przerwanie dla wyświetlaczy 7-segmenetowych. Tak więc układ działa poprawnie na sprzętowej jak i programowej szynie I2C. Wstępnie dziękuję za pomoc i zainteresowanie się tym tematem. Pozostał fakt, jeżeli będę chciał w przyszłości przesłać temperaturę RS'em do komputera to przeanalizować dokładnie biblioteki dla USARTU i znaleźć przyczynę. Ewentualne pomysły i propozycje mile widziane.<br /><br />Kolego &quot;swierku&quot; kończe własnie pisać fragment kodu dla pełnej rozdzielczości 0,1 C oczywiście bez floatów. Wszystko niedługo wrzucę wytłumaczone oraz wkleję kod.<br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 14 lut 2013, o 20:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-13T23:48:35+01:00</updated>
<published>2013-02-13T23:48:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27998#p27998</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27998#p27998"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27998#p27998"><![CDATA[
Na początek inicjalizacja (gdzieś w mainie, dla 16MHz, jeśli masz inny to napisz):<br />[syntax=c]<br />TCCR0=(1&lt;&lt;WGM01)|(1&lt;&lt;CS00)|(1&lt;&lt;CS01);<br />TIMSK|=(1&lt;&lt;OCIE0);<br />OCR0=250;<br />sei();<br />[/syntax]<br /><br />do tego deklaracja zmiennej globalnej volatile uint8_t zm_div;<br /><br />Potem procedura obsługi przerwania:<br />[syntax=c]ISR(TIMER0_COMP_vect){<br />static uint8_t cnt, cnt2;<br />zm_div=cnt2/cnt;<br />cnt++;<br />cnt2+=4<br />}[/syntax]<br /><br />Jeśli po tym twi będzie działać zmniejsz OCR0 w inicjalizacji o połowę i jeśli nadal będzie działać to znaczy, że uart sam w sobie przeszkadza ale nie mieć pojęcia czemu  <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 13 lut 2013, o 23:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-13T19:00:02+01:00</updated>
<published>2013-02-13T19:00:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27952#p27952</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27952#p27952"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27952#p27952"><![CDATA[
krafin podasz mi przykładową funkcję z tym timerem(przerwanie z dzieleniem), którą mam wpisać?, bo jak sam napiszę to nie będę miał pewności czy jest dobrze... nie jestem aż tak dobry jeszcze z timerów/liczników. Z góry dzięki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 13 lut 2013, o 19:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[swierku]]></name></author>
<updated>2013-02-13T10:55:07+01:00</updated>
<published>2013-02-13T10:55:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27870#p27870</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27870#p27870"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27870#p27870"><![CDATA[
podłączę się pod temat, wyskrobałem taki kod do odczytu temperatury z tego czujnika<br />[syntax=c]<br />#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 />#include &lt;util/twi.h&gt;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />int main(void)<br />{<br />lcd_init();<br />lcd_cls();<br /><br />//TCCR0 |= (1&lt;&lt;WGM1);//CTC koment-normal<br />//TCCR2 |= (1&lt;&lt;CS22) | (1&lt;&lt;CS21);//256<br />//TCNT2 = 6;//ustawienie poczatkowej wartosci timera (256-250)<br />//TIMSK |= (1&lt;&lt;TOIE2);//ustawienie przerwan od przpelnienia rej overfl<br /><br />i2cSetBitrate(100);<br />sei();<br /><br />//pojedynczy pomiar<br />TWI_start();<br />TWI_write(0x90);<br />TWI_write(0xAC);<br />TWI_write(0x01);<br />TWI_stop();<br />_delay_ms(10);<br /><br />uint8_t tablica[2];<br />uint8_t status,slope,counter;<br />uint16_t temperatura;<br />while(1)<br />{<br />_delay_ms(1000);<br />//rozpaczecie pomiaru<br />TWI_start();<br />TWI_write(0x90);<br />TWI_write(0xEE);<br />TWI_stop();<br /><br />//odczyt pomiaru<br />TWI_start();<br />TWI_write(0x90);<br />TWI_write(0xAA);<br />TWI_start();<br />TWI_write(0x91);<br />tablica[0]=TWI_read(1);<br />tablica[1]=TWI_read(0);<br />TWI_stop();<br /><br />//odczyt statusu<br />TWI_start();<br />TWI_write(0x90);<br />TWI_write(0xAC);<br />TWI_start();<br />TWI_write(0x91);<br />status=TWI_read(0);<br />TWI_stop();<br /><br />//odczyt counter<br />TWI_start();<br />TWI_write(0x90);<br />TWI_write(0xA8);<br />TWI_start();<br />TWI_write(0x91);<br />counter=TWI_read(0);<br />TWI_stop();<br /><br />//odczyt slope<br />TWI_start();<br />TWI_write(0x90);<br />TWI_write(0xA9);<br />TWI_start();<br />TWI_write(0x91);<br />slope=TWI_read(0);<br />TWI_stop();<br /><br />//liczenie temperatury<br />temperatura=tablica[0]-25+(slope-counter)/slope;<br /><br /><br />//lcd<br />lcd_cls();<br />lcd_locate(0,0);<br />lcd_int(tablica[0]);<br />lcd_char('.');<br />lcd_int(tablica[1]);<br />//lcd_locate(1,0);<br />//lcd_int(status);<br /><br />}<br />}<br />[/syntax]<br /><br />odczytuję teraz co sekundę temperaturę z dokładnością do 0,5 stopnia (jeszcze nie sformatowałem wyświetlania tej części ułamkowej, muszę najstarszy bit przesunąć w miejsce najmłodszego, ale nie o to teraz chodzi). Mianowicie odczytuję te dwa rejestry pozwalające wg wzoru obliczać temperaturę z większą dokładnością. Prosiłbym autora o podzielenie się metodą obliczania tego wzoru bo jak na razie oprócz niechcianych floatów nic mi nie przychodzi do głowy:)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=864">swierku</a> — 13 lut 2013, o 10:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-13T00:25:18+01:00</updated>
<published>2013-02-13T00:25:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27827#p27827</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27827#p27827"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27827#p27827"><![CDATA[
Więc to przerwania w czymś przeszkadzają, odpal jakiś timer (ale tak aby dość szybko się wywoływało przerwanie) i w jego przerwaniu zrób jakieś tam dzielenie jednej zmiennej przez drugą - jeśli twi będzie działało poprawnie to nie wina przerwań tylko uartu, inaczej przerwań choć nie mam pojęcia czemu, w końcu twi to osobne peryferie działające niezależnie od reszty programu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 13 lut 2013, o 00:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-12T17:18:52+01:00</updated>
<published>2013-02-12T17:18:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27722#p27722</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27722#p27722"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27722#p27722"><![CDATA[
krafin wyłączyłem całego uarta, przerwania i działa poprawnie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Czyli wniosek z tego taki, że układ już pracował pewnie normalnie odkąd dopisałem twi_stop() tak jak mi podpowiadałeś. Czyli z Twi i DS1621 wszystko OK <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Coś się dzieje jak do programu wchodzi usart ?!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 12 lut 2013, o 17:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-12T00:19:32+01:00</updated>
<published>2013-02-12T00:19:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27580#p27580</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27580#p27580"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27580#p27580"><![CDATA[
No nie to coś baaardzo dziwnego się tam dzieje, może spróbuj jeszcze, zakomentować includ uarta, oraz nie włączać przerwań, tylko mignięcie diody co 1 obieg pętli.<br />Kurcze to musi być coś nie tak, w tych funkcjach twi nie ma żadnej magii, to powinno działać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 12 lut 2013, o 00:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-12T00:07:25+01:00</updated>
<published>2013-02-12T00:07:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27578#p27578</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27578#p27578"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27578#p27578"><![CDATA[
Testuje dalej ten układ bo wierzyć mi się nie chce, i co się okazało jeśli nie wpiszę nic w funkcję uart_puts() to program się zawiesza, musi być &quot;coś&quot; wpisane oraz bezpośrednio po tej funkcji muszę wpisać uart_puts(&quot;\r\n&quot;), bo bez tego TEŻ SIĘ ZAWIESZA ?! <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> <br />O co tu chodzi?, może faktycznie to jest jakaś podpowiedź, ale tak jak wspomniałeś ta funkcje wykonuje się bardzo szybko i poza tym cała reszta wykonuje się na przerwaniach....<br /><br />Próbowałem zamiast tej funkcji dać np. deley'a 500ms i to samo, BŁĄD, więc chyba nie chodzi o opóźnienie...ewidentnie program działa łącznie z funkcją uart_puts(&quot;cos&quot;) i uart_puts(&quot;\r\n&quot;). Może faktycznie potrzeba tutaj jakiś przerwań?!.....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 12 lut 2013, o 00:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-11T22:53:06+01:00</updated>
<published>2013-02-11T22:53:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27568#p27568</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27568#p27568"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27568#p27568"><![CDATA[
Czyli co jeśli pousuwasz te uart_puts() to układ przestaje działać <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /><br /><br />Dziwne, bardzo dziwne <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Dobrze, że działa ale bardzo mnie to dziwi, tym bardziej, że te wysyłanie na uart wykonuje się bardzo szybko, tylko wpisanie do bufora cyklicznego, i reszta sama na przerwaniach już leci w tle.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 11 lut 2013, o 22:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-11T21:28:00+01:00</updated>
<published>2013-02-11T21:28:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27547#p27547</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27547#p27547"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27547#p27547"><![CDATA[
krafin testowałem układ jeszcze w róźnych kombinacjach, dodawałem te liczniki do funkcji, zmieniałem taktowanie procka oraz taktowanie magistrali I2C i nic, zrobiłem jednak pewną małą rzecz i PROSZĘ <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> układ już działa ponad 2,5 h ...<br />Śmiać mi się chce bo to w sumie głupota, mianowicie co zrobiłem:<br />-&gt; pousuwałem wszystkie liczniki z funkcji o których mowa wyżej<br />-&gt; zrezygnowałem z funkcji TWI_read_buf() i wpisałem ją krok po kroku w while()<br />-&gt; pododawałem za każdą funkcją w pętli głównej while() wypisywanie przez USART komunikatu, że dana funkcja została wykonana, w ten sposób chciałem sprawdzić, w którą w ogóle nie chce wejść....I TO WSZYSTKO układ działa...czyli tak jakby potrzebował opóźnienia ? Kombinowałem później z tymi wypisywaniami, żeby trafić może w jakieś konkretne miejsce aby tylko tam dać jakiegoś &quot;deley'a&quot; ale układ działa tylko jak dam wszystkie wypisywania.... Dziwne, może sumarycznie pętla while() potrzebuje jakiegoś czasu aby podjąć kolejną konwersję?<br />Czytałem notę katalogową i nie ma żadnej wzmianki o innym opóźnieniu niż 1s po &quot;START_CONVERT&quot;. Co ty na to ?<br /><br />Poniżej kod mojej obecnej funkcji main():<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &quot;MKUART/mkuart.h&quot;<br /><br /><br />#define LED_PIN_RED (1&lt;&lt;PD6)// definicja pinu do którego podłączona jest dioda<br />#define LED_ON_RED PORTD &amp;= ~LED_PIN_RED// makrodefinicja – załączenie diody<br />#define LED_OFF_RED PORTD |= LED_PIN_RED// makrodefinicja – wyłączenie diody<br />#define LED_TOG_RED PORTD ^= LED_PIN_RED// makrodefinicja – zmiana stanu diody<br /><br /><br />#define  DS1621_W0x90<br />#define  DS1621_R0x91<br /><br />#define START_CONVERT0xEE<br />#define STOP_CONVERT0x22<br />#define READ_TEMP0xAA<br />#define READ_COUNTER0xA8<br />#define READ_SLOPE0xA9<br /><br /><br />int main(void)<br />{<br /><br />DDRD |= LED_PIN_RED;// kierunek pinu dla diody PC6 – wyjściowy<br />USART_Init( __UBRR );// inicjalizacja UART<br />i2cSetBitrate(100);<br />sei();        // włączenie globalnego zezwolenia na przerwania<br /><br />uint8_t LSB, MSB;<br />uint8_t read_temp[2];<br /><br />while(1)<br />{<br />TWI_start();                          // start szyny I2C<br />uart_puts(&quot;wykonało sie TWI_start&quot;);uart_puts(&quot;\r\n&quot;);<br />TWI_write(DS1621_W);  // zapis do adresu urządzenia 0x90<br />uart_puts(&quot;wykonało sie TWI_write&quot;);uart_puts(&quot;\r\n&quot;);<br />TWI_write(START_CONVERT);  // zapis instrukcji 0xEE<br />uart_puts(&quot;wykonało sie START_CONVERT&quot;);uart_puts(&quot;\r\n&quot;);<br />TWI_stop();  // stop szyny I2C<br />uart_puts(&quot;wykonało sie TWI_STOP&quot;);uart_puts(&quot;\r\n&quot;);<br />_delay_ms(1000);  // odczekanie 1s<br />TWI_start();<br />uart_puts(&quot;wykonało sie TWI_start&quot;);uart_puts(&quot;\r\n&quot;);<br />TWI_write(DS1621_W);      // zapis do adresu urządzenia 0x90<br />uart_puts(&quot;wykonało sie TWI_write&quot;);uart_puts(&quot;\r\n&quot;);<br />TWI_write(READ_TEMP);  // zapis instrukcji 0xAA<br />uart_puts(&quot;wykonało sie READ_TEMP&quot;);uart_puts(&quot;\r\n\r\n&quot;);<br /><br /> // #######  funkcja zastępcza TWI_read_buf()<br />TWI_start();               <br />uart_puts(&quot;wykonało sie TWI_start w TWI_read_buf&quot;);uart_puts(&quot;\r\n&quot;);<br />TWI_write(DS1621_R);<br />uart_puts(&quot;wykonało sie TWI_write w TWI_read_buf&quot;);uart_puts(&quot;\r\n&quot;);<br />read_temp[0] = TWI_read(1);<br />uart_puts(&quot;wykonało sie read_temp[0] w TWI_read_buf&quot;);uart_puts(&quot;\r\n&quot;);<br />read_temp[1] = TWI_read(0);<br />uart_puts(&quot;wykonało sie read_temp[1] w TWI_read_buf&quot;);uart_puts(&quot;\r\n&quot;);<br />TWI_stop();<br />uart_puts(&quot;wykonało sie TWI_stop w TWI_read_buf&quot;);uart_puts(&quot;\r\n&quot;);<br /> // #######  koniec funkcji TWI_read_buf()<br /><br />MSB = read_temp[0];<br />LSB = read_temp[1];<br />LED_TOG_RED;<br /><br />uart_puts(&quot;MSB: &quot;);<br />uart_putint(MSB,10);uart_puts(&quot;\r\n&quot;);<br />uart_puts(&quot;LSB: &quot;);<br />uart_putint(LSB,2);uart_puts(&quot;\r\n\r\n&quot;);<br />}<br />}<br /><br />[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 11 lut 2013, o 21:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-11T00:17:24+01:00</updated>
<published>2013-02-11T00:17:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27464#p27464</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27464#p27464"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27464#p27464"><![CDATA[
Kurcze już nie mam pomysłu wygląda, że wszystko powinno być ok.<br /><br />Możesz jeszcze obniżyć częstotliwość, oraz zobaczyć na jakimś innym układzie np. rtc czy transmisja dobrze działa.<br />Jeśli będzie ok. (z rtc) to znaczy coś z termometrem nie tak<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 11 lut 2013, o 00:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-10T19:04:37+01:00</updated>
<published>2013-02-10T19:04:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27415#p27415</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27415#p27415"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27415#p27415"><![CDATA[
Niestety z wielkim żalem stwierdzam, że nadal się zawiesza <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> już mam powoli tego dość... coś wyjątkowo brudzi w tej funkcji TWI_read_buf()<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 10 lut 2013, o 19:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-10T18:19:42+01:00</updated>
<published>2013-02-10T18:19:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27411#p27411</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27411#p27411"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27411#p27411"><![CDATA[
Aaaa coś czuję, że znalazłem winowajcę <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />[syntax=c]uint8_t TWI_read_buf(uint8_t adr, uint8_t len, uint8_t *buf)<br />{<br />        TWI_start();<br />        TWI_write(adr);<br />        while (len--) {<br />                *buf = TWI_read( len ? ACK : NACK ); //zapisywanie pod adres wskazywany przez &quot;buf&quot;<br />                 buf++; //zwiększ adres<br />        }<br />        TWI_stop(); zakończ transmisję<br />        return 1;<br />}[/syntax]<br /><br />Ta pętla w funkcji read_buf nic nie da musi być w podstawowych funkcjach (tj. twi_read(), twi_write() itp.) razem z pętla while w nich.<br />W kodzie brakowało twi_stop(), oraz nie byłem pewien co do wskaźnika buf, dlatego zmieniłem trochę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 10 lut 2013, o 18:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-10T15:32:22+01:00</updated>
<published>2013-02-10T15:32:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27382#p27382</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27382#p27382"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27382#p27382"><![CDATA[
Zrobiłem tak jak mówiłeś i dokładnie pokazało w którym momencie mikrokontroler się zawiesza. Do każdej funkcji, z której korzystam z biblioteki i2c_twi dodałem ten mechanizm sprawdzający, jeżeli wyświetliło 1 to znaczy że funkcja się wykonała oraz poprawnie odliczyło 250 w pętli. Uruchomiłem program i okazało się, że zawiesza się w funkcji TWI_read_buf().<br /><br />Poniżej wklejam kod tej funkcji oraz podfunkcji TWI_read, z której korzystam (mam nadziej, że Mirek nie będzie miał nic przeciwko)<br /><br />[syntax=c]uint8_t TWI_read_buf(uint8_t adr, uint8_t len, uint8_t *buf)<br />{<br />uint8_t cnt=250;<br />TWI_start();<br />TWI_write(adr);<br />while (len--) {<br />*buf++ = TWI_read( len ? ACK : NACK );  // mam wrażenie, że w tym miejscu się zawiesza bo funkcja nie zdąża zwrócić ani 1 ani 0 więc dalej nie idzie<br />if(!(--cnt)) return 0;<br />_delay_us(5);<br />}<br />return 1;<br />}[/syntax]<br /><br />[syntax=c]uint8_t TWI_read(uint8_t ack)<br />{<br />TWCR = (1&lt;&lt;TWINT)|(ack&lt;&lt;TWEA)|(1&lt;&lt;TWEN);<br />while ( !(TWCR &amp; (1&lt;&lt;TWINT)));<br />return TWDR;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 10 lut 2013, o 15:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-09T22:08:59+01:00</updated>
<published>2013-02-09T22:08:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27338#p27338</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27338#p27338"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27338#p27338"><![CDATA[
Dokładnie taki jak podałem ci do funkcji twi_stop(), czyli prosty licznik w dół jeśli się wyzeruje, to wyjdzie z funkcji i zwróci 0 czy jak ci tam wygodniej <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> <br /><br />Możesz tylko jeszcze pokazać kod z twi_read_buf() co tam dokładnie w niej robisz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 9 lut 2013, o 22:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-09T22:00:52+01:00</updated>
<published>2013-02-09T22:00:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27337#p27337</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27337#p27337"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27337#p27337"><![CDATA[
no tak ale nie wiem jaki, podpowiesz?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 9 lut 2013, o 22:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-09T21:36:25+01:00</updated>
<published>2013-02-09T21:36:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27336#p27336</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27336#p27336"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27336#p27336"><![CDATA[
Oooo przepraszam bardzo, zapomniałem się, że tutaj temp. jest inaczej podawana, i liczyłem tak jak dla ds18s20.<br /><br />Kurcze, naprawdę nic mi do głowy nie przychodzi, jedyne to dodaj do każdej funkcji twi, w miejscu pętli while taki prosty mechanizm który zabezpieczy przed zawieszaniem się procka i zobacz co wtedy się stanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 9 lut 2013, o 21:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-09T19:07:40+01:00</updated>
<published>2013-02-09T19:07:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27331#p27331</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27331#p27331"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27331#p27331"><![CDATA[
Co do 1 to tak, wyświetlana była przy start conversion.<br />Co do odczytów wydaje mi się, ze pokazuje dobrze bo wynik <br />MSB: 25<br />LSB: 10000000  <br />to MSB czesc całkowita 25 C i 1 na lewo w LSB mówi o tym, że jest to dokładnosc 0,5 C<br />wiec łacznie 25,5 C<br /><br />Spróbowałem tak jak mówiłes tryb 1shot i pętla wykonuje się też tylko kilka razy..<br /><br />Mam jeszcze jedną sugestie, bo bajty odczytywane są bardzo dziwne, według mnie w domowych warunkach gdzie robie testy zawsze powinno być :<br />MSB 000xxxx i LSB x0000000 a po rs'ie jak widzę czasami pokazują się dziwne wartości bo np.<br />dla MSB są czasami 11111111 co wskazuje &quot;nic&quot; i przy LSB czasami są 11111111 gdzie dla mnie to duży błąd odczytu bo powinno być tylko albo 10000000 lub 00000000 dla LSB.Zauważyłem, że dzieje się tak gdy temp się zmienia np. z 25-&gt;24 i wtedy pokazują się te dziwactwa i się zawiesza....<br /> Nie wiem już naprawdę jak tą temp odczytać....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 9 lut 2013, o 19:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-09T17:26:40+01:00</updated>
<published>2013-02-09T17:26:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27326#p27326</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27326#p27326"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27326#p27326"><![CDATA[
A tą 1 z twi_stop(), to wyświetlałeś w którym miejscu? Przy start conversion? <br />Ale gdzie by to nie było ta pętla powinna się skończyć, kurcze to coś innego blokuje.<br />No i jedna rzecz mi nie pasuje - MSB=25 oraz LSB=128 oznacza temperaturę 3264 C.<br />Więc wygląda na to, że źle czyta temperaturę.<br /><br />Wrzuć tylko jeszcze zaraz przed pętla główna taki kod<br />[syntax=c]twi_start();<br />twi_write(adres_zapisu);<br />twi_write(0xac);<br />twi_write(0x01);<br />twi_stop();[/syntax]<br />i zobacz czy się poprawi.<br /><br />Włączy to tryb 1shot w którym każda konwersję trzeba inicjalizować (czyli tak jak masz teraz) domyślnie jest tryb ciągłej konwersji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 9 lut 2013, o 17:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-09T15:41:39+01:00</updated>
<published>2013-02-09T15:41:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27322#p27322</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27322#p27322"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27322#p27322"><![CDATA[
Zrobiłem tak jak napisałeś, pętla popracowała trochę dużej niż dotychczas ale i tak się w końcu zawiesza.<br />Wyświetlam sobie tak:<br />1                               // 1 z TWI_stop<br />MSB:  25<br />LSB:   10000000<br /><br />wyświetlał cały czas tą 1 aż w końcu się zawiesił, ostatnie wyświetlenie było już tylko:<br />1, bez MSB i LSB, tak jakby nie źle odczytywał bajty....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 9 lut 2013, o 15:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2013-02-09T15:14:31+01:00</updated>
<published>2013-02-09T15:14:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27316#p27316</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27316#p27316"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27316#p27316"><![CDATA[
Właśnie też kiedyś miałem problem z i2c ale z zegarkiem pcf8583, ale nie pamiętam już jak to rozwiązałem, ale wiem, że blokowało się przy twi_stop(), dlatego lekko ją zmodyfikowałem, aby wiedzieć w którym momencie się blokuje (ale sama w sobie nie zablokuje procesora).<br />[syntax=c]uint8_t TWI_stop(void) {<br />uint8_t cnt=250;<br />TWCR = (1&lt;&lt;TWINT)|(1&lt;&lt;TWEN)|(1&lt;&lt;TWSTO);<br />while ( !(TWCR&amp;(1&lt;&lt;TWSTO))){<br />if(!(--cnt)) return 0;<br />_delay_us(5);<br />}<br />return 1;<br />}[/syntax]<br /><br />Jeśli więc zablokuje się w tym miejscu będziemy o tym wiedzieć (wysyłaj wartość zwracaną przez tą funkcje na rs), jeśli wszystko będzie ok zwróci 1 inaczej 0.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 9 lut 2013, o 15:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zlata_n]]></name></author>
<updated>2013-02-09T14:46:09+01:00</updated>
<published>2013-02-09T14:46:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27314#p27314</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27314#p27314"/>
<title type="html"><![CDATA[Re: Problem z odczytem danych [ATmega16 + DS1621]]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2284&amp;p=27314#p27314"><![CDATA[
Zrobiłem tak jak napisałeś, zmienne wrzuciłem do maina i zadeklarowałem jako uint8_t<br />Mam opóźnienie 1s przed odczytem temperatury. Myślałem, że to coś z buforem RSa jednak dla testów sprawdzam program diodą LED. W każdym cyklu while() dioda zmienia swój stan, niestety po kilku odczytach dioda się zawiesza.... nie jest to ciągle ten sam cykl, np. 14, 2, 5. Naprawdę nie wiem co tu jest nie tak. Poniżej przedstawiam poprawiony main():<br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2013-02-09<br /> *       Autor: Jacek Ziębaczewski<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;I2C_TWI/i2c_twi.h&quot;<br />#include &quot;MKUART/mkuart.h&quot;<br /><br /><br />#define LED_PIN_RED (1&lt;&lt;PD6)// definicja pinu do którego podłączona jest dioda<br />#define LED_ON_RED PORTD &amp;= ~LED_PIN_RED// makrodefinicja – załączenie diody<br />#define LED_OFF_RED PORTD |= LED_PIN_RED// makrodefinicja – wyłączenie diody<br />#define LED_TOG_RED PORTD ^= LED_PIN_RED// makrodefinicja – zmiana stanu diody<br /><br /><br />#define  DS1621_W0x90<br />#define  DS1621_R0x91<br /><br />#define START_CONVERT0xEE<br />#define STOP_CONVERT0x22<br />#define READ_TEMP0xAA<br />#define READ_COUNTER0xA8<br />#define READ_SLOPE0xA9<br /><br /><br />int main(void)<br />{<br /><br />DDRD |= LED_PIN_RED;// kierunek pinu dla diody PC6 – wyjściowy<br />USART_Init( __UBRR );// inicjalizacja UART<br />i2cSetBitrate(100);<br />sei();        // włączenie globalnego zezwolenia na przerwania<br /><br />uint8_t LSB, MSB;<br />uint8_t read_temp[2];<br /><br />while(1)<br />{<br /><br />TWI_start();                          // start szyny I2C<br />TWI_write(DS1621_W);  // zapis do adresu urządzenia 0x90<br />TWI_write(START_CONVERT);  // zapis instrukcji 0xEE<br />TWI_stop();  // stop szyny I2C<br />_delay_ms(1000);  // odczekanie 1s<br />TWI_start();<br />TWI_write(DS1621_W);      // zapis do adresu urządzenia 0x90<br />TWI_write(READ_TEMP);  // zapis instrukcji 0xAA<br />TWI_read_buf(DS1621_R,2,read_temp);       // odczytanie do bufora read_temp rejestru READ_TEMP (2 bajty danych)<br /><br />MSB = read_temp[0];<br />LSB = read_temp[1];<br />LED_TOG_RED;<br />//uart_puts(&quot;\r\n&quot;);<br />//uart_puts(&quot;MSB: &quot;);<br />//uart_putint(MSB,10);uart_puts(&quot;\r\n&quot;);<br />//uart_puts(&quot;LSB: &quot;);<br />//uart_putint(LSB,2);uart_puts(&quot;\r\n&quot;);<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=142">zlata_n</a> — 9 lut 2013, o 14:46</p><hr />
]]></content>
</entry>
</feed>