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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-10-05T19:27:22+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=16395&amp;mode</id>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2016-10-05T19:27:22+01:00</updated>
<published>2016-10-05T19:27:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170549#p170549</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170549#p170549"/>
<title type="html"><![CDATA[Re: Przeportowanie AVR - RPi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170549#p170549"><![CDATA[
<div class="quotetitle">Sparrow-hawk napisał(a):</div><div class="quotecontent"><br />Gdzie masz dołączony nagłówek zawierający definicje funkcji przeznaczonych do obsługi LCD?<br /></div><br /><br />w pliku: NOVITUS_graphic_display_library.h<br /><br />wygląda on tak:<br /><br />[syntax=c]#define Y_resolution 32  // 32 or 64<br />#define X_resolution 132<br />#if Y_resolution == 32<br />#define Y0_address 0x42<br />#endif<br /><br />#if Y_resolution == 64<br />#define Y0_address 0x47<br />#endif<br /><br /><br />// LCD PINS                          LCD Pin name   LCD Pin nr.    SPI pin name<br />#define DC_PIN                  4  //   D/C            4<br />#define CS_PIN                 22  //   /CS            7               SS               chip select<br />#define MOSI_PIN               10  //   MOSI           3               MOSI<br />#define RES_PIN                17  //   RST            6               RESET<br />#define SCLK_PIN               11  //   SCLK           5               SCK<br /><br /><br /><br />#define SET_DC_PIN                 digitalWrite(DC_PIN, HIGH)<br />#define CLEAR_DC_PIN               digitalWrite(DC_PIN, LOW)<br />#define SET_CS_PIN                 digitalWrite(CS_PIN, HIGH)<br />#define CLEAR_CS_PIN               digitalWrite(CS_PIN, LOW)<br />#define SET_RES_PIN                digitalWrite(RES_PIN, HIGH)<br />#define CLEAR_RES_PIN              digitalWrite(RES_PIN, LOW)<br /><br /><br /><br /><br />void LCD_SPI_init(void);<br />void LCD_init ( void );<br />void LCD_writeCommand (unsigned char command );<br />void LCD_writeData (unsigned char Data);<br />void LCD_clear ( void );<br />void LCD_gotoX0Y0 ( void );<br />void LCD_writeChar (unsigned char ch);<br />void LCD_writeString_F ( const char *string);<br />void LCD_gotoXY ( unsigned char x, unsigned char y );<br />void LCD_LoadBMP(unsigned char *bitmap);<br />void LCD_writeInt (int i);<br /><br />/*--------------------------------------------------------------------------------------------------<br />                                     5x7 size character generator<br />--------------------------------------------------------------------------------------------------*/<br /><br /><br />static const unsigned char smallFont&#91;&#93; =<br />{<br />     0x00, 0x00, 0x00, 0x00, 0x00,   // sp<br />     0x00, 0x00, 0x2f, 0x00, 0x00,    // !<br />     0x00, 0x07, 0x00, 0x07, 0x00,   // &quot;<br />     0x14, 0x7f, 0x14, 0x7f, 0x14,   // #<br />     0x24, 0x2a, 0x7f, 0x2a, 0x12,   // $<br />     0xc4, 0xc8, 0x10, 0x26, 0x46,   // %<br />     0x36, 0x49, 0x55, 0x22, 0x50,   // &amp;<br />     0x00, 0x05, 0x03, 0x00, 0x00,   // '<br />     0x00, 0x1c, 0x22, 0x41, 0x00,   // (<br />     0x00, 0x41, 0x22, 0x1c, 0x00,   // )<br />     0x14, 0x08, 0x3E, 0x08, 0x14,   // *<br />     0x08, 0x08, 0x3E, 0x08, 0x08,   // +<br />     0x00, 0x00, 0x50, 0x30, 0x00,   // ,<br />     0x10, 0x10, 0x10, 0x10, 0x10,   // -<br />     0x00, 0x60, 0x60, 0x00, 0x00,   // .<br />     0x20, 0x10, 0x08, 0x04, 0x02,   // /<br />     0x3E, 0x51, 0x49, 0x45, 0x3E,   // 0<br />     0x00, 0x42, 0x7F, 0x40, 0x00,   // 1<br />     0x42, 0x61, 0x51, 0x49, 0x46,   // 2<br />     0x21, 0x41, 0x45, 0x4B, 0x31,   // 3<br />     0x18, 0x14, 0x12, 0x7F, 0x10,   // 4<br />     0x27, 0x45, 0x45, 0x45, 0x39,   // 5<br />     0x3C, 0x4A, 0x49, 0x49, 0x30,   // 6<br />     0x01, 0x71, 0x09, 0x05, 0x03,   // 7<br />     0x36, 0x49, 0x49, 0x49, 0x36,   // 8<br />     0x06, 0x49, 0x49, 0x29, 0x1E,   // 9<br />     0x00, 0x36, 0x36, 0x00, 0x00,   // :<br />     0x00, 0x56, 0x36, 0x00, 0x00,   // ;<br />     0x08, 0x14, 0x22, 0x41, 0x00,   // &lt;<br />     0x14, 0x14, 0x14, 0x14, 0x14,   // =<br />     0x00, 0x41, 0x22, 0x14, 0x08,   // &gt;<br />     0x02, 0x01, 0x51, 0x09, 0x06,   // ?<br />     0x32, 0x49, 0x59, 0x51, 0x3E,   // @<br />     0x7E, 0x11, 0x11, 0x11, 0x7E,   // A<br />     0x7F, 0x49, 0x49, 0x49, 0x36,   // B<br />     0x3E, 0x41, 0x41, 0x41, 0x22,   // C<br />     0x7F, 0x41, 0x41, 0x22, 0x1C,   // D<br />     0x7F, 0x49, 0x49, 0x49, 0x41,   // E<br />     0x7F, 0x09, 0x09, 0x09, 0x01,   // F<br />     0x3E, 0x41, 0x49, 0x49, 0x7A,   // G<br />     0x7F, 0x08, 0x08, 0x08, 0x7F,   // H<br />     0x00, 0x41, 0x7F, 0x41, 0x00,   // I<br />     0x20, 0x40, 0x41, 0x3F, 0x01,   // J<br />     0x7F, 0x08, 0x14, 0x22, 0x41,   // K<br />     0x7F, 0x40, 0x40, 0x40, 0x40,   // L<br />     0x7F, 0x02, 0x0C, 0x02, 0x7F,   // M<br />     0x7F, 0x04, 0x08, 0x10, 0x7F,   // N<br />     0x3E, 0x41, 0x41, 0x41, 0x3E,   // O<br />     0x7F, 0x09, 0x09, 0x09, 0x06,   // P<br />     0x3E, 0x41, 0x51, 0x21, 0x5E,   // Q<br />     0x7F, 0x09, 0x19, 0x29, 0x46,   // R<br />     0x46, 0x49, 0x49, 0x49, 0x31,   // S<br />     0x01, 0x01, 0x7F, 0x01, 0x01,   // T<br />     0x3F, 0x40, 0x40, 0x40, 0x3F,   // U<br />     0x1F, 0x20, 0x40, 0x20, 0x1F,   // V<br />     0x3F, 0x40, 0x38, 0x40, 0x3F,   // W<br />     0x63, 0x14, 0x08, 0x14, 0x63,   // X<br />     0x07, 0x08, 0x70, 0x08, 0x07,   // Y<br />     0x61, 0x51, 0x49, 0x45, 0x43,   // Z<br />     0x00, 0x7F, 0x41, 0x41, 0x00,   // &#91;<br />     0x55, 0x2A, 0x55, 0x2A, 0x55,   // 55<br />     0x00, 0x41, 0x41, 0x7F, 0x00,   // &#93;<br />     0x04, 0x02, 0x01, 0x02, 0x04,   // ^<br />     0x40, 0x40, 0x40, 0x40, 0x40,   // _<br />     0x00, 0x01, 0x02, 0x04, 0x00,   // '<br />     0x20, 0x54, 0x54, 0x54, 0x78,   // a<br />     0x7F, 0x48, 0x44, 0x44, 0x38,    // b<br />     0x38, 0x44, 0x44, 0x44, 0x20,   // c<br />     0x38, 0x44, 0x44, 0x48, 0x7F,   // d<br />     0x38, 0x54, 0x54, 0x54, 0x18,   // e<br />     0x08, 0x7E, 0x09, 0x01, 0x02,   // f<br />     0x0C, 0x52, 0x52, 0x52, 0x3E,   // g<br />     0x7F, 0x08, 0x04, 0x04, 0x78,   // h<br />     0x00, 0x44, 0x7D, 0x40, 0x00,   // i<br />     0x20, 0x40, 0x44, 0x3D, 0x00,   // j<br />     0x7F, 0x10, 0x28, 0x44, 0x00,   // k<br />     0x00, 0x41, 0x7F, 0x40, 0x00,   // l<br />     0x7C, 0x04, 0x18, 0x04, 0x78,   // m<br />     0x7C, 0x08, 0x04, 0x04, 0x78,   // n<br />     0x38, 0x44, 0x44, 0x44, 0x38,   // o<br />     0x7C, 0x14, 0x14, 0x14, 0x08,   // p<br />     0x08, 0x14, 0x14, 0x18, 0x7C,   // q<br />     0x7C, 0x08, 0x04, 0x04, 0x08,   // r<br />     0x48, 0x54, 0x54, 0x54, 0x20,   // s<br />     0x04, 0x3F, 0x44, 0x40, 0x20,   // t<br />     0x3C, 0x40, 0x40, 0x20, 0x7C,   // u<br />     0x1C, 0x20, 0x40, 0x20, 0x1C,   // v<br />     0x3C, 0x40, 0x30, 0x40, 0x3C,   // w<br />     0x44, 0x28, 0x10, 0x28, 0x44,   // x<br />     0x0C, 0x50, 0x50, 0x50, 0x3C,   // y<br />     0x44, 0x64, 0x54, 0x4C, 0x44,   // z<br /> 0x00, 0x06, 0x09, 0x09, 0x06    // ş<br />};[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=464">1bobik1</a> — 5 paź 2016, o 19:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sparrow-hawk]]></name></author>
<updated>2016-10-05T18:20:31+01:00</updated>
<published>2016-10-05T18:20:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170545#p170545</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170545#p170545"/>
<title type="html"><![CDATA[Re: Przeportowanie AVR - RPi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170545#p170545"><![CDATA[
Linker nie może znaleźć funkcji LCD_Init(). Gdzie masz dołączony nagłówek zawierający definicje funkcji przeznaczonych do obsługi LCD?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10614">Sparrow-hawk</a> — 5 paź 2016, o 18:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2016-10-05T17:09:43+01:00</updated>
<published>2016-10-05T17:09:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170540#p170540</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170540#p170540"/>
<title type="html"><![CDATA[Re: Przeportowanie AVR - RPi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170540#p170540"><![CDATA[
ok zmieniłem typy argumentów w oryginalnych funkcjach na unsigned char.<br />Treaz funkcja do wysyłania bajtu wygląda tak:<br />[syntax=c]void LCD_writeCommand (unsigned char command )<br />{<br />    CLEAR_CS_PIN;  //enable LCD<br /><br />CLEAR_DC_PIN;  //set LCD in command mode<br /><br />    //  Send data to display controller.<br />wiringPiSPIDataRW(0, &amp;command,1);<br />    SET_CS_PIN;    //disable LCD<br />}[/syntax]<br /><br />program się kompiluje, ale jak klikam build to wywala błąd:<br />Hello.c:(.text+0xc): undefined reference to `LCD_init'<br /><br /><br />Główny program wygląda tak:<br />[syntax=c]#include &lt;stdio.h&gt;    // Used for printf() statements<br />#include &lt;wiringPi.h&gt;<br />#include &lt;stdint.h&gt;<br />#include &quot;NOVITUS_graphic_display_library.h&quot;<br /><br /><br />int main(void)<br />{<br />    // Setup stuff:<br />    wiringPiSetupGpio(); // Initialize wiringPi -- using Broadcom pin numbers<br />LCD_init();<br />LCD_writeString_F(&quot;Test&quot;);<br /><br /><br /><br />    // Loop (while(1)):<br />    while(1)<br />    {<br />  <br />    }<br /><br />    return 0;<br />}[/syntax]  <br /><br />wcześniej taki sam błąd wywalało odnośnie funkcji z wiringpi ale jak dodałem komendę do ustawień kompilacji to poszło:<br />gcc -Wall -c &quot;%f&quot; -l wiringPi <br />nie wiem jak dodać do tego swoją bibliotekę<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=464">1bobik1</a> — 5 paź 2016, o 17:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sparrow-hawk]]></name></author>
<updated>2016-10-05T14:01:16+01:00</updated>
<published>2016-10-05T14:01:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170520#p170520</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170520#p170520"/>
<title type="html"><![CDATA[Re: Przeportowanie AVR - RPi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170520#p170520"><![CDATA[
Witaj, oryginalna funkcja z AVR moim zdaniem powinna przyjmować argument typu char, a nie int. Ale to mniej istotne. <br /><br />W przypadku Rpi, funkcja nie oczekuje string'a, ani tym bardziej cstring'a, tylko oczekuje tablicy zawierającej zmienne typu char. I nie należy jej kończyć pustym znakiem '\0'.<br /><br />Najprościej możesz zrobić to tak:<br />[syntax=c]int LCD_writeData (unsigned char data) {<br />  return wiringPiSPIDataRW (x , &amp;data, 1);<br />}[/syntax]<br />Za x podstawiasz numer kanału.<br /><br />Ale najlepiej by było, gdybyś tak zmienił swój oryginalny program, aby do tej funkcji z Rpi przekazywał całe tablice danych, bo zazwyczaj pewnie wysyłasz więcej niż 1 bajt.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10614">Sparrow-hawk</a> — 5 paź 2016, o 14:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2016-10-05T12:39:55+01:00</updated>
<published>2016-10-05T12:39:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170507#p170507</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170507#p170507"/>
<title type="html"><![CDATA[Re: Przeportowanie AVR - RPi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170507#p170507"><![CDATA[
nie, nie bardzo wiem jak miało by wyglądać doddanie null ?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />nie, nie bardzo wiem jak miało by wyglądać doddanie null ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=464">1bobik1</a> — 5 paź 2016, o 12:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[HomoChemicus]]></name></author>
<updated>2016-10-05T12:29:57+01:00</updated>
<published>2016-10-05T12:29:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170504#p170504</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170504#p170504"/>
<title type="html"><![CDATA[Re: Przeportowanie AVR - RPi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170504#p170504"><![CDATA[
Próbowałeś jawnego rzutowania tej zmiennej na char i dodać null na końcu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10470">HomoChemicus</a> — 5 paź 2016, o 12:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[1bobik1]]></name></author>
<updated>2016-10-05T12:23:47+01:00</updated>
<published>2016-10-05T12:23:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170503#p170503</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170503#p170503"/>
<title type="html"><![CDATA[Przeportowanie AVR - RPi]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16395&amp;p=170503#p170503"><![CDATA[
Witam,<br /><br />zaczynam zabawę z raspberry pi, pierwsze co chciałem zrobić to odpalić na malinie wyświetlacz graficzny do którego pisałem bibliotekę pod Atmegę.<br />Przy przeportowaniu natrafiłem na problem którego nie potrafię rozwiązać:<br /><br />kod dla avr:<br />[syntax=c]void LCD_writeData (unsigned int Data)<br />{<br />    CLEAR_CS_PIN;  //enable LCD<br />SET_DC_PIN;  //set LCD in Data mode<br />    //  Send data to display controller.<br />      SPDR = Data;<br />    //  Wait until Tx register empty.<br />      while ( !(SPSR &amp; 0x80) );<br />    SET_CS_PIN;    //disable LCD<br />}[/syntax]<br /><br />Wysyłanie danych - łatwo i przyjemnie, zmienna do rejestru, czekanie na znak i koniec.<br /><br />Niestety w malinie tak to nie wygląda, do wysłania danych chcę użyć funkcji z biblioteki wiringpi:<br />[syntax=c]int wiringPiSPIDataRW (int channel, unsigned char *data, int len)<br />{<br />  struct spi_ioc_transfer spi ;<br /><br />  channel &amp;= 1 ;<br /><br />// Mentioned in spidev.h but not used in the original kernel documentation<br />//test program )-:<br /><br />  memset (&amp;spi, 0, sizeof (spi)) ;<br /><br />  spi.tx_buf        = (unsigned long)data ;<br />  spi.rx_buf        = (unsigned long)data ;<br />  spi.len           = len ;<br />  spi.delay_usecs   = spiDelay ;<br />  spi.speed_hz      = spiSpeeds &#91;channel&#93; ;<br />  spi.bits_per_word = spiBPW ;<br /><br />  return ioctl (spiFds &#91;channel&#93;, SPI_IOC_MESSAGE(1), &amp;spi) ;<br />}[/syntax]<br /><br />Jak zmienną typu unsigned int przesłać funkcją oczekującą stringa ?<br /><br />ps: wiem że to nie forum o RPi, ale liczę na to że znajdzie się ktoś kto pomoże.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=464">1bobik1</a> — 5 paź 2016, o 12:23</p><hr />
]]></content>
</entry>
</feed>