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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-04-25T22:45:07+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=12&amp;t=11463&amp;mode</id>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2015-04-25T22:45:07+01:00</updated>
<published>2015-04-25T22:45:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127482#p127482</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127482#p127482"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127482#p127482"><![CDATA[
Sprawdź to<br />Tylko prawdo podobnie jest tam błąd przy przypisywaniu S_temp do S ale to sobie sprawdzisz na żywym układzie.<br />Niestety dziś już nie mam więcej czasu więc sprawdź to co jest<br /><br />[syntax=basic4gl]$regfile = &quot;m16def.dat&quot;<br />$crystal = 11059200<br />$hwstack = 40<br />$swstack = 16<br />$framesize = 32<br />$baud = 19200<br /><br />Config Serialin0 = Buffered , Size = 20                     'buforowoanie  pierwszy uart<br /><br />    ' Konfiguracja LCD 2X16<br />Config Lcdpin = Pin , E = Portb.0 , Rs = Portb.1 , Db7 = Portb.2 , Db6 = Portb.3 , Db5 = Portb.4 , Db4 = Portb.5 , Wr = Portb.6<br />Config Lcd = 16x2        'nowy sposob zapisu<br />Cursor Off<br />Cls<br /><br />    ' Konfiguracja przycisków i led<br />Config Portb.7 = Output : Portb.7 = 1 : Podswietlenie Alias Portb.7       'Konfiguracja podswietlenia<br />Config Portd.2 = Input : Portd.2 = 1 : Sw Alias Pind.2       ' Konfiguracja przycisku<br />Config Portd.4 = Input : Portd.4 = 1 : P Alias Pind.4       ' Konfiguracja przycisku<br />Config Portd.3 = Output : Portd.3 = 1 : Led Alias Portd.3       'Konfiguracja LED<br /><br />     ' Konfiguracja szyny I2C<br />Config Scl = Portc.0<br />Config Sda = Portc.1<br />I2cinit<br /><br />    ' Zmienne zegara<br />Dim S As Byte : Dim M As Byte : Dim H As Byte<br /><br />Dim H_str As String * 2<br />Dim M_str As String * 2<br />Dim S_str As String * 2<br /><br />    ' Zmienne uart<br />Dim Bufor As Byte<br />Dim T_str As String * 21<br />Dim Tab(3) As String * 10<br />Dim Bcount As Byte<br />Dim S_temp As Byte<br /><br /><br /><br />Enable Interrupts        ' Zezwolenie na przerwania<br /><br /><br /><br />    ' ===========GLÓWNA PETKA==============<br />Do<br /><br />   If S &lt;&gt; S_temp Then<br />      S = S_temp<br />      Cls<br />      Locate 1 , 5<br />      Lcd ; H_str ; &quot;:&quot; ; M_str ; &quot;:&quot; ; S_str ; &quot;    &quot;<br />   End If<br /><br /><br />    ' procedura odpowiada za pobranie czasu z ukladu,<br />    ' przeksztalcenie go na postac dziesietna oraz<br />    ' sformatowanie do postaci dwuznakowej<br />     I2cstart<br />      I2cwbyte 160<br />      I2cwbyte 2<br />      I2cstart<br />      I2cwbyte 161<br />      I2crbyte S , Ack<br />      I2crbyte M , Ack<br />      I2crbyte H , Nack<br />      I2cstop<br /><br />   S = Makedec(s) : S_str = Str(s) : S_str = Format(s_str , &quot;00&quot;)<br />   M = Makedec(m) : M_str = Str(m) : M_str = Format(m_str , &quot;00&quot;)<br />   H = Makedec(h) : H_str = Str(h) : H_str = Format(h_str , &quot;00&quot;)<br /><br /><br /><br />   If Ischarwaiting() &gt; 0 Then<br />      Bufor = Waitkey()<br /><br /><br />      If Bufor = 13 Or Len(t_str) &gt; 18 Then<br /><br />         Gosub Odczytaj_uart<br />      Else<br />         T_str = T_str + Chr(bufor)<br />         Print Chr(bufor);<br />      End If<br />   End If<br />Loop<br /><br /><br />    ' =============PROCEDURA ODCZYTU DANYCH Z UART=====================<br />Odczytaj_uart:<br /><br />   'Cls 'tu bym nie czyscil bo to sporo czasu zajmuje<br /><br />   'Clear Serialin0<br />   Bcount = Split(t_str , Tab(1) , &quot;:&quot;)<br /><br />   Print Tab(1)<br />   Print Tab(2)<br />   Print Tab(3)<br /><br />   H = Val(tab(1))          ' konwersja string na wartosc liczbowa<br />   M = Val(tab(2))<br />   S_temp = Val(tab(3))<br />   Tab(1) = &quot;&quot;<br />   Tab(2) = &quot;&quot;<br />   Tab(3) = &quot;&quot;<br /><br /><br />   S = Makebcd(s_temp)                                      ' konwersja wartosci liczbowej na kod BCD<br />   M = Makebcd(m)           ' konwersja wartosci liczbowej na kod BCD<br />   H = Makebcd(h)           ' konwersja wartosci liczbowej na kod BCD<br /><br />   I2cstart<br />   I2cwbyte 160<br />   I2cwbyte 2<br />   I2cwbyte S<br />   I2cwbyte M<br />   I2cwbyte H<br />   I2cstop<br /><br /><br /><br />Return[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 25 kwi 2015, o 22:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2015-04-25T20:45:09+01:00</updated>
<published>2015-04-25T20:45:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127461#p127461</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127461#p127461"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127461#p127461"><![CDATA[
michał6201 To jest jeszcze źle nie mam jak przesłać filmu ale jak odpalisz symulator i zaczniesz wpisywać dane z teminala to zobaczysz że cała pamięć zapełnia się  danymi z bufora <br />Musisz dodać kilka ważnych elementów  na początek <br />HW stack <br />SW stack <br /> <br />Config Serialin = Buffered , Size = 20<br /><br />jeszcze if stara sekunda &lt;&gt; nowa sekunda then <br />LCD .......<br />To po to żeby w nie wyświetlać za każdym obiegiem pętli Do ... loop bo będzie migać na wyświetlaczu.<br /><br />Koniecznie trzeba czyścić bufor tzn te tab(1) ,(2),(3)  bo to wypełnia cała pamięć aż do restartu procka <br /><br />---------------------------------edit ------------------------<br />Dla zrozumienia buforowania zobacz  na ten mały program jest on w helpie bascoma i demonstruje działanie bufora<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                    : Mega48<br />    'suited for demo          : yes<br />    'commercial addon needed  : no<br />    '-----------------------------------------------------------------------------------------<br />     <br />    $regfile = &quot;m48def.dat&quot;                                     ' specify the used micro<br />    $crystal = 8000000                                          ' used crystal frequency<br />    $baud = 19200                                               ' 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 />    'uruchom to w symulacji programowej bez $sim  w takiej konfiguracji<br /> '******************************************************    <br />'Config Serialin = Buffered , Size = 20<br />  '******************************************************<br />     <br />    Dim Nm As String * 1<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 />          Nm = Waitkey()<br />          Print Nm                                              '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]<br /><br />Uruchom to w symulacji bez $sim i z zaremowana linia Config Serialin = Buffered , Size = 20<br />Wciskaj szybki klawisze na klawiaturze w oknie terminala <br />Później dodaj ta linie <br />Config Serialin = Buffered , Size = 20<br />Teraz uruchom ponownie w symulacji tez bez $sim i wklepuj jakieś znaki.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 25 kwi 2015, o 20:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michał6201]]></name></author>
<updated>2015-04-25T19:05:47+01:00</updated>
<published>2015-04-25T19:05:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127457#p127457</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127457#p127457"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127457#p127457"><![CDATA[
Zrobiłem to w ten sposób i działa:<br />[syntax=basic4gl]$regfile = &quot;m16adef.dat&quot;<br />  $baud = 19200<br />  $crystal = 11059200<br /><br />' Konfiguracja LCD 2X16<br />Config Lcdpin = Pin , E = Portb.0 , Rs = Portb.1 , Db7 = Portb.2 , Db6 = Portb.3 , Db5 = Portb.4 , Db4 = Portb.5 , Wr = Portb.6<br />Config Lcd = 16x2        'nowy sposob zapisu<br />Cursor Off<br />Cls<br /><br />' Konfiguracja przycisków i led<br /> Config Portb.7 = Output : Portb.7 = 1 : Podswietlenie Alias Portb.7       'Konfiguracja podswietlenia<br /> Config Portd.2 = Input : Portd.2 = 1 : Sw Alias Pind.2       ' Konfiguracja przycisku<br /> Config Portd.4 = Input : Portd.4 = 1 : P Alias Pind.4       ' Konfiguracja przycisku<br /> Config Portd.3 = Output : Portd.3 = 1 : Led Alias Portd.3       'Konfiguracja LED<br /><br /> ' Konfiguracja szyny I2C<br />Config Scl = Portc.0<br />Config Sda = Portc.1<br />I2cinit<br /><br />' Zmienne zegara<br />Dim S As Byte : Dim M As Byte : Dim H As Byte<br /><br />Dim H_str As String * 2<br />Dim M_str As String * 2<br />Dim S_str As String * 2<br /><br />' Zmienne uart<br />Dim Bufor As Byte<br />Dim T_str As String * 10<br />Dim Tab(3) As String * 10<br />Dim Bcount As Byte<br /><br /><br /><br /><br />Enable Interrupts        ' Zezwolenie na przerwania<br /><br /><br />' ===========GŁÓWNA PĘTKA==============<br />Do<br /><br /><br />Locate 1 , 5<br />Lcd ; H_str ; &quot;:&quot; ; M_str ; &quot;:&quot; ; S_str ; &quot;    &quot;<br /><br />' procedura odpowiada za pobranie czasu z układu,<br />' przekształcenie go na postać dziesiętną oraz<br />' sformatowanie do postaci dwuznakowej<br /> I2cstart<br />  I2cwbyte 160<br />  I2cwbyte 2<br />  I2cstart<br />  I2cwbyte 161<br />  I2crbyte S , Ack<br />  I2crbyte M , Ack<br />  I2crbyte H , Nack<br />  I2cstop<br /><br />S = Makedec(s) : S_str = Str(s) : S_str = Format(s_str , &quot;00&quot;)<br />M = Makedec(m) : M_str = Str(m) : M_str = Format(m_str , &quot;00&quot;)<br />H = Makedec(h) : H_str = Str(h) : H_str = Format(h_str , &quot;00&quot;)<br /><br /><br /><br />Bufor = Ischarwaiting()<br />   If Bufor = 1 Then     ' Jeśli w buforze pojawią się dane z uart,to idź do procedury odbioru danych<br />   Gosub Odczytaj_uart<br /><br /> End If<br /><br />Loop<br /><br /><br />' =============PROCEDURA ODCZYTU DANYCH Z UART=====================<br />Odczytaj_uart:<br /><br />Cls<br />   T_str = &quot;&quot;            'usuniecie tego co jest<br />   Do<br />      Bufor = Waitkey()<br />      If Bufor = 13 Then Exit Do       'jak enter to wyjdź<br />      T_str = T_str + Chr(bufor)<br /><br />   Loop<br /><br />   Bcount = Split(t_str , Tab(1) , &quot;:&quot;)       ' zliczanie danych<br /><br />   Print Tab(1)<br />     Print Tab(2)<br />       Print Tab(3)<br /><br />H = Val(tab(1))          ' konwersja string na wartość liczbową<br />M = Val(tab(2))<br />S = Val(tab(3))<br /><br />S = Makebcd(s)           ' konwersja wartości liczbowej na kod BCD<br />M = Makebcd(m)           ' konwersja wartości liczbowej na kod BCD<br />H = Makebcd(h)           ' konwersja wartości liczbowej na kod BCD<br /><br />   I2cstart<br />   I2cwbyte 160<br />   I2cwbyte 2<br />   I2cwbyte S<br />   I2cwbyte M<br />   I2cwbyte H<br />   I2cstop<br /><br />   Wait 1<br />   Cls<br /> Return[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2765">michał6201</a> — 25 kwi 2015, o 19:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-04-23T22:22:25+01:00</updated>
<published>2015-04-23T22:22:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127320#p127320</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127320#p127320"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127320#p127320"><![CDATA[
<div class="quotetitle">michał6201 napisał(a):</div><div class="quotecontent"><br />Czy muszę używać select case do zapisu najpierw godziny a potem minuty?<br />A w konsoli mam wpisywać: godzina spacja minuta i enter?<br /></div><br />Możesz wpisać całość i rozdzielić czym chcesz, a potem rozbić to na kawałki:<br />[syntax=basic4gl]Dim Tab(3) As String * 3<br />Split( &quot;12:54:15&quot; , Tab(1) , &quot;:&quot;)<br />Print Tab(1)<br />Print Tab(2)<br />Print Tab(3)[/syntax]<br /><br />Tak to można zrobić:<br />[syntax=basic4gl]Odczytaj_uart:<br />   Cls<br />   T_str = &quot;&quot; 'usuniecie tego co jest<br />   Do<br />      Bufor = Waitkey()<br />      If Bufor = 13 Then Exit Do 'jak enter wyjdź<br />      T_str = T_str + Chr(Bufor)<br />   Loop<br />   Split( T_str , Tab(1) , &quot;:&quot;)<br />   H = Val(Tab(1))     ' konwersja string na wartość liczbową<br />   M = Val(Tab(2))     ' konwersja string na wartość liczbową<br />   S = Val(Tab(3))     ' konwersja string na wartość liczbową<br />   'itd.<br />Return[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 23 kwi 2015, o 22:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2015-04-22T21:58:20+01:00</updated>
<published>2015-04-22T21:58:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127211#p127211</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127211#p127211"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127211#p127211"><![CDATA[
Pewnie że możesz liczyć na pomoc przeczytaj cały wątek do którego podałem link.<br />Dziś już idę spać ale jutro chętnie Ci pomogę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 22 kwi 2015, o 21:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michał6201]]></name></author>
<updated>2015-04-22T21:59:04+01:00</updated>
<published>2015-04-22T21:53:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127210#p127210</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127210#p127210"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127210#p127210"><![CDATA[
Chyba z przemęczenia mi się wszystko miesza. Będę próbował na spokojnie zrobić zapis godziny i minuty.<br />Mam nadzieję, że mogę liczyć na pomoc, bo jak znam siebie to na bank nie zadziała coś.<br /><br />Czy muszę używać select case do zapisu najpierw godziny a potem minuty?<br />A w konsoli mam wpisywać: godzina spacja minuta i enter?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2765">michał6201</a> — 22 kwi 2015, o 21:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2015-04-22T21:31:28+01:00</updated>
<published>2015-04-22T21:31:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127208#p127208</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127208#p127208"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127208#p127208"><![CDATA[
To jest łatwe.<br />Czego nie rozumiesz ?<br />Tak jest to bufor ale nie ten co trzeba na początku.<br />Bo uart odbiera zawsze nawet jak ty go nie sprawdzasz a sprawdzasz go dopiero przez ischarwating -co znaczy znak czeka wiec jak cos przyjdzie a nie będzie bufora  to pójdzie w siną dal i procek nawet nie zareaguje.<br />Dlatego ustawiasz Config Serialin = Buffered , Size = 20 , tym 20 nie sugeruj się ta wartość jest troszkę mała.<br /><br /> pudełko_na_klocki = Waitkey() <br />      If pudełko_na_klocki = 13 Then Exit Do 'jak enter wyjdź <br />      H_str = H_str + Chr(Bufor)<br />wierza_z_klocków=wierza_z_klocków+Chr(pudełko_na_klocki)<br />Czyli tak jak byś budował wierze z klocków dodając kolejno klocek za klockiem ale tylko z pudełka.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 22 kwi 2015, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michał6201]]></name></author>
<updated>2015-04-22T21:23:38+01:00</updated>
<published>2015-04-22T21:23:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127205#p127205</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127205#p127205"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127205#p127205"><![CDATA[
Będę musiał na spokojnie usiąść i poczytać to co jest w tych linkach i próbować coś napisać.<br />Myślałem, że to będzie łatwiejsze do zrozumienia.<br /><br />Przecież jest zrobiony bufor odbiorczy w procedurze odczytaj_uart<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2765">michał6201</a> — 22 kwi 2015, o 21:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pikczu]]></name></author>
<updated>2015-04-22T20:41:05+01:00</updated>
<published>2015-04-22T20:41:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127197#p127197</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127197#p127197"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127197#p127197"><![CDATA[
Użyj split do rozdzielania.<br />koniecznie dodaj bufor odbiorczy bo widzę że go nie ma.<br />Zerknij na forum <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic10798.html" >topic10798.html</a><!-- l --> tam jest wszytko opisane<br /><br />H_str = H_str + Chr(Bufor) to budowanie bufora (nie myl z buforem config Serialin = Buffered , Size = 20)<br /><br />------------------------------------edit <br />zobacz tu <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic10798.html#p122380" >topic10798.html#p122380</a><!-- l --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=154">pikczu</a> — 22 kwi 2015, o 20:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michał6201]]></name></author>
<updated>2015-04-22T20:21:46+01:00</updated>
<published>2015-04-22T20:21:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127193#p127193</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127193#p127193"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127193#p127193"><![CDATA[
Teraz działa:)<br /><br />A gdybym chciał zmienić godziny i minuty, to jak rozdzielić te dane?<br /><br />I powiedz mi jeszcze co oznacza ten zapis: H_str = H_str + Chr(Bufor)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2765">michał6201</a> — 22 kwi 2015, o 20:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-04-22T19:38:44+01:00</updated>
<published>2015-04-22T19:38:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127183#p127183</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127183#p127183"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127183#p127183"><![CDATA[
Wykorzystaj Print do debugowania jak w tym poprawionym (mam nadzieję) fragmencie:<br />[syntax=basic4gl]Odczytaj_uart:<br />   Cls<br />   H_str = &quot;&quot; 'usuniecie tego co jest<br />   Do<br />      Bufor = Waitkey()<br />      If Bufor = 13 Then Exit Do 'jak enter wyjdź<br />      H_str = H_str + Chr(Bufor)<br />   Loop<br />   Print H_str 'kontrolnie<br />   'itd.<br /> <br />Return[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 22 kwi 2015, o 19:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michał6201]]></name></author>
<updated>2015-04-22T18:42:50+01:00</updated>
<published>2015-04-22T18:42:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127177#p127177</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127177#p127177"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127177#p127177"><![CDATA[
Niestety nie wpisuje się poprawna wartość. Np. wpisując 23, na lcd wyświetla się 71.<br />Ale da się już wpisywać liczbę 2-cyfrową.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2765">michał6201</a> — 22 kwi 2015, o 18:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2015-04-22T18:27:17+01:00</updated>
<published>2015-04-22T18:27:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127175#p127175</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127175#p127175"/>
<title type="html"><![CDATA[Re: Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127175#p127175"><![CDATA[
Nie widzę w tym kodzie dołączania drugiego znaku do stringa. A wprowadzanie danych najlepiej kończyć klawiszem Enter:<br />[syntax=basic4gl]Odczytaj_uart:<br />   Cls<br />   Do<br />      Bufor = Waitkey()<br />      If Bufor = 13 Then Exit Do 'jak enter wyjdź<br />      H_str = H_str + Chr(Bufor)<br />   Loop<br /><br />   Bufor = Ischarwaiting()<br /> <br />   H = Val(h_str)     ' konwersja string na wartość liczbową<br /> <br />   H = Makebcd(h)   ' Konwersja na kod BCD<br />   I2cstart           ' zapis wartości<br />   I2cwbyte 160<br />   I2cwbyte 4<br />   I2cwbyte H<br />   I2cstop<br /> <br />   Wait 1<br /><br />Return[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 22 kwi 2015, o 18:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michał6201]]></name></author>
<updated>2015-04-22T18:10:49+01:00</updated>
<published>2015-04-22T18:10:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127174#p127174</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127174#p127174"/>
<title type="html"><![CDATA[Komunikacja RS232 - przesyła cyfry od 0 do 9. Bascom AVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11463&amp;p=127174#p127174"><![CDATA[
Witam<br /><br />Mam skonfigurowaną komunikację RS232 przez bluetooth. Od strony technicznej wszystko działa - mogę wyświetlać napisy na lcd i z procka na konsoli Putty.<br /><br />Uczę się transmisji, więc proszę o wyrozumiałość.<br /><br />Stworzyłem mały programik w Bascomie do wyświetlania czasu z PCF8583. Chciałem zmieniać np. godzinę wpisując ją w konsoli.<br /><br />[syntax=basic4gl]$regfile = &quot;m16adef.dat&quot;<br />  $baud = 19200<br />  $crystal = 11059200<br /><br /><br />Config Lcdpin = Pin , E = Portb.0 , Rs = Portb.1 , Db7 = Portb.2 , Db6 = Portb.3 , Db5 = Portb.4 , Db4 = Portb.5 , Wr = Portb.6<br /><br />  Config Lcd = 16x2      'nowy sposob zapisu<br />Cursor Off<br />Cls<br /><br /> Config Portb.7 = Output : Portb.7 = 1 : Podswietlenie Alias Portb.7       'Konfiguracja podswietlenia<br /> Config Portd.2 = Input : Portd.2 = 1 : Sw Alias Pind.2       ' Konfiguracja przycisku<br /> Config Portd.4 = Input : Portd.4 = 1 : P Alias Pind.4       ' Konfiguracja przycisku<br /> Config Portd.3 = Output : Portd.3 = 1 : Led Alias Portd.3       'Konfiguracja LED<br /><br /> ' Konfiguracja szyny I2C<br />Config Scl = Portc.0<br />Config Sda = Portc.1<br />I2cinit<br /><br />' Zmienne zegara<br />Dim S As Byte : Dim M As Byte : Dim H As Byte<br /><br />Dim H_str As String * 30<br />Dim M_str As String * 2<br />Dim S_str As String * 2<br /><br />' Zmienne UART<br />Dim Dane As String * 30<br />Dim Kod As Byte<br />Dim Bufor As Byte<br /><br /><br />Enable Interrupts<br /><br />' Główna pętla<br />Do<br /><br /><br />Locate 1 , 5<br />Lcd ; H_str ; &quot;:&quot; ; M_str ; &quot;:&quot; ; S_str<br /><br />' procedura odpowiada za pobranie czasu z układu,<br />' przekształcenie go na postać dziesiętną oraz<br />' sformatowanie do postaci dwuznakowej<br /> I2cstart<br />  I2cwbyte 160<br />  I2cwbyte 2<br />  I2cstart<br />  I2cwbyte 161<br />  I2crbyte S , Ack<br />  I2crbyte M , Ack<br />  I2crbyte H , Nack<br />  I2cstop<br /><br />S = Makedec(s) : S_str = Str(s) : S_str = Format(s_str , &quot;00&quot;)<br />M = Makedec(m) : M_str = Str(m) : M_str = Format(m_str , &quot;00&quot;)<br />H = Makedec(h) : H_str = Str(h) : H_str = Format(h_str , &quot;00&quot;)<br /><br /><br /><br />Bufor = Ischarwaiting()<br />   If Bufor = 1 Then<br /><br />   Gosub Odczytaj_uart<br /><br /> End If<br /><br />Loop<br /><br />Odczytaj_uart:<br />Cls<br />Do<br /><br />H_str = Waitkey()<br />Bufor = Ischarwaiting()<br /><br />H = Val(h_str)     ' konwersja string na wartość liczbową<br /><br />H = Makebcd(h)   ' Konwersja na kod BCD<br />   I2cstart           ' zapis wartości<br />   I2cwbyte 160<br />   I2cwbyte 4<br />   I2cwbyte H<br />   I2cstop<br /><br />   Wait 1<br />   Cls<br /> Return<br /><br />Loop<br />End[/syntax] <br /><br />I teraz wygląda to tak, że mogę wprowadzić wartość godziny od 0 do 9, a jak chcę wpisać np. godzinę 22, to wpisuje się 02.<br />Pewnie coś źle robię, tylko co?<br /><br />Z góry dziękuję za wszystkie porady.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2765">michał6201</a> — 22 kwi 2015, o 18:10</p><hr />
]]></content>
</entry>
</feed>