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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-04-02T20:46:41+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=18056&amp;mode</id>
<entry>
<author><name><![CDATA[krish]]></name></author>
<updated>2017-04-02T20:46:41+01:00</updated>
<published>2017-04-02T20:46:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18056&amp;p=186224#p186224</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18056&amp;p=186224#p186224"/>
<title type="html"><![CDATA[Re: SPI-2xAVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18056&amp;p=186224#p186224"><![CDATA[
Nie wnikając w kod; W SPI to master wysyła jakąś daną ( sterując zegarem ) do slave'a , i przy &quot;okazji&quot; odczytując ze slave'a odsyłaną przez niego inną daną.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2273">krish</a> — 2 kwi 2017, o 20:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[michaeleagle]]></name></author>
<updated>2017-04-02T18:46:27+01:00</updated>
<published>2017-04-02T18:46:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=18056&amp;p=186210#p186210</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=18056&amp;p=186210#p186210"/>
<title type="html"><![CDATA[SPI-2xAVR]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=18056&amp;p=186210#p186210"><![CDATA[
Cześć<br /><br />Planuję zrobić większy projekt, w którym 2 mikrokontrolery będą komunikowały się poprzez SPI.<br />Na początku jednak chciałem sprawdzić czy wszystko gra, więc napisałem banalnie prosty program, gdzie Slave(ATmega8) wysyła znak do MASTERA, a ten wysyła go przez UART do PC. I niestety nie działa i póki co nie mam pomysłu dlaczego.<br /><br />SLAVE:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *SLAVE<br /> *ATmega8A<br /> *<br /> *  Created on: 01.04.2017<br /> *      Author: Eagle<br /> */<br /><br />//pliki biblioteczne<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;SPI_lib/spi.h&quot;<br /><br />uint8_t znak='M';<br /><br />//funkcja główna<br />int main(void)<br />{<br />//inicjalizacja procesora<br />spi_init_slave();<br />//pętla główna<br />while(1)<br />{<br />spi_sendbyte(znak);<br /><br />}//koniec pętli głównej<br /><br />}//koniec main[/syntax]<br /><br />MASTER:<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *MASTER<br /> *ATmega328P<br /> *<br /> *  Created on: 01.04.2017<br /> *      Author: Eagle<br /> */<br /><br />//pliki biblioteczne<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;SPI_lib/spi.h&quot;<br />#include &quot;uart.h&quot;<br /><br />void readbyte(void);<br /><br /><br />//funkcja główna<br />int main(void)<br />{<br />//inicjalizacja procesora<br />USART_Init(UBBR_U2X0);//9600<br />USART_Transmit_Str_p(PSTR(&quot;START\n&quot;));<br />spi_init_master();<br />PORTB &amp;=~ (1&lt;&lt;SS);//aktywacja układu SLAVE<br />//pętla główna<br />while(1)<br />{<br />readbyte();<br />}//koniec pętli głównej<br /><br />}//koniec main<br /><br /><br />void readbyte(void)<br />{<br />USART_Transmit(spi_readbyte());<br />}[/syntax]<br /><br />SPI:<br />[syntax=c]void spi_init_master(void)//inicjalizacja interfejsu dla układu MASTER<br />{<br />//MOSI,SCK,SS jako wyjścia<br />DDRB |= (1&lt;&lt;MOSI) | (1&lt;&lt;SCK) | (1&lt;&lt;SS);<br />//włączenie układu SPI,tryb master<br />SPCR |= (1&lt;&lt;SPE) | (1&lt;&lt;MSTR);<br />}<br /><br />void spi_init_slave(void)//inicjalizacja interfejsu dla układu SLAVE<br />{<br />//MISO jako wyjście<br />DDRB |= (1&lt;&lt;MISO);<br />//włączenie układu<br />SPCR |= (1&lt;&lt;SPE);<br />}<br /><br />void spi_sendbyte(uint8_t byte)//wysłanie 1B<br />{<br />SPDR=byte;<br />while(!(SPSR &amp; (1&lt;&lt;SPIF)));//oczekujemy na zakończenie transmisji(ustawienie flagi SPIF)<br />}<br /><br />uint8_t spi_readbyte(void)//odebranie 1B<br />{<br />while(!(SPSR &amp; (1&lt;&lt;SPIF)));//oczekujemy na zakończenie transmisji(ustawienie flagi SPIF)<br />return SPDR;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16396">michaeleagle</a> — 2 kwi 2017, o 18:46</p><hr />
]]></content>
</entry>
</feed>