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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-08-04T21:54:45+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3758&amp;mode</id>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2013-08-04T21:54:45+01:00</updated>
<published>2013-08-04T21:54:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44427#p44427</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44427#p44427"/>
<title type="html"><![CDATA[Re: Problem z RTC na ATB GLS]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44427#p44427"><![CDATA[
Ale chodzi ci o odnoszenie się do poszczególnych znaków stringa za pomocą tablicy? np. bufor[2]? Czy jest jakas inna metoda?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 4 sie 2013, o 21:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-08-04T19:50:44+01:00</updated>
<published>2013-08-04T19:50:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44417#p44417</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44417#p44417"/>
<title type="html"><![CDATA[Re: Problem z RTC na ATB GLS]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44417#p44417"><![CDATA[
To proste jest Willu88<br />ładujesz cały string i potem odliczasz ilość danych do wyłuskania ... możesz jeszcze sprawdzić czy np po dacie odebrano ,  żeby nie ciągnąc za wiele w prostej pętli <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=58">SunRiver</a> — 4 sie 2013, o 19:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2013-08-04T19:11:42+01:00</updated>
<published>2013-08-04T19:11:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44412#p44412</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44412#p44412"/>
<title type="html"><![CDATA[Re: Problem z RTC na ATB GLS]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44412#p44412"><![CDATA[
To jeszcze aby nie zakładać nowego tematu to zapytam o pomoc. W związku że udało mi się oogarnac RTC chciałbym teraz użyć programu Mirka i zapisać datę i godzinę w RTC. Korzystając z liba Antystatycznego do UARTA odbieram sobie ładnie stringa w postaci: AT+CZAS=2013-08-04,18:00:00. Teraz po stronie uC musiałbym sprawdzić czy prawidłowo został odebrany String czyli czy na początku występuje AT+Czas= a następnie po znaku = parsować. Jednak jakoś nie bardzo mi to wychodzi. Nie wiem jak wyłuskiwać to co jest przed danym znakiem, to co jest po :/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 4 sie 2013, o 19:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2013-08-04T15:38:27+01:00</updated>
<published>2013-08-04T15:38:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44373#p44373</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44373#p44373"/>
<title type="html"><![CDATA[Re: Problem z RTC na ATB GLS]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44373#p44373"><![CDATA[
Boże jedyny widzisz i nie grzmisz :/ Zapomniałem zapiąć zworek na SCL i SDA, dopiero sprawdzenie ścieżki doprowadziło mnie do tego <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 4 sie 2013, o 15:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wilu88]]></name></author>
<updated>2013-08-04T15:12:10+01:00</updated>
<published>2013-08-04T15:12:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44370#p44370</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44370#p44370"/>
<title type="html"><![CDATA[Problem z RTC na ATB GLS]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3758&amp;p=44370#p44370"><![CDATA[
Witam<br /><br />Mam problem z kodem 08_TWI. Problem dotyczy odczytu godziny z wykorzystaniem funkcji <strong>TWI_read_buf( PCF8583_ADDR, 0x01, 4, bufor );<br /></strong> Dla testów ustawiłem sobie miganie diodą i tak gdy wstawię miganie diodą bezpośrednio do przerwania to miga pięknie co sekunde, a wiec sygnał z układu RTC jest OK, gdy wstawię miganie diodą na początek pętli while to mignie tylko raz i koniec czyli jak sie domyślam program zatrzymuje się gdzieś na odczycie danych z RTC. na LCD nie pokazuje sie nic poza napisem &quot;start...&quot; Dodam że płytka ATB GLS Atmega32 taktowana wewnętrznie 8Mhz<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2010-09-07<br /> *       Autor: Mirosław Kardaś<br /> *<br /> *       Program korzysta ze sprzętowej obsługi I2C/TWI<br /> *       Umożliwia zapis danych do RTC oraz EEPROM a także<br /> *       oczyt z tych urządzeń<br /> *<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;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 />// dioda LED<br />#define LED_PIN (1&lt;&lt;PC7)// definicja pinu do którego podłączona jest dioda<br />#define LED_TOG PORTC ^= LED_PIN// makrodefinicja – zmiana stanu diody<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 /><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 />int main(void) {<br /><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 />DDRC |= LED_PIN;// kierunek pinu PC7 – wyjściowy<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(27);// 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 /><br />while(1) {<br /><br />if ( int0_flag ) {<br />//odczyt 4 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC<br /><br />LED_TOG;<br />TWI_read_buf( PCF8583_ADDR, 0x01, 4, bufor );<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 /><br />int0_flag=0;<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 />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=743">Wilu88</a> — 4 sie 2013, o 15:12</p><hr />
]]></content>
</entry>
</feed>