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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2021-08-11T10:58:53+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=23880&amp;mode</id>
<entry>
<author><name><![CDATA[adamma25]]></name></author>
<updated>2021-08-11T10:58:53+01:00</updated>
<published>2021-08-11T10:58:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233246#p233246</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233246#p233246"/>
<title type="html"><![CDATA[Re: Miganie diodą za pomocą UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233246#p233246"><![CDATA[
Stwórz jeszcze jedną zmienną, którą dobierzesz dane np. dat_act (dat_act=USART_receive() ) i sprawdź w warunku czy ma ona wartości z zakresu 1,2,3, jeśli tak to przepisz ja do zmiennej data.<br />If(dat_act==1  || dat_act==2 || dat_act==3) data=dat_act. I powinno być..<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21692">adamma25</a> — 11 sie 2021, o 10:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krawi92]]></name></author>
<updated>2021-08-08T21:00:57+01:00</updated>
<published>2021-08-08T21:00:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233226#p233226</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233226#p233226"/>
<title type="html"><![CDATA[Re: Miganie diodą za pomocą UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233226#p233226"><![CDATA[
Nie no racja, od wczoraj główkuje i nic nie mogę wymyśleć, jeszcze zbyt mało wiedzy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21771">krawi92</a> — 8 sie 2021, o 21:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jez2000]]></name></author>
<updated>2021-08-08T20:54:47+01:00</updated>
<published>2021-08-08T20:54:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233225#p233225</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233225#p233225"/>
<title type="html"><![CDATA[Re: Miganie diodą za pomocą UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233225#p233225"><![CDATA[
Odbierz ja do innej zmiennej i jezeli jest rowna 1 lub rowna 2 to wdedy ja przepisz do data<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11828">jez2000</a> — 8 sie 2021, o 20:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Adam12]]></name></author>
<updated>2021-08-08T20:52:15+01:00</updated>
<published>2021-08-08T20:52:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233224#p233224</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233224#p233224"/>
<title type="html"><![CDATA[Re: Miganie diodą za pomocą UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233224#p233224"><![CDATA[
<div class="quotetitle">krawi92 napisał(a):</div><div class="quotecontent"><br />Wywołałem w środku tej pętli funkcje USART_Receive(); to przestało działać tak jak powinno.<br /></div><br />No tak, funkcja USART_Receive() jest blokująca, więc jeśli nic nie wysyłałeś to dioda nie migała bo program czekał na jakieś znaki. Myślę, że na razie poprzestań na włączaniu wyłączaniu diody przez UART. Jak już nauczysz się korzystania z przerwań w USART to wszystko stanie się prostsze. Teraz te Twoje kombinacje sterowaniem mruganiem diodą, nawet w celach edukacyjnych, są bez sensu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16417">Adam12</a> — 8 sie 2021, o 20:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krawi92]]></name></author>
<updated>2021-08-08T20:39:29+01:00</updated>
<published>2021-08-08T20:39:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233223#p233223</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233223#p233223"/>
<title type="html"><![CDATA[Re: Miganie diodą za pomocą UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233223#p233223"><![CDATA[
Tak, jest to logiczne, po prostu kombinuje jakoś, żeby ten stan migania diodą został, póki nie nadejdzie zmiana.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21771">krawi92</a> — 8 sie 2021, o 20:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jez2000]]></name></author>
<updated>2021-08-08T20:30:07+01:00</updated>
<published>2021-08-08T20:30:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233222#p233222</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233222#p233222"/>
<title type="html"><![CDATA[Re: Miganie diodą za pomocą UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233222#p233222"><![CDATA[
Naciskasz przycisk 2, puszczasz, wysyla ci znak, trafia do zmiennej data i miga dioda. Nastepnie masz drogi przebieg petli i co wpada do data? Przycisk masz puszczony wiec nie wpadnie tam kolejna 2<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11828">jez2000</a> — 8 sie 2021, o 20:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krawi92]]></name></author>
<updated>2021-08-08T20:09:15+01:00</updated>
<published>2021-08-08T20:09:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233220#p233220</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233220#p233220"/>
<title type="html"><![CDATA[Re: Miganie diodą za pomocą UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233220#p233220"><![CDATA[
Zrobiłem tak, ale nadal mam efekt taki, że gdy wcisnę raz tylko '2' to dioda sie np: tylko zaświeci lub zgaśnie, nie miga. Żeby migała trzeba trzymać klawisz 2.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;stdint.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;avr/pgmspace.h&gt;<br />#include&lt;stdbool.h&gt;<br />#include &quot;UART/uart.h&quot;<br /><br />typedef uint16_t u16; // Zmiana nazwy typu zmiennych<br />typedef uint8_t u8;<br /><br /><br />unsigned char dane; // Zmienna przechowywujaca dane odbioru<br />    bool stanT=false;<br /><br />int main (){<br /><br /><br />DDRB |= (1&lt;&lt;PB6);// PB6 jako wyjscie<br />//PORTB |= (1&lt;&lt;PB6); // Stan wysoki na PB6<br /><br />//               inicjalizacja USART           //<br />USART_Start(UBRR_Value); //wartosc UBRR<br /><br /><br />while(1) {<br /><br />dane = USART_Receive();<br /><br />if (dane == '1') {<br />PORTB &amp;=~(1&lt;&lt;PB6);<br />}<br />    if (dane == '2') {<br />    stanT = true;<br />    }<br />    if (dane != '2') {<br />    stanT = false;<br />    }<br /><br />    if (stanT == true) {<br />    PORTB ^= (1&lt;&lt;PB6);<br />    _delay_ms(250);<br />    }<br /><br /><br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21771">krawi92</a> — 8 sie 2021, o 20:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krawi92]]></name></author>
<updated>2021-08-08T16:34:37+01:00</updated>
<published>2021-08-08T16:34:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233219#p233219</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233219#p233219"/>
<title type="html"><![CDATA[Re: Miganie diodą za pomocą UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233219#p233219"><![CDATA[
Nie wiem jak do tego podejść, tak się zakręciłem, że już sam nie wiem. Nawet nie wiem czy ta konstrukcja i pętla w pętli jest potrzebna. Wywołałem w środku tej pętli funkcje USART_Receive(); to przestało działać tak jak powinno. Chyba jeszcze nie ten etap na ogarnięcie tego<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;stdint.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;avr/pgmspace.h&gt;<br />#include &quot;UART/uart.h&quot;<br /><br />typedef uint16_t u16; // Zmiana nazwy typu zmiennych<br />typedef uint8_t u8;<br />unsigned char dane; // Zmienna przechowywujaca dane odbioru<br /><br />int main (){<br /><br /><br />DDRB |= (1&lt;&lt;PB6);// PB6 jako wyjscie<br />PORTB |= (1&lt;&lt;PB6); // Stan wysoki na PB6<br />//               inicjalizacja USART           //<br />USART_Start(UBRR_Value); //wartosc UBRR<br /><br /><br />while(1) {<br /><br />dane = USART_Receive(); // Dane odbioru do &quot;dane&quot;<br />    if (dane == '1') {<br />    PORTB&amp;=~(1&lt;&lt;PB6);<br />    }else if (dane == '2'){<br />    PORTB|=(1&lt;&lt;PB6);<br />    }else if (dane == '3'){<br />    PORTB ^=(1&lt;&lt;PB6);<br />    _delay_ms(250);<br /><br />    }<br /><br /> }<br />}[/syntax]<br /><br />Ten kod działa tak ok, tylko zeby migać diodą to muszę cały czas trzymać '3'. Żeby ona ciągle migała to musze to jakoś zapętlić i tu sie wszystko zaczyna :/<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21771">krawi92</a> — 8 sie 2021, o 16:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Adam12]]></name></author>
<updated>2021-08-08T15:22:34+01:00</updated>
<published>2021-08-08T15:22:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233217#p233217</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233217#p233217"/>
<title type="html"><![CDATA[Re: Miganie diodą za pomocą UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233217#p233217"><![CDATA[
A jak ma wyjść z pętli skoro nie pobierasz nowych danych z UART? Cały czas w zmiennej &quot;dane&quot; masz '2' i warunek jest cały czas spełniony.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16417">Adam12</a> — 8 sie 2021, o 15:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krawi92]]></name></author>
<updated>2021-08-08T13:30:26+01:00</updated>
<published>2021-08-08T13:30:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233215#p233215</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233215#p233215"/>
<title type="html"><![CDATA[Miganie diodą za pomocą UART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23880&amp;p=233215#p233215"><![CDATA[
Hej, bawię się teraz odbiorem danych, wrzuciłem funkcje odbierania pojedynczego znaku i za pomocą prostych instrukcji np: steruje stanem na pinach. Pomyślałem, że jak wcisne 1 to mam zgasić diode(bo domyslnie po wystartowaniu świeci) a jak wcisnę 2 to ma migać za pomocą operacji XOR. Problem teraz jest taki, że gdy właśnie ona miga cały czas, to program juz nie reaguje na inne dane. Widać, że konwenter pracuje, dane dopływają, jednak instrukcje się nie wykonują. Próbowałem coś zrobić za pomocą polecenia break; ale lipa. Juz probowalem kilka wariantów, ale ciągle utykam w pętli. Ktoś poradzi co robię źle ? Dodam, że działanie tego programu po prostu sobie sam wymyśliłem,ale nie sadziłem, że stworzy to taki problem dla mnie<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;stdint.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;avr/pgmspace.h&gt;<br />#include &quot;UART/uart.h&quot;<br /><br />typedef uint16_t u16; // Zmiana nazwy typu zmiennych<br />typedef uint8_t u8;<br /><br />char dane; // Zmienna przechowywujaca dane odbioru<br /><br />int main (){<br /><br />DDRB |= (1&lt;&lt;PB6);// PB6 jako wyjscie<br />PORTB |= (1&lt;&lt;PB6); // Stan wysoki na PB6<br />  <br /> //               inicjalizacja USART           //<br />USART_Start(UBRR_Value); //wartosc UBRR<br />  while(1) {<br /><br />dane = USART_Receive(); // Dane odbioru do &quot;dane&quot;<br /><br />if (dane == '1') { // Jesli znak to 1<br />PORTB &amp;=~(1&lt;&lt;PB6);  // Zgas diode<br /><br />}else if (dane == '2') { // Jesli znak to 2<br />while(dane == '2') { // wykonuj petle dopoki znak to 2<br />PORTB ^= (1&lt;&lt;PB6); // migaj dioda co 250ms<br />_delay_ms(250);<br />if (!(dane == '2')) break; // Jesli znak bedzie inny opusc petle<br />    }<br />}<br /><br /><br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21771">krawi92</a> — 8 sie 2021, o 13:30</p><hr />
]]></content>
</entry>
</feed>