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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-07-06T17:42:01+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=15701&amp;mode</id>
<entry>
<author><name><![CDATA[dzikidziku]]></name></author>
<updated>2016-07-06T17:42:01+01:00</updated>
<published>2016-07-06T17:42:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163524#p163524</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163524#p163524"/>
<title type="html"><![CDATA[Re: Odbiór i przesył danych RS232 - aplikacja C#]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163524#p163524"><![CDATA[
O mamo... były 2 różne prędkości ustawione... prędzej używałem 230,4k i taka została w aplikacji zapisana na sztywno, natomiast w bibliotece UARTU ustawiłem 115,2k. Że też na to nie wpadłem... mistrz fail'u bardzo przeprasza <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />W ramach rehabilitacji oczywiście zostawiam kod z aplikacji, może się komuś w przyszłości przyda:<br /><br />[syntax=csharp]public partial class Form1 : Form<br />    {<br />        public Form1()<br />        {<br />            InitializeComponent();<br />            Rich1.Text = &quot;Wysłany:\n&quot;;<br />            Rich2.Text = &quot;Odebrany:\n&quot;;<br />        }<br /><br /><br />        private void button1_Click(object sender, EventArgs e)<br />        {<br />            if (!SerialPort1.IsOpen)<br />            {<br />                SerialPort1.Open(); // parametry transmisji ustawione na sztywno<br />                SerialPort1.DiscardInBuffer();<br />                button1.Enabled = false;<br />            }<br />        }<br /><br />        byte index = 0; // Uwaga! &quot;0&quot; nie zostanie wyświetlone przy wykorzystaniu biblioteki z BB.<br />        byte first_byte;<br /><br />        private void checkBox1_CheckedChanged(object sender, EventArgs e)<br />        {<br />            byte&#91;&#93; ch = new byte&#91;1&#93;;<br />            ch&#91;0&#93; = index;<br />            SerialPort1.Write(ch, 0, 1);<br />            // wysyłanie indexu do uC<br /><br />            if (index &lt; 255) index++;<br />            else index = 0;<br />        }<br /><br />        private void SerialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)<br />        {<br />            first_byte = (byte)SerialPort1.ReadByte(); // odczyt danych<br />            <br />            this.Invoke(new EventHandler(display));<br />        }<br />        private void display(object o, EventArgs e)<br />        {<br />            Rich2.Text += ((first_byte).ToString() + '\n'); // wyświetlenie danych odebranych<br />            Rich1.AppendText((index - 1).ToString() + '\n'); // wyświetlenie danych wysłanych<br />        }<br />    }[/syntax]<br /><br />Dzięki wielkie za pomoc! <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=13388">dzikidziku</a> — 6 lip 2016, o 17:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Situs]]></name></author>
<updated>2016-07-06T14:33:39+01:00</updated>
<published>2016-07-06T14:33:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163515#p163515</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163515#p163515"/>
<title type="html"><![CDATA[Re: Odbiór i przesył danych RS232 - aplikacja C#]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163515#p163515"><![CDATA[
Jaką masz prendkośc?Daj cały listing ok?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14339">Situs</a> — 6 lip 2016, o 14:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dzikidziku]]></name></author>
<updated>2016-07-06T10:50:11+01:00</updated>
<published>2016-07-06T10:50:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163512#p163512</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163512#p163512"/>
<title type="html"><![CDATA[Re: Odbiór i przesył danych RS232 - aplikacja C#]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163512#p163512"><![CDATA[
Aż wstyd się przyznać, ale nie zainicjalizowałem uartu ani nie uruchomiłem przerwań.. Teraz pytanie czemu dane się czasami pojawiały, bo gdyby było inaczej to pewnie bym się domyślił co jest nie tak.. W każdym razie nie ważne.<br /><br />Napisałem coś takiego:<br />[syntax=c]uint8_t data_in;<br /><br />while(1)<br />{<br />data_in = uart_getc(); //odbierz znak<br /><br />if (data_in) // jeśli nie jest równe 0<br />{<br />uart_putc(data_in); //wyślij odebrany znak<br />}<br />}[/syntax]<br /><br />oraz:<br />[syntax=csharp]byte index = 0;<br />        byte first_byte;<br /><br />        private void checkBox1_CheckedChanged(object sender, EventArgs e)<br />        {<br />            byte&#91;&#93; ch = new byte&#91;1&#93;;<br />            ch&#91;0&#93; = index;<br />            SerialPort1.Write(ch, 0, 1);<br />            // wysyłanie indexu do uC<br /><br />            if (index &lt; 255) index++;<br />            else index = 0;<br />        }<br /><br />        private void SerialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)<br />        {<br />            first_byte = (byte)SerialPort1.ReadByte(); // odczyt danych<br />            <br />            this.Invoke(new EventHandler(display));<br />        }<br />        private void display(object o, EventArgs e)<br />        {<br />            Rich2.Text += ((first_byte).ToString() + '\n'); // wyświetlenie danych odebranych<br />            Rich1.AppendText((index - 1).ToString() + '\n'); // wyświetlenie danych wysłanych<br />        }[/syntax]<br /><br />No i tu pojawia się kolejna niespodzianka, z którą aktualnie walczę:<br /><a href="https://obrazkiforum.atnel.pl/13388/71e56de18d71a0461123dffd4eb5afc1.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/13388/71e56de18d71a0461123dffd4eb5afc1.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13388">dzikidziku</a> — 6 lip 2016, o 10:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[drewpol]]></name></author>
<updated>2016-07-05T19:44:14+01:00</updated>
<published>2016-07-05T19:44:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163485#p163485</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163485#p163485"/>
<title type="html"><![CDATA[Re: Odbiór i przesył danych RS232 - aplikacja C#]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163485#p163485"><![CDATA[
Spróbuj wysłać dane tak:<br />[syntax=c]uart_putc(c);<br />uart_putc('\n');[/syntax]<br /><br />A potem odbierać dane w C# tak:<br />[syntax=csharp]first_byte = (byte)SerialPort1.ReadTo('\n'); // odczyt danych[/syntax]<br />albo:<br />[syntax=csharp]first_byte = (byte)SerialPort1.ReadLine(); // odczyt danych[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8379">drewpol</a> — 5 lip 2016, o 19:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dzikidziku]]></name></author>
<updated>2016-07-02T16:53:24+01:00</updated>
<published>2016-07-02T16:53:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163259#p163259</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163259#p163259"/>
<title type="html"><![CDATA[Odbiór i przesył danych RS232 - aplikacja C#]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15701&amp;p=163259#p163259"><![CDATA[
Cześć!<br /><br />Mam problem, niestety dokładnie nie wiem co może być jego przyczyną. Mianowicie próbuję wysłać 2 bajty do uC, odebrać je i wysłać do komputera. <br /><br />ATmega:<br />[syntax=c]while (1)<br />{<br />char c = uart_getc();<br />uart_putc(c);<br />}[/syntax]<br /><br />Aplikacja:<br />[syntax=csharp]private void checkBox1_CheckedChanged(object sender, EventArgs e) //zdarzenie obsługujące wysyłanie danych<br />        {<br />            byte&#91;&#93; send_bytes = { 255, 255 };<br />            SerialPort1.Write(send_bytes, 0, 2); // wysłanie danych do uC<br />        }<br /><br />        byte first_byte;<br /><br />        private void SerialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)<br />        {<br />            <br />            first_byte = (byte)SerialPort1.ReadByte(); // odczyt danych<br /><br />            this.Invoke(new EventHandler(display));<br />        }<br />        private void display(object o, EventArgs e)<br />        {<br />            Rich2.AppendText(first_byte.ToString()); // wyświetlenie danych odebranych<br />        }[/syntax]<br /><br />No i na Rich2 wyświetla mi coś takiego (po wielu kliknięciach na checkboxa): <br /><a href="https://obrazkiforum.atnel.pl/13388/517bf27adf59c399a0a992abe77e1c3d.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/13388/517bf27adf59c399a0a992abe77e1c3d.png" alt="Obrazek" /></a><br /><br />Dodatkowo owe bajty przychodzą w bardzo dziwny sposób, to znaczy po wykonaniu zdarzenia checkBox1_CheckedChanged, pokazują się np. 2 bajty, 8 bajtów, 0 bajtów...<br /><br />Oczywiście chcę, żeby po każdym wykonaniu zdarzenia pokazało się 2x 255.<br /><br />Z góry dzięki za pomoc!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13388">dzikidziku</a> — 2 lip 2016, o 16:53</p><hr />
]]></content>
</entry>
</feed>