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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-06T12:46:33+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5018&amp;mode</id>
<entry>
<author><name><![CDATA[iwi]]></name></author>
<updated>2013-12-06T12:46:33+01:00</updated>
<published>2013-12-06T12:46:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59899#p59899</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59899#p59899"/>
<title type="html"><![CDATA[Re: Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59899#p59899"><![CDATA[
Chciałem sprawdzać dokładnie kiedy na PD2 będzie stan 1 albo 0 więc dlatego maskowanie całego portu D<br />Ale jeszcze takie coś wymyśliłem<br />W rejestrach ustawiamy dodatkowo<br />[syntax=c]MCUCR = (1&lt;&lt;ISC01) | (1&lt;&lt;ISC00);[/syntax]<br />i teraz wyzwalamy przerwanie stanem narastającym.<br />teraz startujemy z i=0 i czekamy na narastający impuls na wejściu PD2<br />a w funkcji przerwań dodajemy takie coś<br />[syntax=c]ISR (INT0_vect) {<br />if (!i) {<br />               MCUCR &amp;= !(1&lt;&lt;ISC00); //ustawiamy na wyzwalanie zboczem malejącym<br />i=1;<br /><br />}<br />else {<br />                  i=0;<br />                MCUCR |= (1&lt;&lt;ISC00); //ustawiamy do wyzwalania zboczem narastającym<br />              }<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1988">iwi</a> — 6 gru 2013, o 12:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iwi]]></name></author>
<updated>2013-12-06T12:11:20+01:00</updated>
<published>2013-12-06T12:11:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59896#p59896</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59896#p59896"/>
<title type="html"><![CDATA[Re: Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59896#p59896"><![CDATA[
Zainspirowałeś mnie przerwaniami i poszukałem i poczytałem i coś takiego stworzyłem. Jeszcze nie sprawdzałem, bo mam dużo niewiadomych a pierwszy raz chcę użyć przerwań do tego celu.<br />[syntax=c]/*<br />  *      Atmega8A 8MHz<br /> */<br /><br />// Podpinamy biblioteki<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//Definicje<br />#define LED1 (1&lt;&lt;PD5)<br />#define LED2 (1&lt;&lt;PD6)<br />#define KEY1 (1&lt;&lt;PD7)<br />#define PWM_in (1&lt;&lt;PD2)<br />#define PWM_out OCR2 //PB3<br />uint8_t wsp = 1;<br />uint8_t key_lock;<br />uint16_t PWM_t1, PWM_t2; //t1 - czas impulsu wysokiego, t2 czas impulsu niskiego<br />volatile uint8_t i;<br /><br />int main (void) {<br />         PORTD |= KEY1;  // podciągamy linie klawiszy PD6 do VCC<br />         DDRD |= LED1 | LED2;<br />         <br />//************************* INIZJALIZACJA UART ********************************<br />        uart_init( __UBRR );<br /><br />//************************* INIZJALIZACJA PWM ********************************<br />        TCCR2 = (1&lt;&lt;WGM21) | (1&lt;&lt;WGM20); //ustawienie tryby 8bit Fast PWM dla Timera2<br />        TCCR2 = (1&lt;&lt;CS22) | (1&lt;&lt;CS21) | (1&lt;&lt;CS20); //ustawienie przescalera 1024 =&gt; f=30Hz<br />        TCCR2 = (1&lt;&lt;COM21) | (1&lt;&lt;COM20); //tryb porównania odwracający<br />        PWM_out=0; //ustawienie wypełnienia zerowego na wyjciu OC2 (PB3)<br /><br />//************************* INIZJALIZACJA PRZERWAŃ ********************************<br />        MCUCR =(1&lt;&lt;ISC00); //ustawienie wyzwalania przerwania dla każdej zmiany stanu dla INT0<br />        GICR =(1&lt;&lt;INT0); //włączenie przerwań dla INT0<br /><br />//włączenie przerwań globalnych<br />        sei(); <br />//***************PĘTLA GŁÓWNA<br />        while(1) {<br />        if( !key_lock &amp;&amp; !(PIND &amp; KEY1 ) ) {<br />             key_lock=254;<br />            // reakcja na PRESS (wcinięcie przycisku)<br />             PORTD ^= LED2;<br />             PWM_out = 0;  //zerowanie PWM<br />             } else if( key_lock &amp;&amp; (PIND &amp; KEY1 ) ) {<br />                         key_lock++;<br />             }<br />        <br />//zliczanie czasów impulsów<br />if (i)  {<br />         for (PWM_t1=1; PWM_t1&lt;=10000; PWM_t1++);<br />         }<br />         else {<br />         for (PWM_t2=1; PWM_t2&lt;=10000; PWM_t2++);<br />         wsp = PWM_t1 / (PWM_t1+PWM_t2);<br />         PWM_out = wsp * 255;<br />         } <br />        } //Koniec Pętli głownej<br />} //Koniec programu głownego<br /><br />ISR (INT0_vect) {<br />if ((i) &amp; (PIND == (0x02 &amp; 0xFF))) { //jeżeli na INT0 pojawi się sygnał wysoki oraz i = 1<br />i=0;<br />}<br />else i=1;<br />}<br /><br />}[/syntax]<br /><br />Po pierwsze czy w funkcji obsługi przerwań ISR dobrze jest zapisany warunek z maskowaniem bitów? Chodzi mi o to, że przerwanie nie rozpoznaje kiedy zmienia się stan z 0 na 1 a kiedy z 1 na 0 więc takim zapisem powinno to się wyrównać<br />ewnetualnie ten warunek dodatkowy z maskowaniem (PIND == (0x02 &amp; 0xFF)) trzeba przenieść do funkcji while(1)<br />Czy trzeba ustawić wyzerować bit INTF0 w rejestrze GIFR?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1988">iwi</a> — 6 gru 2013, o 12:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iwi]]></name></author>
<updated>2013-12-04T17:58:02+01:00</updated>
<published>2013-12-04T17:58:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59662#p59662</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59662#p59662"/>
<title type="html"><![CDATA[Re: Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59662#p59662"><![CDATA[
Impulsy będą z stałą częstotliwością 2kHz<br />Więc na wejściu częstotliwość się nie będzie zmianiała, ale możnaby zrobić funkcję uniwesralną, która by zliczała zarówno czas wysokiego stanu jak i niskiego i potem dzieląc stan wysoki przez sumę wyszedłby współczynnk do OCR2.<br /><br />Ale nie robiłem tego ze wzgledu na tą for - zajęłaby mi cały procesor bo wykonywałaby się albo jedna for (PWM_in) albo druga for (!PWM_in)<br />ale z Tym Twoim przykładem nie byłoby to takie głupie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> czyli mierzyłoby się co 10 obrotów zegara czas jeden i czas drugi więc to za bardzo już nie obciąży.<br /><br />Na razie to jest na Atmedze8, ale nie ukrywam, że na Tiny13 chcę to zmieścić - albo Tiny26 i wtedy dodatkowo wyświetlacz i ADC. Więc ogólnie procesor będzie miał co robić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1988">iwi</a> — 4 gru 2013, o 17:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-12-04T17:45:05+01:00</updated>
<published>2013-12-04T17:45:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59661#p59661</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59661#p59661"/>
<title type="html"><![CDATA[Re: Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59661#p59661"><![CDATA[
<div class="quotetitle">iwi napisał(a):</div><div class="quotecontent"><br />Tryb PWM jest 8 bitowy, natomiast tylko zliczanie zmiennej Timer2 (zbieżność nazwy) jest w 16 bitach bo obawiałem się, że łatwo może przekroczyć 255 i co wtedy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br />ale finalnie wpisujesz do rejestru OCR2- który jest 8 bitowy i jeśli obserwujesz wyjście PWM np. z dołączoną diodką to obawiam się że rejestr OCR2 będzie miał ciągle duzą wartość ~255.<br /><br /><div class="quotetitle">iwi napisał(a):</div><div class="quotecontent"><br />Jeżel ten impuls zwiększy wypełnienie do 99% to będzie OK, ale jeżeli pojawi się ciągły sygnał na wejściu to wtedy pętla for się zatrzyma i będzie czekała na stan niski na wejściu PB0. Więc jeszcze do przeróbki ta funkcja - tylko kiedy przyrównać OCR2 do 255?.<br /></div> musisz przyjąć jakąś skale / współczynnik do przeliczania i określić zakres długości impulsów na wejściu np. od 1ms (OCR2=1) do 1s (OCR2=255).<br />Napisz jakie czasy będą miały te impulsy. A co do przykładu to moze zaraz coś skrobnę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 4 gru 2013, o 17:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iwi]]></name></author>
<updated>2013-12-04T17:26:52+01:00</updated>
<published>2013-12-04T17:26:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59658#p59658</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59658#p59658"/>
<title type="html"><![CDATA[Re: Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59658#p59658"><![CDATA[
Tryb PWM jest 8 bitowy, natomiast tylko zliczanie zmiennej Timer2 (zbieżność nazwy) jest w 16 bitach bo obawiałem się, że łatwo może przekroczyć 255 i co wtedy <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />w każdym razie zrobię próby i zobaczę na jakiej wartości się zatrzymuje Timer2 przy 99% wypełnieniu impulsu po to jest wsk żeby potem przeskalować.<br /><br />Ale jeszcze jedna kwestia. <br />Jeżel ten impuls zwiększy wypełnienie do 99% to będzie OK, ale jeżeli pojawi się ciągły sygnał na wejściu to wtedy pętla for się zatrzyma i będzie czekała na stan niski na wejściu PB0. Więc jeszcze do przeróbki ta funkcja - tylko kiedy przyrównać OCR2 do 255?.<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Dlatego ja proponuje przyjąć timer programowy i sprawdzać co np. 10 us czy aby we nie jest wysokie i jeśli się utrzymuje to inkrementować zmienną, a po zaniku impulsu mnożyć razy współczynnik i do OCR.<br />Można też wykorzystać wejście przerwaniowe lub tryb ICR Timera1.<br /></div><br />a możesz dać jakiś przykład bo nie za bardzo wiem o co w tym chodzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1988">iwi</a> — 4 gru 2013, o 17:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-12-04T16:38:43+01:00</updated>
<published>2013-12-04T16:38:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59655#p59655</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59655#p59655"/>
<title type="html"><![CDATA[Re: Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59655#p59655"><![CDATA[
<div class="quotetitle">iwi napisał(a):</div><div class="quotecontent"><br />Timer2 jest 16bit więc trochę więcej ma do zapętlenia.<br /></div> ale w kodzie w komentach masz tryb fast pwm 8b, poza tym mega 8 ma timer 2 własnie 8 bitowy:)<br /><br /><div class="quotetitle">iwi napisał(a):</div><div class="quotecontent"><br />Pętla while(1) wykonywana jest z częstotliwością 8MHz.<br /></div> Nic podobnego, 1/8 us to czas jednego cyklu zegarowego, Twoja pętla będzie miała kilkadziesiąt cyknięć przy jednym obrocie.<br />Zresztą jak zauważyłeś program bedzie zatrzymywany w pętli for w zależności od długości impulsu.<br /><div class="quotetitle">iwi napisał(a):</div><div class="quotecontent"><br />wykonuje jakies inne operacje które są poza funkcją for?<br /></div>nie.<br />Dlatego ja proponuje przyjąć timer programowy i sprawdzać co np. 10 us czy aby we nie jest wysokie i jeśli się utrzymuje to inkrementować zmienną, a po zaniku impulsu mnożyć razy współczynnik i do OCR. <br />Można też wykorzystać wejście przerwaniowe lub tryb ICR Timera1.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 4 gru 2013, o 16:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iwi]]></name></author>
<updated>2013-12-04T16:17:15+01:00</updated>
<published>2013-12-04T16:17:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59650#p59650</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59650#p59650"/>
<title type="html"><![CDATA[Re: Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59650#p59650"><![CDATA[
To z i wstawiłem przykładowo - ale może masz rację. Timer2 jest 16bit więc trochę więcej ma do zapętlenia. Na razie odłączyłem układ testowy bo potrzebowałem inną rzecz sprawdzic, ale teraz powinno być OK.<br /><br />Ale pytanie z innej beczki początkującego.<br /><br />Pętla while(1) wykonywana jest z częstotliwością 8MHz. Program wchodzi do pętli for i czy teraz w czasie kiedy są wykonywane instrukcje z for (a to będzie czas dopóki na PWM_in jest stan wysoki wykonuje jakies inne operacje które są poza funkcją for?<br />Pytam się bo teraz ta funkcja for będzie mi zatrzymywala program glowny w nierownych odstepach tzn jesli na PB0 są krotkie impulsy to zatrzymanie bedzie krotkie, ale jak beda dlugie to bedzie dlugo zatrzymywana .<br />Czy dobrze mysle?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1988">iwi</a> — 4 gru 2013, o 16:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-12-04T16:12:12+01:00</updated>
<published>2013-12-04T16:12:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59648#p59648</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59648#p59648"/>
<title type="html"><![CDATA[Re: Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59648#p59648"><![CDATA[
Może problemem jest to że OCR się szybko przepełnia, procek w sumie nic nie robi prawie to te 255 to zliczy migiem, trzeba by sprawdzać to co jakiś czas - np timerem programowym.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 4 gru 2013, o 16:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iwi]]></name></author>
<updated>2013-12-04T16:04:18+01:00</updated>
<published>2013-12-04T16:04:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59646#p59646</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59646#p59646"/>
<title type="html"><![CDATA[Re: Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59646#p59646"><![CDATA[
OK. Masz rację z tym, że dalej nie działa.<br />Znalazłem jeszcze że linia PB0 nie jest nigdzie określona czy jest wejściem czy wyjściem<br />czyli <div class="codetitle"><b>Code:</b></div><div class="codecontent">DDRB |= PWM_in;</div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1988">iwi</a> — 4 gru 2013, o 16:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Lukasz89]]></name></author>
<updated>2013-12-04T15:56:23+01:00</updated>
<published>2013-12-04T15:56:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59645#p59645</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59645#p59645"/>
<title type="html"><![CDATA[Re: Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59645#p59645"><![CDATA[
Błąd wyskakuje bo nie zamykasz linii z for'em, powinno być tak:<br />[syntax=c]for (Timer2=1; PWM_in; Timer2++);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=590">Lukasz89</a> — 4 gru 2013, o 15:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[iwi]]></name></author>
<updated>2013-12-04T15:29:04+01:00</updated>
<published>2013-12-04T15:29:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59643#p59643</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59643#p59643"/>
<title type="html"><![CDATA[Obliczanie długości impulsu i ustawienie PWM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5018&amp;p=59643#p59643"><![CDATA[
Witajcie.<br />Dalej z prostą sprawą nie mogę sobie poradzić i dlatego proszę o pomoc.<br />Co tutaj nie działa.<br />Program miał działać w taki sposób, że zlicza czas impulsu i proporcjonalnie do tego czasu ustawia PWM przeskalowując go przez stałą wsp<br />[syntax=c]/*<br /> *      Atmega8A 8MHz<br /> */<br /><br />// Podpinamy biblioteki<br /><br />#include &lt;avr/io.h&gt;<br /><br />//Definicje<br />#define LED1 (1&lt;&lt;PD5)<br />#define LED2 (1&lt;&lt;PD6)<br />#define KEY1 (1&lt;&lt;PD7)<br />#define PWM_in (1&lt;&lt;PB0)<br />uint8_t wsp = 1;<br />uint16_t Timer2, i;<br /><br />int main (void) {<br />         PORTD |= KEY1;  // podciągamy linie klawiszy PD6 do VCC<br />         DDRD |= LED1 | LED2;<br />//************************* INIZJALIZACJA UART ********************************<br />        uart_init( __UBRR );<br />//************************* INIZJALIZACJA PWM ********************************<br />        TCCR2 = (1&lt;&lt;WGM21) | (1&lt;&lt;WGM20); //ustawienie tryby 8bit Fast PWM dla Timera2<br />        TCCR2 = (1&lt;&lt;CS22) | (1&lt;&lt;CS21) | (1&lt;&lt;CS20); //ustawienie przescalera 1024 =&gt; f=30Hz<br />        TCCR2 = (1&lt;&lt;COM21) | (1&lt;&lt;COM20); //tryb porównania odwracający<br />        OCR2=0; //ustawienie wypełnienia zerowego na wyjciu OC2 (PB3)<br />//***************PĘTLA GŁÓWNA<br />        while(1) {<br />         if (PWM_in) {<br />        for (Timer2=1; PWM_in; Timer2++)<br />         }<br />         else OCR2 = Timer2 * wsp;<br />        } //Koniec Pętli głownej<br />} //Koniec programu głownego[/syntax]<br /><br />nie bardzo łapię dlaczego przy funkcji for jest błąd<br />jak zamienię to na taką postać [syntax=c]for (i=0; i&lt;=244; i++) Timer2=i;[/syntax] <br />to nie pokazuje błędu, ale nie działa - albo coś źle sprawdzam, bo to musi działać.<br />Ale patrząc na ten przykład to jeśli jest stan wysoki (PWM_in==1) to wejdź w pętle for i rozpocznij zliczanie Timera2 od 1 i zliczaj dopóki PWM_in będzie PRAWDĄ, a jeśli jest to zwiększ Timer2 o jeden i tak w kółko aż warunek if nie zostanie spełniony więc wtedy wykona się przypisanie wielkości pomierzonej od Timera2 (pomnożone przez jakiś współczynnik) do OCR2.<br />Gdzieś tutaj musi być jeszcze coś co przeoczyłem tylko nie wiem co.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1988">iwi</a> — 4 gru 2013, o 15:29</p><hr />
]]></content>
</entry>
</feed>