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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-04-12T17:14:39+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=2850&amp;mode</id>
<entry>
<author><name><![CDATA[stopa]]></name></author>
<updated>2013-04-12T17:14:39+01:00</updated>
<published>2013-04-12T17:14:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34196#p34196</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34196#p34196"/>
<title type="html"><![CDATA[Re: Problem z komunikacją pomiędzy BTM a Atmegą32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34196#p34196"><![CDATA[
ale jestem głupi, przyczyną błędu były źle podpięte wyprowadzenia Txd i Rxd. Zamieniłem je miejscami i bez problemu migam diodami <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> . Dzięki za próbę pomocy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1097">stopa</a> — 12 kwi 2013, o 17:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stopa]]></name></author>
<updated>2013-04-12T14:04:04+01:00</updated>
<published>2013-04-12T14:04:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34174#p34174</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34174#p34174"/>
<title type="html"><![CDATA[Re: Problem z komunikacją pomiędzy BTM a Atmegą32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34174#p34174"><![CDATA[
tak, telefon jest sparowany. Tak jak pisałem widzę przychodzące znaki '1' i '0' na terminalu, gdy każe wysłać aplikacji znak z telefonu. Jak wysyłam znak to miga czerwona dioda TXD na zestawie uruchomieniowym - jedyna reakcja jaką mi się udaje uzyskać <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Edycja:<br />Tak, dioda na BTmie po połączeniu z telefonem świeci cały czas.<br /><br />Edycja2:<br />Zauważyłem, że po skasowaniu programu z mikrokontrolera przy wpisywaniu komend do terminala nie pojawiają się żadne krzaki. Natomiast po wgraniu programu co drugi znak to 'krzaczek'. Tak powinno być?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1097">stopa</a> — 12 kwi 2013, o 14:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xamrex]]></name></author>
<updated>2013-04-12T13:39:26+01:00</updated>
<published>2013-04-12T13:39:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34170#p34170</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34170#p34170"/>
<title type="html"><![CDATA[Re: Problem z komunikacją pomiędzy BTM a Atmegą32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34170#p34170"><![CDATA[
<div class="quotetitle">stopa napisał(a):</div><div class="quotecontent"><br />ak jak pisałem po zwykłym kablu wysyłam z terminala '1' i '0' i dioda zmienia swój stan.<br /></div><br />Więc problem na 100% w apce na androida <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> albo ze spraowaniem<br /><br />Czy sparowałeś się z BTM poprzez telefon?<br />Dioda na module BTM miga albo świeci?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=74">xamrex</a> — 12 kwi 2013, o 13:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stopa]]></name></author>
<updated>2013-04-12T11:38:05+01:00</updated>
<published>2013-04-12T11:38:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34167#p34167</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34167#p34167"/>
<title type="html"><![CDATA[Re: Problem z komunikacją pomiędzy BTM a Atmegą32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34167#p34167"><![CDATA[
Mirek,<br />wiem, że powinienem dać input=USART_Receive(); , ale input=UDR; to efekt tego, że próbowałem kilku rozwiązań <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> . Tak jak pisałem po zwykłym kablu wysyłam z terminala '1' i '0' i dioda zmienia swój stan.<br /><br />Temat o RS232 czytałem, na razie chciałem spróbować prostej transmisji bez buforów, tylko do celów testowych.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1097">stopa</a> — 12 kwi 2013, o 11:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-04-12T11:03:13+01:00</updated>
<published>2013-04-12T11:03:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34157#p34157</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34157#p34157"/>
<title type="html"><![CDATA[Re: Problem z komunikacją pomiędzy BTM a Atmegą32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34157#p34157"><![CDATA[
No pięknie pięknie - zrobiłeś sobie &quot;piękny&quot; program na AVR w którym nawet zrobiłeś sobie funkcję<br /><br />USART_Receive()<br /><br />a potem BACH!!! i w pętli głównej widzimy:<br /><br />input = UDR;<br /><br />widać, że jeszcze chyba hmmm może nigdy (zgaduję tylko) nie zajmowałeś się w ogóle zwykłą transmisją RS232 albo tylko tak po łepkach na zasadzie że coś &quot;uda się albo nie uda&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ... stąd twoje problemy <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br />ja proponuję ci NAJPIERW napisać sobie program testowy do AVR'a tak żeby mógł się komunikować np z terminalem w komputerze PC i żeby poprawnie odbierał to co wysyłasz w każdej sytuacji, ale uwaga - PO ZWYKŁYM KABLU (byle jakim kablu ale kablu) - zapomnij na razie o Bluetooth .... ponieważ BT na tym etapie to dla ciebie tylko kolejny ogromny problem i kolejna niewiadoma. Powiedz mi czy czytałeś dokładnie rozdział o buforach cyklicznych z tej książki ?<br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />to sporo wyjaśni<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 12 kwi 2013, o 11:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[stopa]]></name></author>
<updated>2013-04-12T09:53:50+01:00</updated>
<published>2013-04-12T09:53:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34150#p34150</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34150#p34150"/>
<title type="html"><![CDATA[Problem z komunikacją pomiędzy BTM a Atmegą32]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2850&amp;p=34150#p34150"><![CDATA[
Witam,<br />od pewnego czasu staram się skomunikować za pomocą aplikacji na androida napisanej według poradnika na tym forum, a moją Atmegą 32. Napiszę na jakim etapie jestem:<br />-gdy wysyłam znaki z telefonu to wyświetlają się na terminalu. Na zestawie uruchomieniowym przy wysyłaniu zaczyna migać czerwona dioda TXD. Problem polega na tym, że Atmega32 nie reaguje na te znaki. Napisałem prosty program na nią, który ma zapalić lub zgasić diodę po dostaniu znaku 1 lub 0.<br />-gdy wpisuję ręcznie na klawiaturze znaki 1 i 0 do terminala to stan diody zmienia się, więc wydaje mi się, że program na Atmegę działa.<br /><br />I tu pojawia się mój problem, bo teoretycznie i program na telefon i program na atmegę są napisane poprawnie, ale nic się nie dzieje, gdy próbuję wysłać bezpośrednio znak 1 lub 0 do mikrokontrolera. <br />Próbowałem prędkości 19200 i 4800, taktowanie procesora to 8MGHz. Prosiłym o jakieś wskazówki, bo nie mam pomysłu co może być nie tak. <br /><br /><span style="color: #FF0000">Kody wstawiamy przy pomocy syntax=c- Zielony J.</span><br /><br /><br />Program na AVR:<br />[syntax=c]#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/io.h&gt;<br /><br /><br />#define UART_BAUD 4800              // ustalamy prędkość przesyłania danych<br />#define _UBRR (F_CPU/16/UART_BAUD-1) // obliczamy UBRR dla U2X=0 str.143 DS<br />// DS = DataSheet<br /><br /><br /><br />// kalibracja RS232<br />void USART_Init( uint16_t baud )<br />{<br />// ustawienie prędkości<br />UBRRH = (uint8_t)(baud&gt;&gt;8);<br />UBRRL = (uint8_t)baud;<br /><br />// włączenie nadajnika i odbiornika<br />UCSRB = (1&lt;&lt;RXEN)|(1&lt;&lt;TXEN);<br /><br />// ustawienie formatu ramki na: 8bitów danych, brak bitu parzystości, 1 bit stopu. STR.162 DS<br />UCSRC = (1&lt;&lt;URSEL)|(3&lt;&lt;UCSZ0);<br />}<br /><br /><br />// funkcja nadająca bajty STR.147 DS<br />void USART_Transmit( unsigned char data )<br />{<br />/* Wait for empty transmit buffer */<br />while ( !( UCSRA &amp; (1&lt;&lt;UDRE)) );<br />/* Put data into buffer, sends the data */<br />UDR = data;<br />}<br /><br /><br />// funkcja odbierająca bajty STR.150 DS<br />unsigned char USART_Receive( void )<br />{<br />/* Wait for data to be received */<br />while ( !(UCSRA &amp; (1&lt;&lt;RXC)) )<br />;<br />/* Get and return received data from buffer */<br />return UDR;<br />}<br /><br />int main(){<br /> DDRB |= (1&lt;&lt;PB0);<br /> USART_Init( _UBRR );<br /> char input;<br /> PORTB &amp;= ~(1&lt;&lt;PB0);<br /><br /> while(1){<br />     input = UDR;<br /><br />     if(input == '1' ) PORTB |= (1&lt;&lt;PB0);<br />     else<br />     if(input == '0' ) PORTB &amp;= ~(1&lt;&lt;PB0);<br /> }<br /> }[/syntax]<br />  <br /><br />Program na telefon:<br />[syntax]Sub Process_Globals<br /><br /><br />End Sub<br /><br />Sub Globals<br /><br />Dim Button1 As Button<br />Dim Label1 As Label<br />Dim ProgressBar1 As ProgressBar<br />Dim Timer1 As Timer<br />Dim Timer2 As Timer<br />Dim Timer3 As Timer<br />Dim Timer4 As Timer<br />Dim Rotacja As Phone<br />Dim Adapter As Serial<br />Dim Ekran As PhoneWakeState<br />Dim Nazwa As String<br />Dim Adres As String<br />Dim Flaga As Boolean<br />Dim Timeout As Int<br />Dim EditText1 As EditText<br />Dim Button2 As Button<br />Dim Label2 As Label<br />Dim SeekBar1 As SeekBar<br />Dim SeekBar2 As SeekBar<br />Dim SeekBar3 As SeekBar<br />Dim Val1 As String<br />Dim Val2 As String<br />Dim Val3 As String<br />    Dim Strumien As AsyncStreams<br />Dim Nadawanie As Boolean<br />Dim Odebrane As String<br />Dim Suwak1 As Int<br />    Dim Suwak2 As Int<br />Dim Suwak3 As Int<br />Dim Zmiana As Boolean<br />Dim Zmiana2 As Boolean<br />End Sub<br /><br />Sub Activity_Create(FirstTime As Boolean)<br />    Activity.LoadLayout(&quot;final&quot;)<br />Activity.Title=&quot;Bluetooth&quot;<br />Rotacja.SetScreenOrientation(1)<br />Ekran.KeepAlive(True)<br />    <br />Button1.Top=0<br />Button1.Left=0<br />Button1.Width=Activity.Width<br />Button1.Height=Activity.Height/9<br />Button1.TextSize=Activity.Height/9/5<br /><br />Label1.Left=0<br />Label1.Width=Activity.Width<br />Label1.Height=Activity.Height/9<br />Label1.Top=(Activity.Height/9)*1<br />Label1.TextSize=Activity.Height/9/4<br />Label1.Gravity = Gravity.CENTER_HORIZONTAL + Gravity.CENTER_VERTICAL<br /><br />ProgressBar1.Visible=False<br />ProgressBar1.Height=Activity.Height/9<br />ProgressBar1.Progress=0<br />ProgressBar1.Left=0<br />ProgressBar1.Top=(Activity.Height/9)*2<br />ProgressBar1.Width=Activity.Width<br /><br />EditText1.Width=Activity.Width<br />EditText1.Height=Activity.Height/8<br />EditText1.Top=(Activity.Height/9)*2<br />EditText1.TextSize=Activity.Height/9/4<br />EditText1.Visible=False<br />EditText1.Left=0<br />EditText1.InputType=EditText1.INPUT_TYPE_NUMBERS<br />EditText1.Hint=&quot;maksymalnie 1 znak&quot;<br />EditText1.Gravity=Gravity.CENTER_HORIZONTAL+Gravity.CENTER_VERTICAL<br /><br />Button2.Height=Activity.Height/9<br />Button2.Width=Activity.Height/7<br />Button2.Left=(Activity.Width-Activity.Height/7)/2<br />Button2.Gravity=Gravity.CENTER_HORIZONTAL+Gravity.CENTER_VERTICAL<br />Button2.TextSize=Activity.Height/9/5<br />Button2.Text=&quot;Wyślij&quot;<br />    Button2.Top=(Activity.Height/9)*3<br />Button2.Visible=False<br /><br />SeekBar1.Width=Activity.Width<br />SeekBar1.Height=Activity.Height/9<br />SeekBar1.Top=(Activity.Height/9)*4<br />SeekBar1.Left=0<br />SeekBar1.Max=999<br />SeekBar1.Value=0<br /><br />SeekBar2.Width=Activity.Width<br />SeekBar2.Height=Activity.Height/9<br />SeekBar2.Top=(Activity.Height/9)*5<br />SeekBar2.Left=0<br />SeekBar2.Max=999<br />SeekBar2.Value=0<br /><br />SeekBar3.Width=Activity.Width<br />SeekBar3.Height=Activity.Height/9<br />SeekBar3.Top=(Activity.Height/9)*6<br />SeekBar3.Left=0<br />SeekBar3.Max=999<br />SeekBar3.Value=0<br /><br />Label2.Left=0<br />Label2.Width=Activity.Width<br />Label2.Height=Activity.Height/9<br />Label2.Top=(Activity.Height/9)*7<br />Label2.TextSize=Activity.Height/9/4<br />Label2.Gravity = Gravity.CENTER_HORIZONTAL + Gravity.CENTER_VERTICAL<br />Label2.Text=Suwak1 &amp; Suwak2 &amp; Suwak3<br /><br />Timer1.Initialize(&quot;Timer1&quot;,100)<br />Timer1.Enabled=True<br />Timer2.Initialize(&quot;Timer2&quot;,100)<br />Timer2.Enabled=False<br />Timer3.Initialize(&quot;Timer3&quot;, 100)<br />Timer3.Enabled=True<br />Timer4.Initialize(&quot;Timer4&quot;, 100)<br />Timer4.Enabled=False<br /><br />Nazwa=&quot;&quot;<br />Adres=&quot;&quot;<br /><br />Timeout=0<br /><br />Flaga=False<br /><br />Adapter.Initialize(&quot;Adapter&quot;)<br /><br />Nadawanie=True<br /><br />Odebrane=&quot;&quot;<br /><br />    Zmiana=False<br />Zmiana2=False<br />End Sub<br />Sub Timer3_Tick<br />    Dim x As String<br /> If Zmiana=True Then<br />        x=NumberFormat(SeekBar1.Value, 3 ,0)<br />x=x &amp; NumberFormat(SeekBar2.Value, 3 ,0)<br />x=x &amp; NumberFormat(SeekBar3.Value, 3 ,0) <br />Rozkaz( x &amp; Chr(13) &amp; Chr(10) )<br />Zmiana=False<br /> End If<br />End Sub<br />Sub Timer4_Tick<br />    Dim x As String<br /> If Zmiana2=True Then<br />    x=NumberFormat2(EditText1.Text,0,0,0,False)<br />Rozkaz( x )<br />Zmiana2=False<br /> End If<br />End Sub<br />Sub Timer1_Tick<br />    Try<br /> If Adapter.IsEnabled=True Then<br />    Button1.Enabled=True<br />    Label1.Text=Adapter.Address<br /> If Flaga=True Then<br />    Button1.Text=&quot;MAC &quot; &amp; Nazwa &amp; CRLF &amp; Adres<br />EditText1.Visible=True<br />Button2.Visible=True<br /> Else<br />    Button1.Text=&quot;Brak połączenia. Kliknij aby połączyć&quot;<br /> End If<br /> Else <br />    Button1.Enabled=False<br />    Label1.Text=&quot;Bluetooth wyłączony&quot;<br />Button1.Text=&quot;Brak połączenia&quot; &amp; CRLF &amp; &quot;kliknij aby połączyć&quot;<br />Flaga=False<br /> End If<br />Catch <br />End Try<br />End Sub<br />Sub Timer2_Tick<br />    Timeout=Timeout+1<br />ProgressBar1.Visible=True<br /> If Timeout=100 Then<br />        Timeout=0<br />ProgressBar1.Visible=False<br />Timer2.Enabled=False<br />Timer1.Enabled=True<br /> End If<br />        ProgressBar1.Progress=Timeout<br />End Sub<br /><br />Sub Strumien_Error<br />    Adapter.Disconnect<br />Flaga=False<br />End Sub<br />Sub Strumien_Terminated<br />    Adapter.Disconnect<br />Flaga=False<br />End Sub<br />Sub Strumien_NewData (Buffer() As Byte)<br />Nadawanie=False<br />Odebrane=Odebrane &amp; BytesToString(Buffer, 0, Buffer.Length, &quot;UTF8&quot;)<br />     If Odebrane.Length=10 Then<br />      If Odebrane.EndsWith(Chr(13))Then <br />  Try<br />     Suwak1=Odebrane.SubString2(0,2+1)<br /> Suwak2=Odebrane.SubString2(3,5+1)<br /> Suwak3=Odebrane.SubString2(6,8+1)<br /> If Suwak1&gt;=0 AND Suwak1&lt;=999 Then SeekBar1.Value=Suwak1     <br /> If Suwak2&gt;=0 AND Suwak2&lt;=999 Then SeekBar2.Value=Suwak2     <br /> If Suwak3&gt;=0 AND Suwak3&lt;=999 Then SeekBar3.Value=Suwak3<br />      Catch<br />  End Try<br />  End If<br />     Odebrane=&quot;&quot;<br /> Dim Val1 As String<br /> Dim Val2 As String<br /> Dim Val3 As String<br /> Val1=NumberFormat(Suwak1,3,0)<br /> Val2=NumberFormat(Suwak2,3,0)<br /> Val3=NumberFormat(Suwak3,3,0)<br /> Label2.Text = Val1 &amp; Val2 &amp; Val3<br /> End If<br />     Nadawanie=True<br />End Sub<br /><br />Sub Adapter_Connected(Powodzenie As Boolean)<br />    Timeout=0<br />Flaga=Powodzenie<br />Timer2.Enabled=False<br />Timer1.Enabled=True<br />ProgressBar1.Visible=False<br /> If Powodzenie=True Then<br />    Strumien.Initialize(Adapter.InputStream, Adapter.OutputStream, &quot;Strumien&quot;)<br />Rozkaz(&quot;?&quot;)<br /> End If<br />End Sub<br />Sub Button1_Click<br />If Flaga=False Then<br />   Dim Urzadzenia As Map<br />   Dim Lista As List<br />   Dim Wybierz As Int<br />   Urzadzenia=Adapter.GetPairedDevices<br />   Lista.Initialize<br />    For i=0 To Urzadzenia.Size-1<br /> Lista.Add(Urzadzenia.GetKeyAt(i))<br />Next<br /> Wybierz=InputList(Lista,&quot;Wybierz urządzenie&quot;,-1)<br />If Wybierz &gt;= 0 Then<br />   Timer1.Enabled=False<br />   Timer2.Enabled=True<br />   Button1.Enabled=False<br />   Adres=Urzadzenia.GetValueAt(Wybierz)<br />   Nazwa=Urzadzenia.GetKeyAt(Wybierz)<br />   Adapter.Connect3(Adres,1)<br />End If<br />Else<br />    Strumien.Close<br />    Adapter.Disconnect<br />Flaga=False<br />End If <br />End Sub<br />Sub EditText1_TextChanged (Old As String, New As String)<br />    Dim Pline As String<br />    Pline = EditText1.Text<br />     If Pline.Length &gt; 1 Then<br />        EditText1.Text = Pline.SubString2(0,1)<br />        EditText1.SelectionStart = 1<br />        ToastMessageShow(&quot;1 character limit&quot;,False)<br /> End If<br />End Sub<br />Sub Rozkaz(x As String)<br />    If Flaga=True Then<br />       Strumien.Write(x.GetBytes(&quot;UTF8&quot;))<br />    End If<br />End Sub<br />Sub SeekBar1_ValueChanged (Value As Int, UserChanged As Boolean)<br /> If Nadawanie=True Then<br />    Zmiana=True<br /> End If <br />End Sub<br />Sub SeekBar2_ValueChanged (Value As Int, UserChanged As Boolean)<br />     If Nadawanie=True Then<br />    Zmiana=True<br /> End If <br />End Sub<br />Sub SeekBar3_ValueChanged (Value As Int, UserChanged As Boolean)<br />     If Nadawanie=True Then<br />    Zmiana=True<br /> End If <br />End Sub<br />Sub Button2_Click<br />Zmiana2=True<br />Timer4.Enabled=True<br />End Sub[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1097">stopa</a> — 12 kwi 2013, o 09:53</p><hr />
]]></content>
</entry>
</feed>