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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-07-10T15:40:13+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=18779&amp;mode</id>
<entry>
<author><name><![CDATA[Patrix354]]></name></author>
<updated>2017-07-10T15:40:13+01:00</updated>
<published>2017-07-10T15:40:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18779&amp;p=191898#p191898</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18779&amp;p=191898#p191898"/>
<title type="html"><![CDATA[Re: Krzaki w Soft Uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18779&amp;p=191898#p191898"><![CDATA[
Oj jak zwykle gapa ze mnie. <img src="https://forum.atnel.pl/images/smilies/icon_neutral.gif" alt=":|" title="Średnio zadowolony" />  Już działa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14168">Patrix354</a> — 10 lip 2017, o 15:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2017-07-10T15:31:32+01:00</updated>
<published>2017-07-10T15:31:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18779&amp;p=191897#p191897</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18779&amp;p=191897#p191897"/>
<title type="html"><![CDATA[Re: Krzaki w Soft Uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18779&amp;p=191897#p191897"><![CDATA[
W funkcji void UART_init(void), powinno być:<br />[syntax=c]#if USE_TxD == 1<br />        TxD_DDR |= (1&lt;&lt;TxD);<br />        TxD_PORT |= (1&lt;&lt;TxD);<br />#endif[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 10 lip 2017, o 15:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Patrix354]]></name></author>
<updated>2017-07-10T15:16:12+01:00</updated>
<published>2017-07-10T15:16:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18779&amp;p=191896#p191896</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18779&amp;p=191896#p191896"/>
<title type="html"><![CDATA[Krzaki w Soft Uart]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18779&amp;p=191896#p191896"><![CDATA[
Po obejrzeniu poradników Mirka o Soft Uarcie zacząłem pisać bibliotekę w oparciu o notę AVR305. Napisałem podstawowe funkcje i pierwszy programik testowy (by się upewnić czy wszystko działa, programik ma zwracać echo). Niby wszystko działa ale po resecie mikrokontrolera pierwszy znak echa to jest jakiś krzak np. zamiast napisu &quot;Ala ma kota&quot; dostaje w odpowiedź &quot;Đla ma kota&quot;. Dalsze znaki są w porządku. Czym to może być spowodowane? (kod zamieszczam poniżej)<br /><br />Main.c:<br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br />#include &quot;soft_uart.h&quot;<br /><br />int main(void)<br />{<br />UART_init();<br />    while (1) <br />    {<br />UART_transmit(UART_receive());<br />    }<br />}[/syntax]<br /><br />soft_uart.h:<br />[syntax=c]#ifndef SOFT_UART_H_<br />#define SOFT_UART_H_<br /><br />#define TxD_PORT PORTB<br />#define TxD_PIN PINB<br />#define TxD_DDR DDRB<br />#define TxD PB0<br /><br />#define RxD_PORT PORTB<br />#define RxD_PIN PINB<br />#define RxD_DDR DDRB<br />#define RxD PB1<br /><br />#define USE_TxD 1<br />#define USE_RxD 1<br /><br />#define STOP_BITS 1<br /><br />#define b_value 252//14.746MHz 9600bps<br /><br />#ifndef __ASSEMBLER__<br />void UART_init(void);<br />void UART_transmit(uint8_t data);<br />uint8_t UART_receive(void);<br />#endif<br /><br />#endif /* SOFT_UART_H_ */[/syntax]<br /><br />soft_uart.c:<br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br />#include &quot;soft_uart.h&quot;<br /><br />void UART_init(void)<br />{<br />#if USE_TxD == 1 <br />TxD_DDR |= (1&lt;&lt;TxD);<br />#endif<br /><br />#if USE_RxD == 1<br />RxD_DDR &amp;= ~(1&lt;&lt;RxD);<br />RxD_PORT |= (1&lt;&lt;RxD);<br />#endif<br />}[/syntax]<br /><br />soft_uart_asm.S:<br />[syntax=asm]#include &lt;avr/io.h&gt;<br /><br />#include &quot;soft_uart.h&quot;<br /><br />.section .text<br /><br />UART_delay:<br />ldi r18, b_value<br />UART_delay1: <br />dec r18<br />brne UART_delay1<br />ret <br /><br />.global UART_transmit<br />UART_transmit:<br /><br />push r16<br />push r17<br />push r18<br /><br />mov r16, r24<br />ldi r17, 1+8+STOP_BITS<br />com r16<br />sec<br />transmit1:<br />brcs transmit2<br />sbi _SFR_IO_ADDR(TxD_PORT), TxD<br />rjmp transmit3<br />transmit2:<br />cbi _SFR_IO_ADDR(TxD_PORT), TxD<br />transmit3:<br /><br />rcall UART_delay<br />rcall UART_delay<br /><br />lsr r16<br />dec r17<br />brne transmit1<br /><br />pop r18<br />pop r17<br />pop r16<br />ret<br /><br />.global UART_receive<br />UART_receive:<br /><br />push r16<br />push r17<br />push r18<br /><br />ldi r17, 8+STOP_BITS<br />receive1:<br />sbic _SFR_IO_ADDR(RxD_PIN), RxD<br />rjmp receive1<br /><br />rcall UART_delay<br />receive2:<br />rcall UART_delay<br />rcall UART_delay<br />clc<br /><br />sbic _SFR_IO_ADDR(RxD_PIN), RxD<br />sec<br />dec r17<br />brne receive3<br />mov r24, r16<br /><br />pop r18<br />pop r17<br />pop r16<br />ret<br /><br />receive3:<br />ror r16<br />rjmp receive2<br /><br />.end[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14168">Patrix354</a> — 10 lip 2017, o 15:16</p><hr />
]]></content>
</entry>
</feed>