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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-07-11T20:02:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=12&amp;t=7300&amp;mode</id>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2014-07-11T20:02:49+01:00</updated>
<published>2014-07-11T20:02:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=87276#p87276</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=87276#p87276"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=87276#p87276"><![CDATA[
Widzę że autor już zdążył zapomnieć o swoim problemie bo ani &quot;bee&quot; ani &quot;mee&quot; na nasze odpowiedzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 11 lip 2014, o 20:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2014-06-09T20:41:32+01:00</updated>
<published>2014-06-09T20:41:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83893#p83893</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83893#p83893"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83893#p83893"><![CDATA[
<div class="quotetitle">Niveasoft napisał(a):</div><div class="quotecontent"><br />Funkcja Ischarwaiting nie działa gdy włączymy buforowanie w Config serialinn.<br /></div><br />Nie zgodzę się z tobą nie działa jak używasz software uart.<br />Jak używasz Hardware Uart działa bo sama nazwa mówi is char waiting -czyli jeśli znak czeka gdzie w buforze.<br />I dokładnie jest to zademonstrowane w przykładzie do ischarwaitng <br />[syntax=basic4gl]-----------------------------------------------------------------------------------------<br />'name : rs232buffer.bas<br />'copyright : (c) 1995-2005, MCS Electronics<br />'purpose : example shows the difference between normal and buffered<br />' serial INPUT<br />'micro : Mega161<br />'suited for demo : yes<br />'commercial addon needed : no<br />'-----------------------------------------------------------------------------------------<br /> <br />$regfile = &quot;m161def.dat&quot; ' specify the used micro<br />$crystal = 4000000 ' used crystal frequency<br />$baud = 9600 ' use baud rate<br />$hwstack = 32 ' default use 32 for the hardware stack<br />$swstack = 10 ' default use 10 for the SW stack<br />$framesize = 40 ' default use 40 for the frame space<br /> <br />'first compile and run this program with the line below remarked<br />Config Serialin = Buffered , Size = 20<br /> <br /> <br />Dim Na As String * 10<br /> <br />'the enabling of interrupts is not needed for the normal serial mode<br />'So the line below must be remarked to for the first test<br />Enable Interrupts<br /> <br />Print &quot;Start&quot;<br />Do<br />'get a char from the UART<br /> <br />If Ischarwaiting() = 1 Then 'was there a char?<br /> Input Na <br /> Print Na 'print it<br />End If<br /> <br />Wait 1 'wait 1 second<br />Loop<br /> <br />'You will see that when you slowly enter characters in the terminal emulator<br />'they will be received/displayed.<br />'When you enter them fast you will see that you loose some chars<br /> <br />'NOW remove the remarks from line 11 and 18<br />'and compile and program and run again<br />'This time the chars are received by an interrupt routine and are<br />'stored in a buffer. This way you will not loose characters providing that<br />'you empty the buffer<br />'So when you fast type abcdefg, they will be printed after each other with the<br />'1 second delay<br /> <br />'Using the CONFIG SERIAL=BUFFERED, SIZE = 10 for example will<br />'use some SRAM memory<br />'The following internal variables will be generated :<br />'_Rs_head_ptr0 BYTE , a pointer to the location of the start of the buffer<br />'_Rs_tail_ptr0 BYTE , a pointer to the location of tail of the buffer<br />'_RS232INBUF0 BYTE ARRAY , the actual buffer with the size of SIZE[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 9 cze 2014, o 20:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2014-06-07T22:03:58+01:00</updated>
<published>2014-06-07T22:03:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83669#p83669</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83669#p83669"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83669#p83669"><![CDATA[
<div class="quotetitle">Niveasoft napisał(a):</div><div class="quotecontent"><br />PS. Uart może być też buforowany<br /></div><br /><br />Ja bym powiedział że MUSI być buforowany.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 7 cze 2014, o 22:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2014-06-06T23:05:26+01:00</updated>
<published>2014-06-06T23:05:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83572#p83572</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83572#p83572"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83572#p83572"><![CDATA[
Możliwości jest wiele a rozwiązań tyle co programistów.<br />Można użyć znaków ASCII co może być czytelne dla oka i łatwe do testowania z terminala poprzez wklepywanie kolejnych znaków.<br />czyli w pętli głównej piszesz:<br /><br />[syntax=basic4gl]If Ischarwaiting() &gt; 0 Then                              'calls _gotchar and use URXC<br /><br />      Char_ = Waitkey()                                     'get char from buffer<br />     'could be as well inkey<br />      If Char_ = 13 Or Len(uart_command) &gt; 20 Then          ' check for ENTER of more then 20 characters<br />         Call Uartrx                                        '<br /><br />         Print                                              '<br />         Print Prompt;                                      'promt if you want<br />         Uart_command = &quot;&quot;<br />      Else<br />         Uart_command = Uart_command + Chr(char_)           'buffor building  very important part<br /><br />         Print Chr(char_) ;                                 'this is echo<br /><br />      End If<br /><br />   End If[/syntax]<br /><br />Można tez użyc petli while -wend  przykład dla drugiego portu <br />[syntax=basic4gl]While Ischarwaiting(#1) &gt; 0                              '<br /><br />   Char_1 = Inkey(#1)                                       'get char from buffer<br /><br />   If Char_1 = 13 Or Len(uart_command_1) &gt; 10 Then          ' check for ENTER of more then 20 characters<br />   Call Uartrx_1                                            '<br />   'Print                                              '<br />   'Print Prompt;                                      'promt if you want<br />   Uart_command_1 = &quot;&quot;<br />   Else<br />   Uart_command_1 = Uart_command_1 + Chr(char_1)            'buffor building<br /><br />   'Print Chr(char_);                                  'this is echo<br />   End If<br />   Wend[/syntax]<br /><br />powyższe załatwia odbiór znaków ascii trzeba to teraz jakoś rozróżnić i zareagować. <br />Pasuje po grupować te znaki w jakieś komendy:<br /><br /><br /><br />[syntax=basic4gl]Uartrx:<br /><br />   Lcount = Split(uart_command , Getcommands(1) , &quot; &quot;)      'This choping coomand after space<br /><br />   Debug Chr(13)<br />   Debug &quot;lcount= &quot; ; Lcount<br />   Debug &quot;uart_command= &quot; ; Uart_command<br />   Debug &quot;Getcommands(1)= &quot; ; Getcommands(1)<br />   Debug &quot;Getcommands(2)= &quot; ; Getcommands(2)<br />   Debug &quot;Getcommands(3)= &quot; ; Getcommands(3)<br /><br /><br />   Print &quot; &quot;;                                               'command&gt;&gt; az 0 0  'printing proper spaces<br />   Select Case Getcommands(1)<br /><br /><br />      Case Azimut                                           'az<br /><br />         Print #1 , Impuls1 ; &quot; &quot; ; Impuls2 ; &quot; &quot; ; &quot;77&quot; ; Chr(13);<br /><br />      Case Calibrate                                        'calib<br /><br />         Debug &quot;case calibrate&quot;<br /><br /><br />         Select Case Getcommands(2)<br /><br />            Case Imp1<br /><br />               Print &quot; Curent impuls1 value=&quot; ; Impuls1<br /><br />               Impuls1 = Val(getcommands(3))<br /><br />               Print &quot;New value= &quot; ; Impuls1<br /><br />            Case Imp2<br /><br />               Print &quot; Curent impuls2 value=&quot; ; Impuls2<br /><br />               Impuls2 = Val(getcommands(3))<br /><br />               Print &quot;New value= &quot; ; Impuls2<br /><br /><br />            Case Else<br /><br />               Print Prompt ; Uart_command ; Notincommands  '<br /><br />               Print Prompt ;<br /><br />               Getcommands(1) = &quot;&quot;<br />               Getcommands(2) = &quot;&quot;<br />               Getcommands(3) = &quot;&quot;<br />         End Select<br />      Case Ccw<br />         Portk.7 = 1<br />         Portk.6 = 0<br /><br />      Case Cw<br />         Portk.7 = 0<br />         Portk.6 = 1<br />      Case _stop<br /><br />         Portk.7 = 0<br />         Portk.6 = 0<br /><br /><br />      Case Help                                             '?<br /><br />         Debug &quot;case help&quot;<br /><br />         Print<br /><br />         Print &quot; calib =  calibrate impuls1 and impuls2 &quot;<br /><br />         Print &quot; cw  = clockwise rotation &quot;<br /><br />         Print &quot; ccw = counter clockwise rotation &quot;<br /><br />         Print &quot; imp1 = impuls1 &quot;<br /><br />         Print &quot; imp2 = impuls2 &quot;<br /><br />         Print &quot; ? = list all commands &quot;<br /><br />         Print &quot; az = get current azimut &quot;<br /><br />         Print &quot; reboot = reboot system&quot;<br /><br />         Print &quot; stop =  stop rotor &quot;<br /><br />      Case Reboot<br />         Print<br /><br />         Print &quot; Wait rebooting &quot;<br /><br />         Start Watchdog<br /><br />      Case Test_on<br />         Print &quot; AZ test started &quot;<br />         Set Teston<br /><br /><br />      Case Test_off<br />         Print &quot; tu cos tam cos tam&quot;<br />         <br /><br /><br /><br /><br />      Case Else<br /><br />         Print Prompt ; &quot; &quot; ; Uart_command ; &quot; &quot; ; Notincommands<br />         Print Prompt<br /><br /><br />         Getcommands(1) = &quot;&quot;<br />         Getcommands(2) = &quot;&quot;<br />         Getcommands(3) = &quot;&quot;<br />   End Select<br />   Getcommands(1) = &quot;&quot;<br />   Getcommands(2) = &quot;&quot;<br />   Getcommands(3) = &quot;&quot;<br /><br /><br />Return[/syntax]<br /><br />Żeby było jeszcze prościej i dla potomnych dla komend można zastosować stałe i łatwo sobie je edytować.<br /><br />Każde z wczesniej opisanych select CASE mozna sobie teraz łatwo edytować bez żmudnego przewijania w kodzie.<br />Zmieniając stałe poniżej.<br />[syntax=basic4gl]Const Prompt = &quot;Command&gt;&gt; &quot;<br />Const Calibrate = &quot;calib&quot;<br />Const Cw = &quot;cw&quot;<br />Const Ccw = &quot;ccw&quot;<br />Const Imp1 = &quot;imp1&quot;<br />Const Imp2 = &quot;imp2&quot;<br />Const Help = &quot;?&quot;<br />Const Azimut = &quot;az&quot;<br />Const Reboot = &quot;reboot&quot;<br />Const Notincommands = &quot; error &quot;<br />Const _stop = &quot;stop&quot;<br />Const Test_on = &quot;teston&quot;<br />Const Test_off = &quot;testoff&quot;[/syntax]<br /><br /><br />Rozwiązanie z printbin <br />Przydała by się tablica żeby odebrać  dane ciurkiem.<br />Podzielić na w bajty itp.<br /><br />[syntax=basic4gl]Dim Serial_flaga As Byte<br />    Dim Paczkadanych(2) As Byte                                 'your array <br />    Dim Adres As Byte<br />    Dim Komenda As Byte<br />    Config Serialin = Buffered , Size = 20                      'buf space for data <br />    Enable Interrupts<br />    Enable Urxc<br /><br />    Do<br />    Serial_flaga = Ischarwaiting()' as before in previous exaple we using ischarwaiting <br />    If Serial_flaga = 1 Then<br />    Inputbin Paczkadanych(1) , 2<br />    Adres = Paczkadanych(1) , 1<br />    Komenda = Paczkadanych(2) , 1<br />     <br />    Loop<br />    End[/syntax]<br /><br /><br />Część nadawcza: <br /><br />[syntax=basic4gl]Dim Flag1 As Bit<br />Dim Flag2 As Bit<br />Dim Paczkadanych(2) As Byte<br />Dim Adres_1 As Byte<br />Dim Komenda_1 As Byte<br />Dim Adres As Byte<br />Dim Komenda As Byte<br /><br /><br /><br />Config Serialout = Buffered , Size = 20 ' buff space for char out <br />Enable Interrupts<br />Enable Utxc<br /><br />Do<br /><br /><br /><br />If Adres &lt;&gt; Adres_1 Then ' send only new data <br />Set Flag1<br />End If<br />If Komenda &lt;&gt; Komenda_1 Then' send only new data <br />Set Flag2<br />End If<br />Adres_1 = Adres<br />Komenda_1 = Komenda<br />Paczkadanych(1) , 1 = Adres_1<br />Paczkadanych(2) , 1 = Komenda_1<br /><br />If Flag1 = 1 Or Flag2 = 1 Then ' if flags set send data <br />Printbin Paczkadanych(1) , 2' simple transmission <br />Flag1 = 0<br />Flag2 = 0<br />End If<br /><br /><br />Loop<br />End[/syntax]<br /><br />To są wycinki najważniejszych fragmentów można z tego posklejać co nie co.<br />Paweł<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 6 cze 2014, o 23:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matrix]]></name></author>
<updated>2014-06-04T18:33:55+01:00</updated>
<published>2014-06-04T18:33:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83383#p83383</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83383#p83383"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83383#p83383"><![CDATA[
Można wykorzystać polecenia prinbin oraz inputbin lub serin i serout. Musisz doczytać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=689">matrix</a> — 4 cze 2014, o 18:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maryushr]]></name></author>
<updated>2014-06-04T15:38:23+01:00</updated>
<published>2014-06-04T15:38:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83379#p83379</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83379#p83379"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83379#p83379"><![CDATA[
Doszedłem do wniosku, że zacznę jednak od podstawowej komunikacji pomiędzy procesorami, czyli tylko i wyłącznie odbiór wysyłanych znaków z wykorzystaniem zwykłego LCD, w projekcie mam zastosowany LCD 3,5 cyfry. Myślę, że przyczyną jest właśnie obsługa tego wyświetlacza, która rozwala mi komunikację. Ale to się okaże. Dziękuję za pomocne odpowiedzi.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=796">maryushr</a> — 4 cze 2014, o 15:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-04T15:26:27+01:00</updated>
<published>2014-06-04T15:26:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83377#p83377</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83377#p83377"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83377#p83377"><![CDATA[
No ale widzisz - właśnie O TO CHODZI, bo gdy ktoś nie widzi własnych błędów - tylko szuka ich u producentów a to oprogramowania a to części elektronicznych to nawet ciężko coś takiej osobie z takim nastawieniem podpowiadać - bo z góry i tak jest to skazane na porażkę ....<br /><br />Wystarczy jednak zmiana nastawienia i łatwiej się rozmawia bo DOKŁADNIE jak mówisz .... tzn piszesz wyżej<br /><br />---------------------<br /><br />wracając więc do meritum .... proponuję ci po pierwsze odchudzić i napisać ten kod od nowa - taki testowy - tylko do odbierania danych i np ich wyświetlania na LCD albo nawet do odsyłania przez UART - wersja testowa. Bo generalnie cały program to niezły tzw bajzelek (bez obrazy) ale i to rozumiem bo każdy się uczy ...<br /><br />polecenie Ischarwaiting możesz umieścić w pętli głównej i oczekiwać na nadlatujące znaki ale ....<br /><br />ALE MUSISZ pamiętać o tym, że nie możesz wykonywać żadnych dłuższych operacji pomiędzy tym sprawdzaniem bo od razu rozwali ci to właśnie ten odbiór<br /><br />druga sprawa - potestuj sobie to NAJPIERW na terminalu czyli komunikacja z kompem przez RS232 - od tego się zaczyna naukę tworzenia komunikacji RS232, bo jak ty to odpalasz od razu na dwóch prockach - to jak widzę nie masz ŻADNEJ kontroli nad tym co się dzieje ....<br /><br />a gdybyś chciał mieć - to co za problem wpiąć się pinem RX jakiejś przejściówki w jedną albo drugą linię transmisyjną pomiędzy prockami i podsłuchiwać na terminalu co się dzieje - nie sądzisz że będzie łatwiej ...<br /><br />tylko .... no właśnie - tylko ZAPOMNIJ wtedy o przesyłaniu jakichś tam bajtów o wartości = 1 bo to kompletnie bez sensu do testów z terminalem, a dla ciebie żadna różnica jeśli będziesz np przesyłał kod ASCII znaku 1 czyli bajt o wartości 49 i już na terminalu będziesz mógł podglądać jak procki między sobą gadają ...<br /><br />jeśli wydaje ci się to mało zrozumiałe z tym ASCII to zajrzyj proszę tutaj:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2014/06/jak-wysac-zmienna-kody-ascii.html" >http://mirekk36.blogspot.com/2014/06/ja ... ascii.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 cze 2014, o 15:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[eMCe2]]></name></author>
<updated>2014-06-04T15:17:08+01:00</updated>
<published>2014-06-04T15:17:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83376#p83376</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83376#p83376"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83376#p83376"><![CDATA[
<div class="quotetitle">maryushr napisał(a):</div><div class="quotecontent"><br />Wolałbym się skupić bardziej nad kodem programu, niż nad tym co zakładam, a czego nie zakładam, bo nie ma to wpływu na poprawność działania tego programu.<br /></div><br /><br />Rozumiem że kolega pisze program na żywca bez żadnych założeń... a tu Mirek dobrze mówi, bo czasami jak sobie wbijesz że u Ciebie na bank dobrze że coś gdzieś źle to nigdy nie zauważysz swojego błędu... a jak Ci sarkastycznie Mirek zasugerował skoro wszystkim to działa i piszą w tym języku od lat a Tobie nagle nie działa to raczej ty masz coś źle... więc pomyśl nad swoimi założeniami, weź kartke, rozrysuj co i jak, dopasuj kod do narysowanych kwadracików i po nitce do kłębka znajdziesz co masz źle... tak tak... masz... bo zazwyczaj błąd jest po naszej stronie.... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br />A jak na chwilę obecną masz ciemność i wszystko wydaje Ci się ok to może lepiej wykorzystać pogodę, pójść na spacer, dotlenić to co się przydaje przy programowaniu i wrócić do tematu wieczorem... <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1363">eMCe2</a> — 4 cze 2014, o 15:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maryushr]]></name></author>
<updated>2014-06-04T14:50:37+01:00</updated>
<published>2014-06-04T14:50:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83373#p83373</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83373#p83373"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83373#p83373"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />No ale widać, że zakładasz - że jest możliwa w ogóle pierwsza opcja .... więc przy takim podejściu to jeszcze dłuuuuuuuuuuga droga przed kolegą ... <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /></div><br />Wolałbym się skupić bardziej nad kodem programu, niż nad tym co zakładam, a czego nie zakładam, bo nie ma to wpływu na poprawność działania tego programu. Ale skoro już temat został podjęty, to im dłuższa droga tym więcej można się nauczyć i zagłębić w tematykę, nikt przecież nie jest fenomenalny. Jedyne co się traci, to czas, a pogoda ładna, zamiast siedzieć przy komputerze można pójść na spacer lub robić coś innego. Tak, czy inaczej cel wymaga osiągnięcia, a droga może być długa <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=796">maryushr</a> — 4 cze 2014, o 14:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-04T13:17:17+01:00</updated>
<published>2014-06-04T13:17:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83356#p83356</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83356#p83356"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83356#p83356"><![CDATA[
<div class="quotetitle">maryushr napisał(a):</div><div class="quotecontent"><br />Wolałbym żeby była to odpowiedź druga, bo błędy można poprawić.<br /></div><br /><br />No ale widać, że zakładasz - że jest możliwa w ogóle pierwsza opcja .... więc przy takim podejściu to jeszcze dłuuuuuuuuuuga droga przed kolegą ... <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 cze 2014, o 13:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maryushr]]></name></author>
<updated>2014-06-04T12:28:33+01:00</updated>
<published>2014-06-04T12:28:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83347#p83347</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83347#p83347"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83347#p83347"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />Skoro NIC koledze nie funkcjonuje to można byłoby wysnuć DWA wnioski, tylko dwa wnioski:<br />  <br />1. albo te polecenia nigdy nie działały i nie działają w Bascomie, a wszyscy którzy ich używają i piszą że są ok - to kłamią w żywe oczy łącznie z autorem Bascoma<br /><br />2. albo kolega coś źle robi ... i to totalnie źle robi ....<br /></div><br />Wolałbym żeby była to odpowiedź druga, bo błędy można poprawić.<br />Zamieszczam kod programu:<br />[syntax=basic4gl]$crystal = 8000000<br />$baud = 2400<br /><br />Config Timer1 = Timer , Prescale = 8<br />Load Timer1 , 1000<br />Enable Timer1<br />On Timer1 Wykonaj<br />Config Pind.6 = Output<br />Dim L As Byte<br />Dim P As Byte<br />Dim Licz As Byte<br />Dim I As Byte<br />Dim Bufor As Byte<br />Dim Ulamek As Byte<br />Dim Dana As Byte<br />Dim Dana1 As Byte<br />Dim Dana5 As Byte<br />Dim D As Byte<br />Dim X As Byte<br />Dim A As Byte , B As Byte<br />Dim A1 As Byte , B1 As Byte<br />Dim Licz1 As Word<br />Dim Flag1 As Bit<br />Dim Flag As Bit<br />Config Pinb.4 = Output<br />Config Pinb.3 = Output<br />Config Pinb.2 = Output<br />Config Pinb.0 = Output<br />Config Pind.7 = Output<br />Clk_4094 Alias Portd.7<br />Clk1_4094 Alias Portb.0<br />Clk2_4094 Alias Portb.2<br />Data_4094 Alias Portb.4<br />Strobe_4094 Alias Portb.3<br />Enable Interrupts<br />Flag1 = 1<br />Flag = 0<br />Portd.6 = 0<br />Ulamek = 0<br />Do<br /><br />L = Ischarwaiting()<br />If L = 1 Then<br />P = Inkey()<br />End If<br /><br />X = P<br />If X &lt; 100 Then<br />If X &gt;= 10 Then<br />X = X \ 10<br />A = X<br />X = P<br />X = X Mod 10<br />B = X<br />Else<br />A = 0<br />B = X<br /><br />End If<br />End If<br />If X &gt;= 100 Then<br />X = X - 100<br />X = X \ 10<br />A = X<br />X = P<br />X = X - 100<br />X = X Mod 10<br />B = X<br />End If<br /><br />If Flag1 = 1 Then<br />Flag1 = 0<br />Licz = 0<br />If P &gt;= 100 Then<br />Dana5 = Lookup(a , Wys)<br />End If<br />If P &lt; 100 Then<br />Dana5 = Lookup(a , Wys1)<br />End If<br />Dana1 = Lookup(b , Wys1)<br />Bufor = Ulamek<br />Dana = Lookup(bufor , Wys)<br /><br />Portd.6 = 0<br />End If<br />Loop<br /><br /><br />Wykonaj:<br /><br />Load Timer1 , 500<br />Incr Licz<br />If Licz = 15 Then<br />Flag = 0<br />Licz = 0<br />Toggle Portd.6<br />Dana5 = Not Dana5<br />Dana = Not Dana<br />Dana1 = Not Dana1<br />For I = 0 To 7<br />Data_4094 = Dana5.i<br />Clk2_4094 = 1<br />Clk2_4094 = 0<br />Data_4094 = Dana.i<br />Clk_4094 = 1<br />Clk_4094 = 0<br />Data_4094 = Dana1.i<br />Clk1_4094 = 1<br />Clk1_4094 = 0<br /><br />Next I<br /><br />Strobe_4094 = 1<br />Strobe_4094 = 0<br />Flag = 1<br />End If<br />Return<br /><br />Wys:<br />Data 247 , 145 , 235 , 187 , 157 , 190 , 254 , 147 , 255 , 191<br /><br />Wys1:<br />Data 119 , 17 , 107 , 59 , 29 , 62 , 126 , 19 , 127 , 63<br /><br />Wys2:<br />Data 0 , 0 , 297[/syntax]<br /><br /><span style="color: #FF0000">Kody wklejamy przy pomocy syntax=basic4gl - Różowo-zielony J.</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=796">maryushr</a> — 4 cze 2014, o 12:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-06-04T11:57:59+01:00</updated>
<published>2014-06-04T11:57:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83343#p83343</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83343#p83343"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83343#p83343"><![CDATA[
<div class="quotetitle">maryushr napisał(a):</div><div class="quotecontent"><br />Wypróbowałem już wszystkie możliwości i poza jednokrotnym odbiorem komendami waitkey, input, czy inputbin nic nie działa. Nawet komenda ischarwaiting nie funkcjonuje, a powinna. Dodam, że w programie mam przerwanie od licznika timer1.<br /></div><br /><br />Skoro NIC koledze nie funkcjonuje to można byłoby wysnuć DWA wnioski, tylko dwa wnioski:<br /><br />1. albo te polecenia nigdy nie działały i nie działają w Bascomie, a wszyscy którzy ich używają i piszą że są ok - to kłamią w żywe oczy łącznie z autorem Bascoma<br /><br />2. albo kolega coś źle robi ... i to totalnie źle robi ....<br /><br />Którą opcję wybierasz ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 4 cze 2014, o 11:57</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maryushr]]></name></author>
<updated>2014-06-04T11:35:48+01:00</updated>
<published>2014-06-04T11:35:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83340#p83340</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83340#p83340"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83340#p83340"><![CDATA[
Wypróbowałem już wszystkie możliwości i poza jednokrotnym odbiorem komendami waitkey, input, czy inputbin nic nie działa. Nawet komenda ischarwaiting nie funkcjonuje, a powinna. Dodam, że w programie mam przerwanie od licznika timer1.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=796">maryushr</a> — 4 cze 2014, o 11:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[eMCe2]]></name></author>
<updated>2014-06-04T08:49:42+01:00</updated>
<published>2014-06-04T08:49:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83324#p83324</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83324#p83324"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83324#p83324"><![CDATA[
moze to cos pomoze <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><!-- m --><a class="postlink" href="http://avrhelp.mcselec.com/index.html?config_serialin.htm" >http://avrhelp.mcselec.com/index.html?c ... rialin.htm</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1363">eMCe2</a> — 4 cze 2014, o 08:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[k_mirek]]></name></author>
<updated>2014-06-04T02:13:52+01:00</updated>
<published>2014-06-04T02:13:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83307#p83307</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83307#p83307"/>
<title type="html"><![CDATA[Re: Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83307#p83307"><![CDATA[
Jeśli ma oczekiwać i zarazem nie blokować to chyba przerwanie było by odpowiednie. Popatrz do help w polskiej wersji, tam coś jest napisane, poza tym pamiętam że tam nawet jakies przykłady były.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=499">k_mirek</a> — 4 cze 2014, o 02:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[maryushr]]></name></author>
<updated>2014-06-03T23:22:27+01:00</updated>
<published>2014-06-03T23:22:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83303#p83303</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83303#p83303"/>
<title type="html"><![CDATA[Procedura odbioru bajtów przez RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7300&amp;p=83303#p83303"><![CDATA[
Chciałbym się doradzić w jaki sposób w Bascomie mogę zrealizować procedurę odbierającą dane przez port szeregowy. Mam połączone dwie atmegi8 (1 Tx -&gt; 2 Rx), gdy w pierwszej wciskam przycisk powinna wysłać bajt, a druga powinna go odebrać, przetworzyć i czekać na wysłanie kolejnego bajtu. O ile z wysyłaniem nie ma problemów, o tyle mam zagwozdkę z systematycznym ich odbieraniem. Stosowałem komendy Waitkey oraz Inputbin, ale one po odebraniu bajtu kończą swoje działanie i kolejne dane nie są już odbierane. Potrzebuję procedurę, która będzie czekała na nadchodzącą transmisję i jednocześnie nie będzie blokowała pracy programu, po odebraniu bajtu przypisze go odpowiedniej zmiennej. Czy ktoś zechce mi pomóc? <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=796">maryushr</a> — 3 cze 2014, o 23:22</p><hr />
]]></content>
</entry>
</feed>