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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-03-30T23:01:44+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=14969&amp;mode</id>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-03-30T23:01:44+01:00</updated>
<published>2016-03-30T23:01:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157410#p157410</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157410#p157410"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157410#p157410"><![CDATA[
Chyba więcej pytań już nie mam <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Jeszcze raz dziękuję.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5344">matti0010</a> — 30 mar 2016, o 23:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2016-03-30T21:29:54+01:00</updated>
<published>2016-03-30T21:29:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157400#p157400</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157400#p157400"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157400#p157400"><![CDATA[
1. Prawie dobrze. Prawie bo do preskalera dodajemy 1. Po to aby przy wpisanej wartości 0 dzieliło przez 1 więc nie dzieliło <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> I wtedy wychodzi 30000 / 11 / 2700 = 1.01 Hz<br /><br />2. Sam dokładnie nie pamiętam na której to było stronie, ale skoro piszesz, że działa to zapewne nie robi to różnicy.<br /><br />3. Co do obsługi przerwań to oczywiście twoje podejście i nawyk jest bardzo dobry, więc na mnie nie zwracaj tu uwagi bo poszedłem na łatwiznę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 30 mar 2016, o 21:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-03-30T16:21:44+01:00</updated>
<published>2016-03-30T16:21:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157369#p157369</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157369#p157369"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157369#p157369"><![CDATA[
1) Chyba już rozumie. Patrzę właśnie na schemat z RM dla RTC i widzę że ten asynchroniczny taktuje synchroniczny. Jak Da się asynchronicznemu 10 a synchronicznemu 2700 to dla LSI ok 30kHz daje to 1,11Hz więc w przybliżeniu sekundę. OR robimy by nie skasować wcześniejszej wpisanej danej do tego rejestru <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />2) Nigdzie nie widziałem tego, że trzeba dawać 0xFF. Poszukam jeszcze, pewnie przeoczyłem. Z ciekawości chyba przetestuję przy okazji różne opcje. Jeżeli czas na to pozwoli.<br /><br />3) Dobre podejście <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> ale w ramach czysto edukacyjnych sprawdzę co się stanie jak to pominę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> i znowu, o ile czas pozwoli.<br /><br />4) Uczę się ARMów z pewnego poradnika, który znalazłem w sieci i tam właśnie autor zwracał na to uwagę. Pisał, że nawet dla pewności lepiej to dać niż potem żałować. Wolałem jednak dopytać, czy nie ma tutaj jakiegoś ciekawego zjawiska (np. że nie można bo coś tam). <br /><br />5) Jeszcze raz dziękuję <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Dzięki temu nauczyłem się więcej niż odpuszczając ten temat.<br /><br />Przeprowadziłem testy i wygląda na to, że 0xFF nie ma znaczenia, musi być po prostu czymś innym niż dwoma magicznymi liczbami odblokowującymi możliwość modyfikacji.<br /><br />Dodatkowo sprawdziłem czy bit ALRAE w RTC_CR robi różnicę, nie trzeba było go kasować by działało wszystko, niemniej jednak warto to zrobić niż potem żałować.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5344">matti0010</a> — 30 mar 2016, o 16:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2016-03-30T14:56:16+01:00</updated>
<published>2016-03-30T14:56:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157365#p157365</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157365#p157365"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157365#p157365"><![CDATA[
Więc tak:<br /><br />1. Taki zapis z tego powodu, że mamy 2 preskalery dla RTC. Asynchroniczny 7-bitowy, na pozycjach 22-16 rejestru RTC_PRER, więc wpisuje do niego 10 po czym przesuwam o te 16 bitów w lewo. I drugi 15 bitowy na pozycjach 14-0  tegoż rejestru, więc robię OR i wpisuje do niego 2700.<br /><br />2. 0xff dla tego, że tak pisali w nocie aby zablokować rejestry. Może można cokolwiek innego od 0xca i 0x53. Ale z takim pytaniem to raczej do ST aniżeli do mnie <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /><br />3. Nawet nie testowałem czy bez tego ustawi się ALRAWF, dałem bo zazwyczaj czytając notę i widząc, że dany bit musi być ustawiony lub skasowany po prostu to robię. Dzięki temu jeżeli później coś nie działa mam pewność, że na pewno nie przez to.<br /><br />4. Oczywiście twoja obsługa przerwania jest jak najbardziej poprawna. Jeżeli jednak włączaliśmy przerwanie tylko od alarmu rtc to mamy pewność, że pochodzi ono od niego i możemy na ślepo kasować właśnie tą flagę. Gdyby obsługiwać jescze inne jak np. od sabotażu (tamper), albo wake-upa timera to twoja obsługa jest wręcz konieczna.<br /><br />5. Twój kod oczywiście jest OK  <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=487">krafin</a> — 30 mar 2016, o 14:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-03-30T12:36:22+01:00</updated>
<published>2016-03-30T12:36:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157357#p157357</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157357#p157357"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157357#p157357"><![CDATA[
Właśnie to przerobiłem, przemyślałem itd. i mam kilka pytań.<br /><br />1) Nie bardzo rozumie o co chodzi w tej linii (co jest tam robione itd.): [syntax=c]RTC-&gt;PRER = (10&lt;&lt;16) | 2700; //prescaler na oko dla LSI 30000 kHz[/syntax]<br /><br />2) Czy dobrze rozumie o co chodzi z tym zapisem: [syntax=c]RTC-&gt;WPR = 0xff;//wpisanie czegokolwiek innego niż hasło powoduje zablokowanie RTC na modyfikację[/syntax] Tak jak tam w komentarzu napisałem rozumie, że wpisujac cokolwiek innego niż klucz (0xCA i 0x53) powoduję zablokowanie możliwości modyfikacji rejestrów dla RTC?<br /><br />3) Czy konieczne jest dawanie tego: [syntax=c]RTC -&gt; CR &amp;= ~RTC_CR_ALRAE;//wyłączenie alarmu[/syntax] przy ustawianiu RTC? Po resecie ten rejestr ma wszędzie zera więc na tym bicie również. Jest to robione może po to by ustawił się bit ALRAWF w rejestrze ISR? Z tego co widzę w dokumentacji wynika, że taki jest powód, jednak wolę się upewnić.<br /><br />4) Czy w obsłudze przerwania, nie warto sprawdzić najpierw od czego w RTC wystąpiło przerwanie? Przykładowo stosując taki zapis:<br />[syntax=c]if(RTC-&gt;ISR &amp; RTC_ISR_ALRAF)<br />{<br />RTC -&gt; ISR &amp;= ~RTC_ISR_ALRAF;//kasowanie flagi od alarmu<br />EXTI -&gt; PR = EXTI_PR_PR17;//kasowanie flagi od przerwania EXTI17<br />GPIOB -&gt; ODR ^=(1&lt;&lt;0);<br />}[/syntax]<br /><br /><br />Poniżej wklejam kod, który teraz powstał na bazie tego tego co napisał @krafin. Jeszcze raz bardzo dziękuję. Widzę że minimalnie miałem to dobrze, ale jednak za mało by zadziałało. Teraz uporządkowałem sobie tą wiedzę i chyba jako tako rozumie co i jak z RTC. Oczywiście pełne zrozumienie przyjdzie z czasem jak zrobię kilka projektów w oparciu o ten układ, lecz mam już na czym bazować.<br /><br />[syntax=c]#include &quot;stm32f0xx.h&quot;<br />#include &quot;stm32f0_discovery.h&quot;<br /><br />int main(void)<br />{<br />/////ustawianie wyjśc<br />RCC -&gt; AHBENR |= RCC_AHBENR_GPIOBEN;<br />GPIOB -&gt; MODER |= GPIO_MODER_MODER0_0;<br />GPIOB -&gt; PUPDR |= GPIO_PUPDR_PUPDR0_0;<br />GPIOB -&gt; BRR |= GPIO_BRR_BR_0;<br />/////koniec ustawiania wyjśc<br /><br />/////ustawianie RTC<br />RCC -&gt; APB1ENR |= RCC_APB1ENR_PWREN;//odblokowanie możliwości zapisu do rejestrów domeny, zabezpieczenie<br />PWR -&gt; CR |= PWR_CR_DBP;//ostateczne odblokowanie zapisu do domeny<br />RCC-&gt;CSR |= RCC_CSR_LSION;//włączenie generatora LSI<br />while(!( RCC-&gt;CSR &amp; RCC_CSR_LSIRDY ));//oczekiwanie na uruchomienie generatora LSI<br />RCC -&gt; BDCR |= RCC_BDCR_BDRST;//kasuję ustawienia RTC<br />RCC -&gt; BDCR &amp;= ~RCC_BDCR_BDRST;//przestaję kasowac ustawienia RTC<br />RCC -&gt; BDCR |= RCC_BDCR_RTCSEL_LSI|RCC_BDCR_RTCEN;//reset RTC, wybór źródła taktowania (LSI) i włączenie RTC<br />RTC -&gt; WPR = 0xCA;//do WPR wpisujemy takie liczby by odblokowac możliwośc modyfikacji RTC<br />RTC -&gt; WPR = 0x53;//bez tego nic nie zmienimy ponieważ RTC ma rejestry chronione hasłem<br />RTC -&gt; ISR |= RTC_ISR_INIT; // inicjalizacja RTC<br />while (!( RTC -&gt; ISR &amp; RTC_ISR_INITF));//czekamy aż inicjalizacja się rozpocznie<br />RTC -&gt; TR = 0;//ustawienie rejestru z czesem na zero<br />RTC-&gt;PRER = (10&lt;&lt;16) | 2700; //prescaler na oko dla LSI 30000 kHz<br />RTC -&gt; ISR &amp;= ~RTC_ISR_INIT;//wyjście z trybu inicjalizacji<br />RTC-&gt;WPR = 0xff;//wpisanie czegokolwiek innego niż hasło powoduje zablokowanie RTC na modyfikację<br />/////koniec ustawiania RTC<br /><br />/////ustawienie alarmu<br />EXTI-&gt;RTSR |= EXTI_RTSR_TR17; //zbocze narastające na exti 17<br />EXTI-&gt;IMR |= EXTI_IMR_MR17; //odblokowanie przerwań od exti 17 do którego dołączony jest RTC<br />NVIC_EnableIRQ(RTC_IRQn);//uruchomienie przerwania dla RTC<br />RTC -&gt; WPR = 0xCA;//do WPR wpisujemy takie liczby by odblokowac możliwośc modyfikacji RTC<br />RTC -&gt; WPR = 0x53;//bez tego nic nie zmienimy ponieważ RTC ma rejestry chronione hasłem<br />RTC -&gt; CR &amp;= ~RTC_CR_ALRAE;//wyłączenie alarmu<br />while(!(RTC -&gt; ISR &amp; RTC_ISR_ALRAWF));<br />RTC -&gt; ALRMASSR = 0x0F000000;//kasowanie części setnych sekundy<br />RTC -&gt; ALRMAR |= RTC_ALRMAR_MSK4|RTC_ALRMAR_MSK3|RTC_ALRMAR_MSK2|RTC_ALRMAR_MSK1;//maskuje wszystkie przerwania, alarm co sekundę<br />RTC -&gt; CR |= RTC_CR_ALRAE|RTC_CR_ALRAIE;//odblokowanie przerwania dla alarmu<br />RTC-&gt;WPR = 0xff;//wpisanie czegokolwiek innego niż hasło powoduje zablokowanie RTC na modyfikację<br />//////koniec ustawiania alarmu<br />for(;;);<br />}<br /><br />void RTC_IRQHandler(void)<br />{<br />if(RTC-&gt;ISR &amp; RTC_ISR_ALRAF)<br />{<br />RTC -&gt; ISR &amp;= ~RTC_ISR_ALRAF;//kasowanie flagi od alarmu<br />EXTI -&gt; PR = EXTI_PR_PR17;//kasowanie flagi od przerwania EXTI17<br />GPIOB -&gt; ODR ^=(1&lt;&lt;0);<br />}<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Zapomniałem dopisać (miałem dać znać czy działa): DZIAŁA <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> dziękuję <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=5344">matti0010</a> — 30 mar 2016, o 12:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-03-29T23:06:36+01:00</updated>
<published>2016-03-29T23:06:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157346#p157346</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157346#p157346"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157346#p157346"><![CDATA[
Bardzo dziękuję <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> jutro się za to zabiorę, bo dziś chcę dokończyć IWDG <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=5344">matti0010</a> — 29 mar 2016, o 23:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krafin]]></name></author>
<updated>2016-03-29T22:34:33+01:00</updated>
<published>2016-03-29T22:34:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157345#p157345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157345#p157345"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157345#p157345"><![CDATA[
Widzę, że kolega nie dostał innej odpowiedzi niż w stylu &quot;Bez spl'a się nie uda&quot; a, że jeszcze nie obsługiwałem RTC F0 a akurat jedna płytka leżała, to zmusiło mnie to do testów. I tak oto w niecałe 40 minut mam gotowe procedurki i ogólne pojęcie <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Więc w sumie muszę podziękować za zmuszenie do poszukiwań, sam na tym skorzystam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />Proszę - testuj modyfikuj do woli. I daj znać czy działa  <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> <br />[syntax=c]void setRtc(){<br />RCC-&gt;APB1ENR |= RCC_APB1ENR_PWREN;<br />PWR -&gt; CR |= PWR_CR_DBP;<br />RCC-&gt;CSR |= RCC_CSR_LSION;<br />while(!(RCC-&gt;CSR &amp; RCC_CSR_LSIRDY));<br />RCC-&gt;BDCR |= RCC_BDCR_BDRST;<br />RCC-&gt;BDCR &amp;= ~RCC_BDCR_BDRST;<br />RCC-&gt;BDCR = RCC_BDCR_RTCEN | RCC_BDCR_RTCSEL_LSI;<br />RTC-&gt;WPR = 0xca;<br />RTC-&gt;WPR = 0x53;<br />RTC-&gt;ISR |= RTC_ISR_INIT;<br />while(!(RTC-&gt;ISR &amp; RTC_ISR_INITF))<br />RTC-&gt;TR = 0;<br />RTC-&gt;PRER = (10&lt;&lt;16) | 2700; //prescaler na oko dla LSI 30000 kHz<br />RTC-&gt;ISR &amp;= ~RTC_ISR_INIT;<br />RTC-&gt;WPR = 0xff;<br /><br />}<br /><br />void setAlarm(){<br />EXTI-&gt;RTSR |= EXTI_RTSR_TR17; //zbocze narastające na exti 17<br />EXTI-&gt;IMR |= EXTI_IMR_MR17; //odblokowanie przerwań od exti 17 do którego dołączony jest rtc<br />NVIC_EnableIRQ(RTC_IRQn);<br />RTC-&gt;WPR = 0xca;<br />RTC-&gt;WPR = 0x53;<br />RTC-&gt;CR &amp;= ~RTC_CR_ALRAE;<br />while(!(RTC-&gt;ISR &amp; RTC_ISR_ALRAWF));<br />RTC-&gt;ALRMASSR = 0x0f &lt;&lt; 24; //zamaskowanie przerwań od &quot;subsekund ??&quot;<br />RTC-&gt;ALRMAR = RTC_ALRMAR_MSK1 | RTC_ALRMAR_MSK2 | RTC_ALRMAR_MSK3 | RTC_ALRMAR_MSK4; //zamaskowanie wszystkich przerwań - w efekcie przerwanie od alarmu co sekundę<br />RTC-&gt;CR |= RTC_CR_ALRAE | RTC_CR_ALRAIE; //włączenie alarmu i jego przerwań<br />RTC-&gt;WPR = 0xff;<br />}<br /><br />void RTC_IRQHandler(void){<br />RTC-&gt;ISR &amp;= ~RTC_ISR_ALRAF; //flaga alraf kasowana zerem<br />EXTI-&gt;PR = EXTI_PR_PR17; //flaga od exti kasowana jedynką<br />GPIOB-&gt;ODR ^= (1&lt;&lt;0); //blink blink ;)<br />}[/syntax]<br /><br />Tak po za tym wszyscy na tą F0 tak narzekają ale patrząc na obsługę peryferii itp. to F1 to jest jakaś tragedia dopiero, jakieś dziwne remapy na pinach a RTC na przykład to jakaś kpina nie RTC.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=487">krafin</a> — 29 mar 2016, o 22:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-03-28T13:01:07+01:00</updated>
<published>2016-03-28T13:01:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157268#p157268</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157268#p157268"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157268#p157268"><![CDATA[
Problem w tym, że gdy kupowałem STM32F0DISCOVERY nie miałem bladego pojęcia na co zwracać uwagę <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Ponieważ też ktoś ukradł mi kurę znoszącą złote jajka nie mogę sobie pozwolić na kupno innego tylko dla tego że chcę się go pouczyć <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Tym bardziej, że ostatnio musiałem kupić układ FPGA Altera DE0 Nano ;/<br /><br />No nic, RTC odpuszczę sobie <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Dzięki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5344">matti0010</a> — 28 mar 2016, o 13:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2016-03-28T12:55:31+01:00</updated>
<published>2016-03-28T12:55:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157267#p157267</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157267#p157267"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157267#p157267"><![CDATA[
do poznania ... polecam VL Discovery ... czyli rdzeń referencyjny M3 <br />nie M0 ....<br /><br />a dlaczego ...??? <br /><br />dlatego że okroili M3 i odarli z wszystkiego co było tym rdzeniem <br />i atmega jest wydajniejsza momentami ,.,.,,<br /><br />na szczescie poszli po rozum do głowy ... i wypuscili rdzeń m0+<br /><img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />o czym pisałem też gdzieś ....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 28 mar 2016, o 12:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-03-28T12:50:40+01:00</updated>
<published>2016-03-28T12:50:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157266#p157266</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157266#p157266"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157266#p157266"><![CDATA[
Przejrzę to w wolnej chwili. Dzięki. Widzę tam nawet jedną rzecz, którą za jakiś czas będę potrzebował (ethernet <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> ).<br /><br />Co do bibliotek, kiedyś chciałem używać to też nie znalazłem dobrych opisów a jak był przykłady to często dla wszystkich innych tylko nie tego F0. Sam też próbowałem i kończyło się jak się kończyło <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> Do tego nie uważam, że biblioteki to zło. Wiem że są bardzo pomocne. Chciałem tylko tego jednego ARMa zrozumieć dogłębniej a potem na innych bym trzaskał po bibliotekach (bo ogólnie zasadę działania w środku jako tako bym znał).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5344">matti0010</a> — 28 mar 2016, o 12:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2016-03-28T12:37:22+01:00</updated>
<published>2016-03-28T12:37:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157265#p157265</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157265#p157265"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157265#p157265"><![CDATA[
widzisz ... nie po to starają się wszyscy czyli ARM i producenci krzemu dostarczać standardy rozwiązań <br />by się męczyć jak za czasów atmegi kopanej  .... panie kolego doceń zalety CMSIS  <br /><img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />jak chcesz wiedzieć jak to działą od środka to zostaw C i rejestry , a zainteresuj sie assemblerem <br /><br />jak chcesz zobaczyć co jest i jak zajmij się podstawowymi bibliotekami STL  <br /><br />Poczytaj ... <!-- m --><a class="postlink" href="http://www.sunduino.pl/wordpress/cmsis-standard/" >http://www.sunduino.pl/wordpress/cmsis-standard/</a><!-- m -->   -- dowiesz się że nie jest to prawda co piszą <br />rzekomi spece o dłubaniu w rejestrach ...  a gdy poprosisz o pomoc to ci dają linka do DS<br /><br /><!-- m --><a class="postlink" href="http://www.sunduino.pl/wordpress/kurs-programowania-stm32-vl-discovery/" >http://www.sunduino.pl/wordpress/kurs-p ... discovery/</a><!-- m -->  i zobacz na rdzeniu referencyjnym jak się co robi <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />potem popiszemy i jak będziesz miał pytania odpowiem <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> — 28 mar 2016, o 12:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-03-28T10:55:27+01:00</updated>
<published>2016-03-28T10:55:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157263#p157263</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157263#p157263"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157263#p157263"><![CDATA[
Czemu archaicznych? Jeżeli będę wiedział jak coś działa od środka na rejestrach, to będę w stanie analizować gotowe biblioteki bądź sam je tworzyć <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /> <br /><br />Chyba w takim razie odpuszczę tego RTC <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=5344">matti0010</a> — 28 mar 2016, o 10:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2016-03-28T10:04:06+01:00</updated>
<published>2016-03-28T10:04:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157259#p157259</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157259#p157259"/>
<title type="html"><![CDATA[Re: STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157259#p157259"><![CDATA[
w związku z rozwojem technologi i narzędzi niestety <br />ale nie bedę w stanie udzielić panu satysfakcjonującej odpowiedzi <br />w nawiązaniu do archaicznych czasów kucia rejestrów <br /><br />niemniej podpowiem że tam gdzie pan tego szuka to tego niema to  M0 a nie  M0+ czy choćby M3<br />dodatkowo .... ten zestaw chyba nie posiada kwarca 32768Khz na pokładzie ...<br />ale to drobny szczegół techniczny  --- da to na rejestrach ominąc <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />Ale nie w ten sposób co kolega napisał ... <br />Niemniej analiza tego ....   kodu jest  --- widziałem ładniejsze brzydkie rzeczy<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 28 mar 2016, o 10:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matti0010]]></name></author>
<updated>2016-03-27T21:12:42+01:00</updated>
<published>2016-03-27T21:12:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157252#p157252</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157252#p157252"/>
<title type="html"><![CDATA[STM32F0DISCOVERY RTC - alarm]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=14969&amp;p=157252#p157252"><![CDATA[
Witajcie,<br /><br />od pewnego czasu molestuję RTC w tym ARM i mnie już krew zalewa. Mam prawdziwą sieczkę z mózgu, z tego powodu czy ktoś będzie tak dobry i ludzkim językiem (jak do debila) powie jak odpalić RTC by wszystko dobrze chodziło? Głównie zależy mi na odpaleniu alarmu. Haczyk jest mały: chcę to robić na rejestrach a nie gotowych funkcjach <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />Poniżej wklejam kod, który skleciłem. Zdaje sobie sprawę ile on jest wart, jest tam równie duży bałagan jak w mojej głowie na temat RTC w tym STM32F051R8T6... Niemniej jednak bardzo chcę go zrozumieć i potrzebuję kogoś kto dosłownie opowie o nim ze wskazaniem na co zwracać uwagę i w jakich rejestrach grzebać.<br /><br />Kod:<br />[syntax=c]/**<br />  ******************************************************************************<br />  * @file    main.c<br />  * @author  Ac6<br />  * @version V1.0<br />  * @date    01-December-2013<br />  * @brief   Default main function.<br />  ******************************************************************************<br />*/<br /><br /><br />#include &quot;stm32f0xx.h&quot;<br />#include &quot;stm32f0_discovery.h&quot;<br /><br />volatile uint8_t x=0;<br /><br />int main(void)<br />{<br />//wyjście<br />RCC -&gt; AHBENR |= RCC_AHBENR_GPIOCEN;<br />GPIOC -&gt; MODER |= GPIO_MODER_MODER0_0|GPIO_MODER_MODER1_0;<br />GPIOC -&gt; PUPDR |= GPIO_PUPDR_PUPDR0_0|GPIO_PUPDR_PUPDR1_0;<br />GPIOC -&gt; BSRR |= GPIO_BSRR_BS_0|GPIO_BSRR_BS_1;<br /><br />RCC -&gt; APB1ENR |= RCC_APB1ENR_PWREN;//odblokowanie możliwości zapisu do rejestrów domeny, zabezpieczenie<br />PWR -&gt; CR |= PWR_CR_DBP;//ostateczne odblokowanie zapisu do domeny<br />RCC-&gt;CSR |= RCC_CSR_LSION;//włączenie generatora LSI<br />while(!( RCC-&gt;CSR &amp; RCC_CSR_LSIRDY ));//oczekiwanie na uruchomienie generatora LSI<br />//reset RTC, wybór źródła taktowania (LSI) i włączenie RTC<br />RCC -&gt; BDCR |= RCC_BDCR_RTCSEL_LSI|RCC_BDCR_RTCEN;<br />//wszystko poniżej jest po ot, by ustawic RTC i wprowadzac w nim zmiany<br />//WPR - musimy wpisac takie liczby ponieważ RTC jest chroniony, dopiero to go odblokowuje ostatecznie<br /><br /><br />RTC-&gt;WPR = 0xCA; /* (1) */<br />RTC-&gt;WPR = 0x53; /* (1) */<br />RTC-&gt;CR &amp;=~ RTC_CR_ALRAE; /* (2) */<br />RTC-&gt;ALRMAR = RTC_ALRMAR_MSK4 | RTC_ALRMAR_MSK3<br />| RTC_ALRMAR_MSK2 | RTC_ALRMAR_MSK1; /* (4) */<br />RTC-&gt;CR = RTC_CR_ALRAIE | RTC_CR_ALRAE | RTC_CR_COE | RTC_CR_CALSEL; /* (5) */<br />RTC-&gt;WPR = 0xFE; /* (6) */<br />RTC-&gt;WPR = 0x64; /* (6) */<br /><br /><br />RTC -&gt; ISR |= RTC_ISR_INIT; // inicjalizacja RTC<br />while (!( RTC -&gt; ISR &amp; RTC_ISR_INITF));//czekamy aż inicjalizacja się rozpocznie<br />RTC -&gt; ALRMASSR = 0x0F000000;//kasowanie części setnych sekundy<br />RTC -&gt; TR = 0;<br />//alarm co sekundę, jest niezależny (prawie) od innych rzeczy<br />RTC -&gt; ALRMAR |= RTC_ALRMAR_MSK4|RTC_ALRMAR_MSK3|RTC_ALRMAR_MSK2|RTC_ALRMAR_MSK1;<br />RTC -&gt; CR |= RTC_CR_ALRAE|RTC_CR_ALRAIE;//odblokowanie przerwania dla alarmu<br />RTC -&gt; ISR &amp;= ~RTC_ISR_INIT;//wyjście z trybu inicjalizacji<br />NVIC_EnableIRQ(RTC_IRQn);//uruchomienie przerwania dla RTC<br />for(;;);<br />}<br /><br />__attribute__ ((interrupt)) void RTC_IRQHandler(void)<br />{<br />if((RTC-&gt;ISR &amp; RTC_ISR_RSF) == RTC_ISR_RSF)<br />{<br />if((RTC-&gt;ISR &amp; RTC_ISR_ALRAWF) != RTC_ISR_ALRAWF)<br />{<br />if(x==0)<br />{<br />GPIOC -&gt; BSRR |= GPIO_BSRR_BS_0;<br />GPIOC -&gt; BRR |= GPIO_BRR_BR_1;<br />x++;<br />}<br />else if(x==1)<br />{<br />GPIOC -&gt; BSRR |= GPIO_BSRR_BS_1;<br />GPIOC -&gt; BRR |= GPIO_BRR_BR_0;<br />x=0;<br />}<br />}<br />}<br />}[/syntax]<br /><br />Będę wdzięczny za wszelką pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5344">matti0010</a> — 27 mar 2016, o 21:12</p><hr />
]]></content>
</entry>
</feed>