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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-09-24T14:51:11+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=16288&amp;mode</id>
<entry>
<author><name><![CDATA[skalarro]]></name></author>
<updated>2016-09-24T14:51:11+01:00</updated>
<published>2016-09-24T14:51:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169498#p169498</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169498#p169498"/>
<title type="html"><![CDATA[Re: Wyświetlanie napisu w terminalu po wciśnięciu 10s klawis]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169498#p169498"><![CDATA[
Nie możesz podejść tak, że sprawdzasz czy klawisz wciśnięty i czekasz 10 sek i sprawdzasz drugi raz. A co jak po sprawdzeniu puścisz klawisz i przed upłynięciem 10 sekund ponownie nadusisz?? program sprawdzi dwa razy że klawisz wduszony i wykona warunek.<br /><br />sprawdzaj częściej kalwisz, najlepiej cały czas a co na 1sek zwiększasz zmienną pomocniczą. Po dojściu zmiennej do 10 wykonuje  się warunek a po każdym puszczeniu klawisza zmienna zostaje wyzerowana i liczy od nowa...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4850">skalarro</a> — 24 wrz 2016, o 14:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jitkino]]></name></author>
<updated>2016-09-24T14:41:28+01:00</updated>
<published>2016-09-24T14:41:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169497#p169497</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169497#p169497"/>
<title type="html"><![CDATA[Re: Wyświetlanie napisu w terminalu po wciśnięciu 10s klawis]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169497#p169497"><![CDATA[
Chcę, aby po wciśnięciu klawisza i przytrzymaniu przez 10 sekund wysyłany był napis do terminala.<br /><br />if(klawisz wcisniety) { delay(10s)} if(klawisz nadal wcisniety ) {wyslij napis();}<br /><br />Chcę, sprawdzić czy klawisz jest wciśnięty i po 10 sekundach sprawdzić znowu czy klawisza jest nadal wciśnięty, następnie wysłać wtedy napis do terminala.<br /><br />[syntax=c]PressActive = true;<br />if(PressActive == true)<br />{<br />send_string(&quot;Wcisnieto klawisz A\r\n&quot;);<br />}<br /><br /><br />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 = 115200;<br />//115200<br />USART_Init(USART2, &amp;uart);<br /><br />USART_Cmd(USART2, ENABLE);<br /><br /><br />while (1) {<br />if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE)) {<br />   char c = USART_ReceiveData(USART2);<br />   switch (c)<br />        {<br />        case 'a':<br />        delay(10);<br />                    if (PressActive == true);<br />               <br />        send_string(&quot;Wcisnieto klawisz A\r\n&quot;);<br />        <br />                break;<br />        <br />    }<br />}<br /><br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10161">Jitkino</a> — 24 wrz 2016, o 14:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[skalarro]]></name></author>
<updated>2016-09-24T14:32:39+01:00</updated>
<published>2016-09-24T14:32:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169496#p169496</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169496#p169496"/>
<title type="html"><![CDATA[Re: Wyświetlanie napisu w terminalu po wciśnięciu 10s klawis]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169496#p169496"><![CDATA[
Troszeczkę w dobrym kierunku ale nie do końca...<br /><br />co to jest delay(10)?<br />Pomijając to, że blokujesz procka na 10 czegoś - sekund?? za każdym obiegiem pętli to niemożliwe jest trafić na takt zegara w którym akurat jest sprawdzany warunek press active - nie pokazujesz nawet jak go sprawdzasz i gdzie...<br /><br />Zastanów się co będzie jak nadusisz klawisz, po sekundzie go puścisz i za np siedem sekund znów przytrzymasz... Będzie nic. Tak jakbyś go cały czas trzymał.<br /><br />Ale najpierw pokaż więcej kody bo te strzępy to trochę mało... Albo daj jakieś założenia - co ustawia to pressActive, gdzie, kiedy <br /><br />I pamiętaj -DELAJE TO ZŁOOOOO<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4850">skalarro</a> — 24 wrz 2016, o 14:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jitkino]]></name></author>
<updated>2016-09-24T14:19:33+01:00</updated>
<published>2016-09-24T14:19:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169495#p169495</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169495#p169495"/>
<title type="html"><![CDATA[Re: Wyświetlanie napisu w terminalu po wciśnięciu 10s klawis]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169495#p169495"><![CDATA[
Dzięki za pomoc.<br /><br />        case 'a':<br />        delay(10);<br />                    if (PressActive == true);<br /><br />Chcę, żeby po wciśnięciu a przez 10 sekund, w terminalu wyświetlił się napis. <br /><br />case 'a': // po wciśnięciu a<br />delay(10); //przez 10 sekund<br />     if (PressActive == true); // tutaj chcę sprawdzić czy po 10 sekundach klawisza 'a' jest nadal wciśnięty. <br />i wtedy wysyłać ten napis do terminala<br />send_string(&quot;Wcisnieto klawisz A\r\n&quot;);<br /><br />Dobrze kombinuję? <br /><br />Czyli bym musiał wpisać coś takiego?<br />bool PressActive = true;<br />if(PressActive == true)<br />{<br />send_string(&quot;Wcisnieto klawisz A\r\n&quot;);<br />}<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10161">Jitkino</a> — 24 wrz 2016, o 14:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[misiulu]]></name></author>
<updated>2016-09-24T14:03:20+01:00</updated>
<published>2016-09-24T14:03:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169494#p169494</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169494#p169494"/>
<title type="html"><![CDATA[Re: Wyświetlanie napisu w terminalu po wciśnięciu 10s klawis]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169494#p169494"><![CDATA[
<div class="quotetitle">Jitkino napisał(a):</div><div class="quotecontent"><br />Ale wyrzuca mi błąd.<br />error: 'PressActive' undeclared (first use in this function)<br /></div><br /><br />Jak sam kompilator Ci podpowiada nie masz zadeklarowanej zmiennej PressActive.<br /><br />Musisz przed użyciem jej w &quot;if (PressActive = true);&quot; zadeklarować ją, czyli podać jej typ i wartość początkową jeżeli nie jest to zmienna globalna.<br /><br />Dodatkowo dziwny jest ten warunek PressActive = true bo chce przypisać on wartość true do zmiennej zamiast sprawdzić czy ona się równa true czyli powinien być operator porównania == według mnie.<br /><br />W część merytoryczną nie zagłębiałem się <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />heh koledzy mnie ubiegli - prędkość światła <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=4068">misiulu</a> — 24 wrz 2016, o 14:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[skalarro]]></name></author>
<updated>2016-09-24T14:01:14+01:00</updated>
<published>2016-09-24T14:01:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169493#p169493</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169493#p169493"/>
<title type="html"><![CDATA[Re: Wyświetlanie napisu w terminalu po wciśnięciu 10s klawis]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169493#p169493"><![CDATA[
kompilator nie wie co to press active. i słusznie bo ja też nie wiem.  To zmienna?? funkcja, której nie pokazałeś??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4850">skalarro</a> — 24 wrz 2016, o 14:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anonimg3]]></name></author>
<updated>2016-09-24T14:01:23+01:00</updated>
<published>2016-09-24T14:00:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169492#p169492</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169492#p169492"/>
<title type="html"><![CDATA[Re: Wyświetlanie napisu w terminalu po wciśnięciu 10s klawis]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169492#p169492"><![CDATA[
Przecież ten błąd wyraźnie mówi, że nie masz zdeklarowanej zmiennej &quot;PressActive&quot;. Zdeklaruj ją na początku jako zmienna typu bool i chyba powinno być &quot;PressActive == true&quot; zamiast &quot;PressActive = true&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8904">anonimg3</a> — 24 wrz 2016, o 14:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jitkino]]></name></author>
<updated>2016-09-24T13:26:29+01:00</updated>
<published>2016-09-24T13:26:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169490#p169490</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169490#p169490"/>
<title type="html"><![CDATA[Wyświetlanie napisu w terminalu po wciśnięciu 10s klawisza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16288&amp;p=169490#p169490"><![CDATA[
Witam. <br />Chcę, żeby po wciśnięciu i przytrzymaniu przez 10 sekund klawisza na klawiaturze w terminalu wyświetlił się dany napis. <br /><br /><br />Ale wyrzuca mi błąd. <br />error: 'PressActive' undeclared (first use in this function) <br /><br />Jest ktoś w stanie podpowiedzieć jak to rozwiązać? <br /><br /><br />[syntax=c]#define true  1 <br />#define false 0 <br /><br /><br />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 = 115200; <br />    //115200 <br />    USART_Init(USART2, &amp;uart); <br /><br />    USART_Cmd(USART2, ENABLE); <br /><br /><br />        while (1) { <br />        if (USART_GetFlagStatus(USART2, USART_FLAG_RXNE)) { <br />           char c = USART_ReceiveData(USART2); <br />           switch (c) <br />                    { <br />                case 'a': <br />                    delay(100); <br />                    if (PressActive = true); <br />                <br />                    send_string(&quot;Wcisnieto klawisz A\r\n&quot;); <br />                    <br />                                        break; <br />                <br />            } <br />        } <br /><br />    } <br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10161">Jitkino</a> — 24 wrz 2016, o 13:26</p><hr />
]]></content>
</entry>
</feed>