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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-01-03T14:42:01+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=19902&amp;mode</id>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2018-01-03T14:42:01+01:00</updated>
<published>2018-01-03T14:42:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19902&amp;p=201423#p201423</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19902&amp;p=201423#p201423"/>
<title type="html"><![CDATA[Re: Krzaki RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19902&amp;p=201423#p201423"><![CDATA[
Włącz BODa.<br /><br />-- <br />Pozdrawiam<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 3 sty 2018, o 14:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[fotograf9]]></name></author>
<updated>2018-01-03T12:24:56+01:00</updated>
<published>2018-01-03T12:24:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19902&amp;p=201419#p201419</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19902&amp;p=201419#p201419"/>
<title type="html"><![CDATA[Krzaki RS232]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19902&amp;p=201419#p201419"><![CDATA[
Witam.<br /><br />Mam taki nietypowy problem. Odbiór i wysyłanie danych po UART działa poprawnie. Odbieram i wysyłam dane nadpisane w buforze. Wszystko jest ok, ale problem pojawia się gdy ściągam ze sterownika zasilanie. Wtedy na porcie COM lecą krzaki i tak samo przy włączeniu zasilania przez co wywala mi się program. Po otrzymaniu odpowiednich ramek wraca komunikacja do normy, w trakcie nie pojawią się krzaki<br /><br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 11 gru 2017<br /> *      Author: Blazej<br /> */<br /><br />/*<br /> *<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#include &quot;UART/UART.h&quot;<br />#include &quot;config.h&quot;<br /><br /><br />int main(void){<br />DDRC|=(1&lt;&lt;LED_PIN);<br />LED_OF;<br />USART_Init(__UBRR);<br />uint8_t odebrany_znak=0;<br />uint8_t ramka_danych_odbiorcza &#91;21&#93;; //tablica ramki danych z miernika rhewa<br />uint8_t ramka_danych_nadawcza &#91;18&#93;={2,113,48,48,32,32,32,32,32,48,32,32,32,32,32,48,13,92}; //startowy format ramki danych<br />uint8_t ilosc_znakow_ramki_nadawcza= 18;<br />uint8_t gotowe_do_wyslania=0;<br />sei ();<br />for (uint8_t i=0;i&lt;UART_RX_BUF_SIZE;i++)UART_RxBuf&#91;i&#93;=32;<br />for (uint8_t i=0;i&lt;UART_TX_BUF_SIZE;i++)UART_TxBuf&#91;i&#93;=32;<br />for(uint8_t i=0;i&lt;ilosc_znakow_ramki_nadawcza;i++){<br />uart_putc(ramka_danych_nadawcza&#91;i&#93;);<br />}<br />while(1) {<br />odebrany_znak=uart_getc(); //pobieramy znak do zmiennej odebrany znak<br />if(odebrany_znak==2) { //jezeli napotkalismy znacznik STX to ustawiamy zmienna kontrolna na 1<br />//jezeli ziemnna porownawcza jest 1 to wpadamy w petle<br />for(uint8_t i=0;i&lt;21;) { //petla sprawdzajaca 21 kolejnych znakow<br />odebrany_znak=uart_getc(); //po raz kolejny pobieramy znak do zmiennej<br />if(odebrany_znak!=0){ //sprawdzamy czy nie jest on 0<br />ramka_danych_odbiorcza&#91;i&#93;=odebrany_znak; //zapisujemy znak do tabeli porownawczej<br />i++; // zwiekszamy petle<br />}<br />if(i==21) LED_TOG; //mruganie diodą, funkcja infomracyjna o działaniu przerwania i przychodzeniu ramki danych }<br />if(((ramka_danych_odbiorcza&#91;0&#93;&gt;47 &amp;&amp; ramka_danych_odbiorcza&#91;0&#93;&lt;58) || ramka_danych_odbiorcza&#91;0&#93;==32 || ramka_danych_odbiorcza&#91;0&#93;==45) &amp;&amp;<br />   ((ramka_danych_odbiorcza&#91;1&#93;&gt;47 &amp;&amp; ramka_danych_odbiorcza&#91;1&#93;&lt;58) || ramka_danych_odbiorcza&#91;1&#93;==32 || ramka_danych_odbiorcza&#91;1&#93;==45) &amp;&amp;<br />   ((ramka_danych_odbiorcza&#91;2&#93;&gt;47 &amp;&amp; ramka_danych_odbiorcza&#91;2&#93;&lt;58) || ramka_danych_odbiorcza&#91;2&#93;==32 || ramka_danych_odbiorcza&#91;2&#93;==45) &amp;&amp;<br />   ((ramka_danych_odbiorcza&#91;3&#93;&gt;47 &amp;&amp; ramka_danych_odbiorcza&#91;3&#93;&lt;58) || ramka_danych_odbiorcza&#91;3&#93;==32 || ramka_danych_odbiorcza&#91;3&#93;==45) &amp;&amp;<br />   ((ramka_danych_odbiorcza&#91;4&#93;&gt;47 &amp;&amp; ramka_danych_odbiorcza&#91;4&#93;&lt;58) || ramka_danych_odbiorcza&#91;4&#93;==45) &amp;&amp;<br />   (ramka_danych_odbiorcza&#91;5&#93;&gt;47 &amp;&amp; ramka_danych_odbiorcza&#91;5&#93;&lt;58) &amp;&amp; ramka_danych_odbiorcza&#91;18&#93;==13 &amp;&amp; ramka_danych_odbiorcza&#91;19&#93;==10 &amp;&amp; ramka_danych_odbiorcza&#91;20&#93;==4) {<br />//po odczytaniu danych z ramki zapisujemy je do nowej talbicy na wzor ramki <br />//na poczatek sprawdzamy czy jest minus w ramce<br />if(ramka_danych_odbiorcza&#91;0&#93;==45 || ramka_danych_odbiorcza&#91;1&#93;==45 ||  ramka_danych_odbiorcza&#91;2&#93;==45 ||  ramka_danych_odbiorcza&#91;3&#93;==45 ||  ramka_danych_odbiorcza&#91;4&#93;==45 || ramka_danych_odbiorcza&#91;5&#93;==45) {<br />ramka_danych_nadawcza&#91;2&#93;=50; //jezeli jest no to zmieniamy na drugim miejscu ramki z 0 na 2 bo to oznacza wartosc ujemna<br />}<br />else ramka_danych_nadawcza&#91;2&#93;=48;<br />// zapisujemy teraz w ramce koljne znaki do wzorcowej ramki flintec. jezeli w ramce byl minus to zamieniamy to na spacje bo w ramce flintec minus jest w innym miejscu<br /><br /><br />}<br />for(uint8_t i=0;i&lt;6;) {<br />uint8_t znak_z_ramki_odbiorczej=0;<br />znak_z_ramki_odbiorczej=ramka_danych_odbiorcza&#91;0+i&#93;;<br />if(znak_z_ramki_odbiorczej==45)znak_z_ramki_odbiorczej=32;<br />else znak_z_ramki_odbiorczej=ramka_danych_odbiorcza&#91;0+i&#93;;<br />ramka_danych_nadawcza&#91;4+i&#93;=ramka_danych_odbiorcza;<br />i++;<br />if(i==6)gotowe_do_wyslania=1;<br />}<br />}<br /><br /><br />// na konic wysylamy wszytskie bity po rs232<br />if(gotowe_do_wyslania==1){<br />for(uint8_t i=0;i&lt;ilosc_znakow_ramki_nadawcza;i++){<br /> uart_putc(ramka_danych_nadawcza&#91;i&#93;);<br />}<br />gotowe_do_wyslania=0;<br />}<br />}<br />}[/syntax]<br /><br />Przerwanie odbioru i nadania jest zapożyczone z BB. Dziękuję za pomoc<br /><br /><br />jeżeli chodzi o wersję sprzętową to podpięte mam zasilanie przez mostek i stablizator wraz z kondesatorami na wyjsciu. Kwarc 16Mhz. Max232. Na liniach TX i RX szeregowo wpięty rezystor 100 Ohm.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3647">fotograf9</a> — 3 sty 2018, o 12:24</p><hr />
]]></content>
</entry>
</feed>