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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-03-14T11:34:16+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=11049&amp;mode</id>
<entry>
<author><name><![CDATA[henryxxl]]></name></author>
<updated>2015-03-14T11:34:16+01:00</updated>
<published>2015-03-14T11:34:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=11049&amp;p=123443#p123443</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=11049&amp;p=123443#p123443"/>
<title type="html"><![CDATA[Załączanie diod uart.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=11049&amp;p=123443#p123443"><![CDATA[
Witam.<br />Chcę wykonać komunikację pomiędzy atmegami8 wykorzystując uart. Po stronie pierwszej atmegi ma być 8  przycisków a po stronie drugiej atmegi 8 diod. Jeżeli trzymam przycisk nr.1 to dioda nr.1 ma się świecić. Mój problem polega na tym że napisałem króciutki program który zapala diodę (jeszcze korzystam z putty i jednej atmegi) ale jak trzymam dłużej przycisk na klawiaturze to dioda migocze. Poniżej filmik jak i program.<br /><!-- m --><a class="postlink" href="https://www.youtube.com/watch?v=5EJFONCOe-g" >https://www.youtube.com/watch?v=5EJFONCOe-g</a><!-- m --><br />Pozdrawiam.<br />[syntax=c]#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include&lt;util/delay.h&gt;<br />#include&lt;avr/pgmspace.h&gt;<br />#include&quot;uart/uart.h&quot;<br /> <br />char work_buffer0&#91;RX0_BUFFER_SIZE&#93;;<br />#define KEY_PIN (1&lt;&lt;PB1)<br />#define KEY_DOWN !(PINB &amp; KEY_PIN)<br /> <br />#define LED_PIN (1&lt;&lt;PB0)                        //definicja pinu diody<br />#define LED_ON PORTB &amp;= ~ LED_PIN       //wlaczenie diody<br />#define LED_OFF PORTB |= LED_PIN        //wylaczenie diody<br />//aplikacja testowa - propozycja Krausera<br />int main(void) {<br />        char zmienna;<br />        uart_init(0, __UBRR0);<br /> <br />        sei();<br />        //test funkcji<br /> <br />        DDRB &amp;= ~KEY_PIN; // kierunek pinu PB1 - wejściowy<br />        PORTB |= KEY_PIN; // podciągnięcie pinu do VCC<br /> <br />        DDRB |= LED_PIN; // kierunek pinu PB0 – wyjściowy<br />        PORTB |= LED_PIN; // wyłączenie diody LED<br /> <br />        while (1) {<br /> <br />                zmienna = uart_get_char(0);<br />                if (KEY_DOWN) {<br />                        uart_put_char(0, 'd');<br />                }<br /> <br />                if (zmienna == '2') {<br />                        LED_OFF;<br />                        _delay_ms(10);<br /> <br />                }<br />                else<br />                                {<br />                                        LED_ON;<br /> <br />                                }<br /> <br />        }<br />}[/syntax]<br /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 37 minutach ]</span></strong><br /><br />Podłączyłem dwie atmegi zamiast atmega+pc i wszystko działa tak jak chciałem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=639">henryxxl</a> — 14 mar 2015, o 11:34</p><hr />
]]></content>
</entry>
</feed>