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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-12-25T17:10:22+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19810&amp;mode</id>
<entry>
<author><name><![CDATA[OskarQ1]]></name></author>
<updated>2017-12-25T17:10:22+01:00</updated>
<published>2017-12-25T17:10:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=201062#p201062</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=201062#p201062"/>
<title type="html"><![CDATA[Re: Pseudolosowość w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=201062#p201062"><![CDATA[
Witam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Przerobiłem funkcje Send_Spi_Word i program działa jak chciałem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Do funkcji Send_Spi_Word dodałem wskażnik na funkcje losującą, teraz z Tablicy w pamieci Flash losowane są kombinacje bitów na wyjścia rejestrów przesuwnych oto przerobiona funkcja <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]void Send_SPI_Word(const uint8_t * bajt, uint8_t ilosc, uint8_t (*losowanie)(uint8_t,uint8_t))<br />{<br />for(uint8_t i = 0; i &lt; ilosc; i++)<br />{<br />uint8_t dd = losowanie(0,7);<br /><br />SPDR = pgm_read_byte(&amp;bajt&#91;dd&#93;) ; // Przypisanie danych do rejestru danych SPI / Przy każdym obrocie pętli będą wsuwane inne dane z Tablicy<br /><br />    while(!(SPSR &amp; (1&lt;&lt;SPIF) ) ); // Czekamy aż zostanie wysłany ostatni bit<br />}<br />   LT_ON;<br />   LT_OFF; // Zatrzask<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13373">OskarQ1</a> — 25 gru 2017, o 17:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zealota]]></name></author>
<updated>2017-12-15T12:56:14+01:00</updated>
<published>2017-12-15T12:56:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200579#p200579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200579#p200579"/>
<title type="html"><![CDATA[Re: Pseudolosowość w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200579#p200579"><![CDATA[
<div class="quotetitle">OskarQ1 napisał(a):</div><div class="quotecontent"><br />Hej, Patrzyłem opisy funkcji biblioteki stdlib.h na stronie atmel<br /><br />Rozumiem że ta funkcja co podesłałeś wygeneruje liczbę z zakresu od 0 do 100<br /><br />Hmm mi chodzi o to aby z jednej dużej tablicy zostały losowane bajty i wsuwane na rejestry <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /></div><br />Ale jaki kłopot? Losujesz po prostu indeksy, a potem pobierasz wartość z tablicy i voila <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Zakres maksymalny to maksymalny indeks tablicy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16487">Zealota</a> — 15 gru 2017, o 12:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[OskarQ1]]></name></author>
<updated>2017-12-15T12:52:41+01:00</updated>
<published>2017-12-15T12:52:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200576#p200576</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200576#p200576"/>
<title type="html"><![CDATA[Re: Pseudolosowość w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200576#p200576"><![CDATA[
Hej, Patrzyłem opisy funkcji biblioteki stdlib.h na stronie atmel<br /><br />Rozumiem że ta funkcja co podesłałeś wygeneruje liczbę z zakresu od 0 do 100<br /><br />Hmm mi chodzi o to aby z jednej dużej tablicy zostały losowane bajty i wsuwane na rejestry <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13373">OskarQ1</a> — 15 gru 2017, o 12:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zealota]]></name></author>
<updated>2017-12-15T09:50:40+01:00</updated>
<published>2017-12-15T09:50:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200560#p200560</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200560#p200560"/>
<title type="html"><![CDATA[Re: Pseudolosowość w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200560#p200560"><![CDATA[
W bibliotece stdlib.h masz funkcje randr<br />[syntax=c]#include &lt;stdlib.h&gt;<br /><br />int wartosc;<br />wartość = randr( 0, 100 );[/syntax]<br /><br />0 to wartość minimalna losowania, a 100 to maksymalna.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16487">Zealota</a> — 15 gru 2017, o 09:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[OskarQ1]]></name></author>
<updated>2017-12-15T08:28:37+01:00</updated>
<published>2017-12-15T08:28:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200556#p200556</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200556#p200556"/>
<title type="html"><![CDATA[Pseudolosowość w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19810&amp;p=200556#p200556"><![CDATA[
Witam, testuje na stykówce przesyłanie bajtów do dwóch rejestrów przesuwnych, wysyłam z tablicy w pamięci flash bajty jeden po drugim, chciałbym teraz przekształcić program aby losował z tablicy bajty tak aby diody podłączone do wyjść rejestru włączły się losowo, Pojecie mam na czym polega ale jak by ktoś miał jakieś wskazówki to chętnie zobaczę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />O to poszczególnie pliki projektu:<br /><br />[syntax=c]&#91;syntax=c&#93;Main.c:<br /><br />#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 &lt;stdlib.h&gt;<br /><br />#include &quot;Funkcje.h&quot;<br /><br />const uint8_t Font_Tab&#91;&#93;  PROGMEM = {0xF,0xF,0x7,0x1,0x2,0xFF,0xFF};<br /><br />int main(void)<br />{<br />Init_SPI_Module();<br /><br />while(1)<br />{<br />Send_SPI_Word(Font_Tab,2);<br /><br /><br />}<br />}[/syntax][/syntax]<br /><br />Funkcje.c<br /><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 &lt;stdlib.h&gt;<br /><br />#include &quot;Funkcje.h&quot;<br /><br />void Init_SPI_Module(void)<br />{<br />DDRB |= MOSI | SCK | LT; // Ustalenie kierunków wyjściowych dla lini MOSI,SCK,LT<br />SPCR |= (1&lt;&lt;SPE) | (1&lt;&lt;MSTR); // Włączenie układu / tryb pracy MASTER<br />SPSR |= (1&lt;&lt;SPI2X); // Prędkośc zegara fosc/2<br /><br />}<br /><br />void Send_SPI_Word(const uint8_t * bajt, uint8_t ilosc)<br />{<br />for(uint8_t i = 0; i &lt; ilosc; i++)<br />{<br />SPDR = pgm_read_byte(&amp;bajt&#91;i&#93;); // Przypisanie danych do rejestru danych SPI / Przy każdym obrocie pętli będą wsuwane inne dane z Tablicy<br /><br />    while(!(SPSR &amp; (1&lt;&lt;SPIF) ) ); // Czekamy aż zostanie wysłany ostatni bit<br />}<br />   LT_ON;<br />   LT_OFF; // Zatrzask<br />}[/syntax]<br /><br />funcke.h<br /><br />[syntax=c]#ifndef FUNKCJE_H_<br />#define FUNKCJE_H_<br /><br />#define MOSI (1&lt;&lt;PB5)<br />#define SCK  (1&lt;&lt;PB7)<br />#define LT   (1&lt;&lt;PB4)<br /><br />#define LT_ON   PORTB |= LT<br />#define LT_OFF  PORTB &amp;= ~ LT<br /><br />void Init_SPI_Module(void);<br />void Send_SPI_Word(const uint8_t * bajt, uint8_t ilosc);<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />#endif[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13373">OskarQ1</a> — 15 gru 2017, o 08:28</p><hr />
]]></content>
</entry>
</feed>