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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=20414&amp;mode</id>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2018-03-15T17:18:42+01:00</updated>
<published>2018-03-15T17:18:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20414&amp;p=205588#p205588</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20414&amp;p=205588#p205588"/>
<title type="html"><![CDATA[Re: Problem z uruchomieniem SPI dla układu FT81x]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20414&amp;p=205588#p205588"><![CDATA[
Używamy zipów a nie rarów, 7z itp.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 15 mar 2018, o 17:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[AbdulAbdul]]></name></author>
<updated>2018-03-16T08:18:09+01:00</updated>
<published>2018-03-15T13:45:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20414&amp;p=205583#p205583</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20414&amp;p=205583#p205583"/>
<title type="html"><![CDATA[Problem z uruchomieniem SPI dla układu FT81x]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20414&amp;p=205583#p205583"><![CDATA[
Witam,<br /><br />W moje ręce wpadła płytka VM810C50A-N <!-- m --><a class="postlink" href="http://www.ftdichip.com/Support/Documents/DataSheets/Modules/DS_VM810C.pdf" >http://www.ftdichip.com/Support/Documen ... VM810C.pdf</a><!-- m --> oraz wyświetlacz 4.3&quot; 480x272 z rezystancyjnym panelem dotykowym<br />Chciałem się nią pobawić, bibliotekę znalazłem tu (jako przykłady do książki )-&gt; <!-- m --><a class="postlink" href="https://helion.pl/ksiazki/mikrokontrolery-avr-i-arm-sterowanie-wyswietlaczami-lcd-tomasz-francuz,miklcd.htm#format/d" >https://helion.pl/ksiazki/mikrokontrole ... m#format/d</a><!-- m --><br />Niestety przykłady w książce są dla ATxmega oraz SAMD21 - żadnego z tych mikrokontrolerów nie posiadam wiec postanowiłem przerobić jeden z przykładów na ATMEGA32A. Wyglądało to na prostą operację ale niestety coś mi nie idzie i SPI nie wysyła tego co powinien. Czy znajdzie się jakaś dobra duszyczka i mi pomoże?<br /><br />Wrzucam spakowany projekt oraz odczyt z analizatora stanów logicznych.  <br /><br />Fragment kodu odpowiedzialny za obsługę SPI<br /><br />[syntax=c]#ifndef FT_SPI_H_<br />#define FT_SPI_H_<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;stdbool.h&gt;<br /><br />//Wszystkie sygnały domyślnie są na PORTE<br />//#define SPIPORTUSARTE0//Port do transmisji SPI<br />//#define FT800_CTRL_PORTPORTE//Port do którego podłączone są sygnały sterujące<br />#define FT800_MOSIPB5//Pin MOSI interfejsu SPI<br />#define FT800_SCKPB7//Pin SCK interfejsu SPI<br />#define FT800_PDNPD3//Pin PDN<br />#define FT800_CSelPB4             //Pin CS kontrolera<br />#define FT800_IRQPD2             //Pin IRQ inaczej Pin INT<br /><br />void FT800_CS(_Bool state)<br />{<br />if(state) PORTB &amp;= ~(1&lt;&lt;FT800_CSel);   //Aktywuj CS<br />else PORTB |= (1&lt;&lt;FT800_CSel);        //Deaktywuj CS<br />}<br /><br />void FT800_PD(_Bool state)<br />{<br />if(state) PORTD |= (1&lt;&lt;FT800_PDN);   //Aktywuj PDN<br />else PORTD &amp;= ~(1&lt;&lt;FT800_PDN);        //Deaktywuj PDN<br />}<br /><br />//Inicjalizacja interfejsu SPI // tak jakoś głupio nazwana :P<br />void USART_init()<br />{<br />DDRD |= (1&lt;&lt;FT800_PDN);<br />DDRB |= (1&lt;&lt;FT800_MOSI)|(1&lt;&lt;FT800_SCK)|(1&lt;&lt;FT800_CSel);<br />    SPCR |= (1&lt;&lt;SPE)|(1&lt;&lt;MSTR)|(1&lt;&lt;SPR1);<br />}<br /><br />//Funkcja wysyła/odbiera bajt z SPI, przy czym czeka na zakończenie wysyłki<br />uint8_t FT800_SPIRW(uint8_t ch)<br />{<br />/*<br />SPIPORT.DATA=ch;<br />while(!(SPIPORT.STATUS &amp; USART_TXCIF_bm));  //Zaczekaj na wysłanie danych<br />SPIPORT.STATUS=USART_TXCIF_bm;              //Skasuj flagę<br />return SPIPORT.DATA;<br />*/<br /><br />   uint8_t DataRead = 0;<br /><br />    SPDR = (ch);                                                    // Write data to SPI data register<br />    while( !(SPSR &amp; (1&lt;&lt;SPIF)) );                                            // Wait for completion of the SPI transfer<br />    DataRead = SPDR;                                                         // Get the value clocked in from the FT8xx<br /><br />    return DataRead;<br />}<br /><br />//Częstotliwość SPI nie większa niż 10 MHz do inicjalizacji FT800/801<br />void FT800_SPICLK10M()<br />{<br />//SPIPORT.BAUDCTRLA=0;<br />//SPIPORT.BAUDCTRLB=0;<br />SPSR |= (1&lt;&lt;SPR0);<br /><br />}<br /><br />//Maksymalna dostępna w MCU szybkość SPI lecz nie więcej niż 30 MHz<br />void FT800_SPICLKMAX()<br />{<br />//SPIPORT.BAUDCTRLA=0;<br />//SPIPORT.BAUDCTRLB=0;<br />SPSR |= (1&lt;&lt;SPI2X);<br /><br />}<br /><br />#endif /* FT_SPI_H_ */[/syntax]<br /><br /><a href="https://obrazkiforum.atnel.pl/695/f65048f3cc32cbd07ad6a2044c94a06f.PNG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/695/f65048f3cc32cbd07ad6a2044c94a06f.PNG" alt="Obrazek" /></a><br /><br />EDIT: Zmieniłem spakowany plik z .7z na .zip<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=695">AbdulAbdul</a> — 15 mar 2018, o 13:45</p><hr />
]]></content>
</entry>
</feed>