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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-07-28T07:21:05+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=15831&amp;mode</id>
<entry>
<author><name><![CDATA[Sparrow-hawk]]></name></author>
<updated>2016-07-28T07:21:05+01:00</updated>
<published>2016-07-28T07:21:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164880#p164880</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164880#p164880"/>
<title type="html"><![CDATA[Re: STM32F103RB Zatrzymanie wyświetlania napisu w terminalu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164880#p164880"><![CDATA[
Ten, kod który wrzuciłeś, w ogóle się nie skompiluje. Pewnie dlatego, że w funkcji &quot;<strong>void EXTI15_10_IRQHandler()</strong>&quot; brakuje jednej klamry zamykającej. Pomijam, że brakuje instrukcji po drugim <strong>if</strong>, więc flaga przerwania zostanie wyzerowana, tylko wtedy, gdy na pinie wejściowym jest stan niski, oraz, że funkcja obsługi przerwania nie robi zupełnie nic, po za sprawdzeniem czy występuje stan niski na pinie.<br /><br />Patrząc na kod, czy to nie jest SPL?<br /><br /><div class="quotetitle">SunRiver napisał(a):</div><div class="quotecontent"><br />Jeśli Nie używasz :<br />tiny_printf() dostarczone przez newlib, ...<br /></div> Co ma wspólnego printf z tym kodem?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10614">Sparrow-hawk</a> — 28 lip 2016, o 07:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jitkino]]></name></author>
<updated>2016-07-27T20:42:28+01:00</updated>
<published>2016-07-27T20:42:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164863#p164863</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164863#p164863"/>
<title type="html"><![CDATA[Re: STM32F103RB Zatrzymanie wyświetlania napisu w terminalu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164863#p164863"><![CDATA[
fflush (stdout); <br />Wrzucić w while pod &quot;send_string&quot;?<br /><br />Wyrzuca mi błąd przy ostatnim nawiasie zamykającym maina, ale wszystko wydaje się ok z nawiasami.<br /><br />Dodałem inicjacje UART<br />[syntax=c]void send_char(char c)<br />{<br />        while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);<br />        USART_SendData(USART2, c);<br />}<br /> <br />void send_string(const char* s)<br />{<br />        while (*s)<br />                send_char(*s++);<br />}<br /> <br /> <br />void EXTI15_10_IRQHandler()<br />{<br />        int i=0;<br /> if (EXTI_GetITStatus(EXTI_Line13)) {<br /> if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == 0)<br /> <br /> <br /> <br /> <br />EXTI_ClearITPendingBit(EXTI_Line13);<br /> }<br /> <br /> <br />int main(void)<br />{<br /> EXTI_InitTypeDef exti;<br /> NVIC_InitTypeDef nvic;<br /> <br /> RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOC, ENABLE);<br /> RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);<br /><br /><br />USART_InitTypeDef uart;<br /><br /> RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE);<br /> RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);<br /> RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);<br /><br /> GPIO_StructInit(&amp;gpio);<br /> gpio.GPIO_Pin = GPIO_Pin_2;<br /> gpio.GPIO_Mode = GPIO_Mode_AF_PP;<br /> GPIO_Init(GPIOA, &amp;gpio);<br /><br /> gpio.GPIO_Pin = GPIO_Pin_3;<br /> gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;<br /> GPIO_Init(GPIOA, &amp;gpio);<br /><br /> USART_StructInit(&amp;uart);<br /> uart.USART_BaudRate = 9600;<br /> USART_Init(USART2, &amp;uart);<br /><br /> USART_Cmd(USART2, ENABLE);<br /> <br /> <br /> <br />gpio.GPIO_Pin = GPIO_Pin_13;<br /> gpio.GPIO_Mode = GPIO_Mode_IPU;<br /> GPIO_Init(GPIOC, &amp;gpio);<br /> <br /> GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);<br /> <br /> EXTI_StructInit(&amp;exti);<br /> exti.EXTI_Line = EXTI_Line13;<br /> exti.EXTI_Mode = EXTI_Mode_Interrupt;<br /> exti.EXTI_Trigger = EXTI_Trigger_Rising_Falling;<br /> exti.EXTI_LineCmd = ENABLE;<br /> EXTI_Init(&amp;exti);<br /> <br /> nvic.NVIC_IRQChannel = EXTI15_10_IRQn;<br /> nvic.NVIC_IRQChannelPreemptionPriority = 0x00;<br /> nvic.NVIC_IRQChannelSubPriority = 0x00;<br /> nvic.NVIC_IRQChannelCmd = ENABLE;<br /> NVIC_Init(&amp;nvic);<br /> <br /> while (1) {<br /> send_string(&quot;Hello world!\r\n&quot;);<br /> }<br />}[/syntax]<br /><br /><br />Przy ostatnim nawiasie mam error : &quot;error: expected declaration or statement at end of input&quot;<br /><br />Nie miałem 1. nawiasu zamkniętego.<br /><br />Teraz mam błąd:<br />[cc] C:\CooCox\CoIDE\workspace\ProjChip\cmsis_boot\startup/startup_stm32f10x_md.c:214: undefined reference to `main'<br />       [cc] collect2.exe: error: ld returned 1 exit status<br />Jakiś pomysł jak to rozwiązać?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10161">Jitkino</a> — 27 lip 2016, o 20:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2016-07-27T20:35:58+01:00</updated>
<published>2016-07-27T20:35:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164861#p164861</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164861#p164861"/>
<title type="html"><![CDATA[Re: STM32F103RB Zatrzymanie wyświetlania napisu w terminalu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164861#p164861"><![CDATA[
Jeśli Nie używasz :<br />tiny_printf()  dostarczone przez newlib, <br />to przyczyną może być sposób działania  printf() gdyż jest ono buforowane aż  zostanie odebrany znak CR/LF. <br />oczywiście Można zmusić pamięć do zwolnienia się poprzez: <br />fflush (stdout); <br />Sprawdz czy ci się ruszyło z flushem  printf() ?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br />CocoX Coide ostatnio się strasznie zepsuło <br />nie działa wiele rzeczy a wersja 2 wciąż jest niestabilną betą ...<br />i w zasadzie nie do użycia , może czas się przesiąść na TrueStudio <br />też za free i bez ograniczeń<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 27 lip 2016, o 20:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jitkino]]></name></author>
<updated>2016-07-27T20:24:06+01:00</updated>
<published>2016-07-27T20:24:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164860#p164860</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164860#p164860"/>
<title type="html"><![CDATA[Re: STM32F103RB Zatrzymanie wyświetlania napisu w terminalu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164860#p164860"><![CDATA[
Coś takiego napisałem ale nie działa. Dobrze kombinuję? <br /><br />[syntax=c]void send_char(char c)<br />{<br />while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);<br />USART_SendData(USART2, c);<br />}<br /><br />void send_string(const char* s)<br />{<br />while (*s)<br />send_char(*s++);<br />}<br /><br /><br />void EXTI15_10_IRQHandler()<br />{<br />int i=0;<br /> if (EXTI_GetITStatus(EXTI_Line13)) {<br /> if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == 0)<br /><br /><br /><br /><br />EXTI_ClearITPendingBit(EXTI_Line13);<br /> }<br /><br /><br />int main(void)<br />{<br /> GPIO_InitTypeDef gpio;<br /> EXTI_InitTypeDef exti;<br /> NVIC_InitTypeDef nvic;<br /><br /> RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOC, ENABLE);<br /> RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);<br /><br /><br /><br />gpio.GPIO_Pin = GPIO_Pin_13;<br /> gpio.GPIO_Mode = GPIO_Mode_IPU;<br /> GPIO_Init(GPIOC, &amp;gpio);<br /><br /> GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);<br /><br /> EXTI_StructInit(&amp;exti);<br /> exti.EXTI_Line = EXTI_Line13;<br /> exti.EXTI_Mode = EXTI_Mode_Interrupt;<br /> exti.EXTI_Trigger = EXTI_Trigger_Rising_Falling;<br /> exti.EXTI_LineCmd = ENABLE;<br /> EXTI_Init(&amp;exti);<br /><br /> nvic.NVIC_IRQChannel = EXTI15_10_IRQn;<br /> nvic.NVIC_IRQChannelPreemptionPriority = 0x00;<br /> nvic.NVIC_IRQChannelSubPriority = 0x00;<br /> nvic.NVIC_IRQChannelCmd = ENABLE;<br /> NVIC_Init(&amp;nvic);<br /><br /> while (1) {<br /> send_string(&quot;Hello world!\r\n&quot;);<br /> }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10161">Jitkino</a> — 27 lip 2016, o 20:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sparrow-hawk]]></name></author>
<updated>2016-07-25T07:24:33+01:00</updated>
<published>2016-07-25T07:24:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164685#p164685</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164685#p164685"/>
<title type="html"><![CDATA[Re: STM32F103RB Zatrzymanie wyświetlania napisu w terminalu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164685#p164685"><![CDATA[
Sprawdzanie stanu przycisku, za pomocą przerwania od zewnętrznego pinu to kiepski pomysł. Druga sprawa ten 'while' w procedurze przerwania? Pomijam już, że brakuje tam chyba dalszego ciągu.<br /><br /><div class="quotetitle">Jitkino napisał(a):</div><div class="quotecontent"><br />Jest ktoś w stanie podpowiedzieć jak zrealizować taki program?<br /></div><br />W pętli głównej odczytaj stan przycisku;<br />Jeżeli przycisk wciśnięty nie wysyłaj niczego, <br />w przeciwnym wypadku wyślij napis.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10614">Sparrow-hawk</a> — 25 lip 2016, o 07:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2016-07-22T15:10:28+01:00</updated>
<published>2016-07-22T15:10:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164535#p164535</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164535#p164535"/>
<title type="html"><![CDATA[Re: STM32F103RB Zatrzymanie wyświetlania napisu w terminalu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164535#p164535"><![CDATA[
Popraw wklejanie kodów ...<br /><br />bo tego się nie daje czytać , a zasady na forum jawnie mówią co i jak należy wstawiać <br /><br /><!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic14999.html" >topic14999.html</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 22 lip 2016, o 15:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jitkino]]></name></author>
<updated>2016-07-22T15:29:47+01:00</updated>
<published>2016-07-22T12:49:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164527#p164527</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164527#p164527"/>
<title type="html"><![CDATA[STM32F103RB Zatrzymanie wyświetlania napisu w terminalu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15831&amp;p=164527#p164527"><![CDATA[
Witam. Napisałem program w CooCox, który wyświetla napis w terminalu, chcę, żeby po wciśnięciu przycisku napis się nie wyświetlał, a gdy się puści przycisk napis znów był wyświetlany. <br /><br /><br />Mam taki kod napisany.<br />[syntax=c]void send_char(char c)<br />{<br />while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);<br />USART_SendData(USART2, c);<br />}<br /><br />void send_string(const char* s)<br />{<br />while (*s)<br />send_char(*s++);<br />}<br /><br />int main(void)<br />{<br />GPIO_InitTypeDef gpio;<br />USART_InitTypeDef uart;<br /><br />RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE);<br />RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);<br />RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);<br /><br />GPIO_StructInit(&amp;gpio);<br />gpio.GPIO_Pin = GPIO_Pin_2;<br />gpio.GPIO_Mode = GPIO_Mode_AF_PP;<br />GPIO_Init(GPIOA, &amp;gpio);<br /><br />gpio.GPIO_Pin = GPIO_Pin_3;<br />gpio.GPIO_Mode = GPIO_Mode_IN_FLOATING;<br />GPIO_Init(GPIOA, &amp;gpio);<br /><br />USART_StructInit(&amp;uart);<br />uart.USART_BaudRate = 9600;<br />USART_Init(USART2, &amp;uart);<br /><br />USART_Cmd(USART2, ENABLE);<br /><br />while (1) {<br />send_string(&quot;Napis\r\n&quot;);<br />}<br />}[/syntax]<br /><br />Teraz próbuję dopisać obsługę przycisku.<br />[syntax=c]void EXTI15_10_IRQHandler()<br />{<br />int i=0;<br /> if (EXTI_GetITStatus(EXTI_Line13)) {<br /> if (GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == 0) {<br /><br /> while(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13) == 0[/syntax]<br /><br />Jest ktoś w stanie podpowiedzieć jak zrealizować taki program?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10161">Jitkino</a> — 22 lip 2016, o 12:49</p><hr />
]]></content>
</entry>
</feed>