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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-09-20T22:26:45+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=8576&amp;mode</id>
<entry>
<author><name><![CDATA[Derss]]></name></author>
<updated>2014-09-20T22:26:45+01:00</updated>
<published>2014-09-20T22:26:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96197#p96197</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96197#p96197"/>
<title type="html"><![CDATA[Re: ATmega8 SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96197#p96197"><![CDATA[
Jeszcze raz bardzo dziękuje za pomoc pin SS nie był ustawiony i atmega pracowała jako slave  czekając na odbiór danych blokowała główna pętle sam bym na to nie wpadł tak to jest jak sie czyta dokumentacje po łepkach <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> Jeszcze raz bardzo dziękuje <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Temat uważam za zamknięty<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5524">Derss</a> — 20 wrz 2014, o 22:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-09-20T19:34:41+01:00</updated>
<published>2014-09-20T19:34:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96175#p96175</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96175#p96175"/>
<title type="html"><![CDATA[Re: ATmega8 SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96175#p96175"><![CDATA[
Przeczytaj to <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7275.html#p83074" >topic7275.html#p83074</a><!-- l --><br /><br />Jeśli używasz sprzętowego SPI  to pin SS musi być ustawiony jako wyjście żeby procek pracował jako master.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 20 wrz 2014, o 19:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-09-20T17:41:42+01:00</updated>
<published>2014-09-20T17:41:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96162#p96162</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96162#p96162"/>
<title type="html"><![CDATA[Re: ATmega8 SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96162#p96162"><![CDATA[
Czyli rozumiem, że teraz masz tak:<br />[syntax=c]void SPI (void)<br />        {<br />       <br />               <br />               <br />               <br />               <br />                DDRD |= (1&lt;&lt;PD0);<br />                DDRB |= (1&lt;&lt;PB3) | (1&lt;&lt;PB5);<br />               <br />                SPCR |= ( (1&lt;&lt;SPE) | (1&lt;&lt;MSTR) | (1&lt;&lt;SPR1) | (1&lt;&lt;SPR0) ) ;<br />               <br />  //              SPSR |= (1&lt;&lt;SPI2X);<br />               <br />               <br />        }[/syntax]<br />To może pokaż jeszcze schemat i fotki Twojego układu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 20 wrz 2014, o 17:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Derss]]></name></author>
<updated>2014-09-20T17:29:50+01:00</updated>
<published>2014-09-20T17:29:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96161#p96161</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96161#p96161"/>
<title type="html"><![CDATA[Re: ATmega8 SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96161#p96161"><![CDATA[
1. Poprawiłem (dodałem średnik)<br />2.jest tam linia SPSR |= (1&lt;&lt;SPI2X); <br />3. Lel nie wiem co to ;D<br /><br />Ustawie fosc/128 i dam znać co sie będzie dziać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Na fosc/128 nadal nie  działa <br />while(!(SPSR &amp; (1&lt;&lt;SPIF))); nadal blokuje proca  <img src="https://forum.atnel.pl/images/smilies/icon_evil.gif" alt=":evil:" title="Zły" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5524">Derss</a> — 20 wrz 2014, o 17:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-09-20T17:06:24+01:00</updated>
<published>2014-09-20T17:06:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96158#p96158</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96158#p96158"/>
<title type="html"><![CDATA[Re: ATmega8 SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96158#p96158"><![CDATA[
1. A czy poprawiłeś kod jak Ci napisałem?<br />2. Skoro masz fosc/2 to gdzie to jest w kodzie? Bo nie widziałem nigdzie w tym co zamieściłeś na forum że to ustawiasz.<br />    No i pytanie czy 74HC595 wyrabia się przy 500kHz?<br />3. To może zastosuj debuger jednodiodowy <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=189">MirkoT</a> — 20 wrz 2014, o 17:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Derss]]></name></author>
<updated>2014-09-20T16:43:29+01:00</updated>
<published>2014-09-20T16:43:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96157#p96157</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96157#p96157"/>
<title type="html"><![CDATA[Re: ATmega8 SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96157#p96157"><![CDATA[
Mam ustawione na fck/2 <br />Problem leży w tym że ta dioda pod PD1 która powinna mrygać niezależnie, z linia &quot;while(!(SPSR &amp; (1&lt;&lt;SPIF)));&quot; świeci sie ciągle tak jakby while(!(SPSR &amp; (1&lt;&lt;SPIF)));  sie nigdy nie kończyło<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5524">Derss</a> — 20 wrz 2014, o 16:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-09-20T16:15:12+01:00</updated>
<published>2014-09-20T16:15:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96154#p96154</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96154#p96154"/>
<title type="html"><![CDATA[Re: ATmega8 SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96154#p96154"><![CDATA[
no nie wiem, w kodzie który przedstawiłeś na forum w linii<br />[syntax=c]while(!(SPSR &amp; (1&lt;&lt;SPIF)));[/syntax]<br />brakuje na końcu średnika.<br />I tak jest faktycznie, że linia ta ma zatrzymać działanie (pętla nieskończona) do czasu, aż warunek będzie niespełniony<br />czyli do czasu aż transmisja przez SPI nie dobiegnie końca.<br />Natomiast w nocie masz taki kod:<br />[syntax=c]/* Enable SPI, Master, set clock rate fck/16 */<br />SPCR = (1&lt;&lt;SPE)|(1&lt;&lt;MSTR)|(1&lt;&lt;SPR0);[/syntax]<br />Dlatego pytałem jakie ustawiłeś taktowanie dla SPI?<br />Może po prostu 74HC595 się nie wyrabia?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 20 wrz 2014, o 16:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Derss]]></name></author>
<updated>2014-09-20T16:01:02+01:00</updated>
<published>2014-09-20T16:01:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96152#p96152</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96152#p96152"/>
<title type="html"><![CDATA[Re: ATmega8 SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96152#p96152"><![CDATA[
Tak to prawda wysyłam same jedynki albo zera ale stan powinien sie zmieniać (raz wszystkie zera, a raz wszystkie jedynki a stan utrzymuje sie ciągle taki sam)<br />Dioda która jest pod PD1 (w kodzie linia  PORTD ^=(1&lt;&lt;PD1);)  z  while(!(SPSR &amp; (1&lt;&lt;SPIF))); nie mryga, wygląda to jakby ta linia ( while(!(SPSR &amp; (1&lt;&lt;SPIF)));) wprowadzała procesor w pętle nieskończoną  <img src="https://forum.atnel.pl/images/smilies/icon_eek.gif" alt=":shock:" title="Zaszokowany" /> <br />Procek 1MHz <br />Następnym razem komentarze na pewno bedą <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=5524">Derss</a> — 20 wrz 2014, o 16:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2014-09-20T15:51:09+01:00</updated>
<published>2014-09-20T15:51:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96150#p96150</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96150#p96150"/>
<title type="html"><![CDATA[Re: ATmega8 SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96150#p96150"><![CDATA[
<div class="quotetitle">Derss napisał(a):</div><div class="quotecontent"><br />Witam, bardzo bym prosił o sprawdzenie poprawności kodu. Męczę sie z nim już dość długo i nadal nie chce działać.<br />ATmege8 mam podłączoną do 74HC595 (mega jako master) i na pinach rejestru albo pokazują sie same 1 albo 0<br />Po zamienieniu lini: while(!(SPSR &amp; (1&lt;&lt;SPIF)))<br />na: _delay_ms(100);<br />przynajmniej miga dioda podłącza do PD1  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /> <br /><br />Z góry dziękuje za pomoc  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />void D_SPI ( uint8_t data)<br />{<br />SPDR = data;<br />while(!(SPSR &amp; (1&lt;&lt;SPIF)))<br /><br /><br />_delay_ms(100);<br />PORTD |= (1&lt;&lt;PD0);<br /><br />PORTD &amp;=~ (1&lt;&lt;PD0);<br /><br /><br />}<br /><br /><br />void SPI (void)<br />{<br /><br /><br /><br /><br /><br />DDRD |= (1&lt;&lt;PD0);<br />DDRB |= (1&lt;&lt;PB3) | (1&lt;&lt;PB5);<br /><br />SPCR |= (1&lt;&lt;SPE) | (1&lt;&lt;MSTR) ;<br /><br />SPSR |= (1&lt;&lt;SPI2X);<br /><br /><br />}<br /><br /><br />int main(void)<br />{<br /><br />  <br />  <br />  <br />  DDRD |=(1&lt;&lt;PD1);<br />SPI();<br />    while(1)<br />    {<br /> <br /><br /> <br />  D_SPI(0x00);<br />  _delay_ms(100);<br />    D_SPI(0xFF);<br /><br /> PORTD ^=(1&lt;&lt;PD1);<br />   <br />   <br />   <br />   <br />   <br /><br />}<br />}[/syntax]<br /></div><br />Dobrze by było jakbyś w kodzie umieszczał komentarze...<br />A skąd wiesz, że nie działa?<br />Piszesz, że na pinach masz same zera albo same jedynki.<br />No przecież takie dane tam wysyłasz... raz zera... raz jedynki...<br />[syntax=c]D_SPI(0x00);<br />_delay_ms(100);<br />D_SPI(0xFF);[/syntax]<br />Po zamianie na linijki oczekującej na zakończenie transmisji zaczyna migać dioda<br />A czy przypadkiem linijka ta nie powinna wyglądać tak?<br />[syntax=c]while(!(SPSR &amp; (1&lt;&lt;SPIF)));[/syntax]<br />Inna sprawa to czy nie wysyłasz danych zbyt szybko?<br />Jak jest taktowany procesor i jak ustawiłeś dzielnik?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 20 wrz 2014, o 15:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Derss]]></name></author>
<updated>2014-09-20T15:23:52+01:00</updated>
<published>2014-09-20T15:23:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96147#p96147</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96147#p96147"/>
<title type="html"><![CDATA[ATmega8 SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8576&amp;p=96147#p96147"><![CDATA[
Witam, bardzo bym prosił o sprawdzenie poprawności kodu. Męczę sie z nim już dość długo i nadal nie chce działać.<br />ATmege8 mam podłączoną do 74HC595 (mega jako master) i na pinach rejestru albo pokazują sie same 1 albo 0<br />Po zamienieniu lini: while(!(SPSR &amp; (1&lt;&lt;SPIF)))<br />na: _delay_ms(100);<br />przynajmniej miga dioda podłącza do PD1  <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /> <br /><br />Z góry dziękuje za pomoc  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />void D_SPI ( uint8_t data)<br />{<br />SPDR = data;<br />while(!(SPSR &amp; (1&lt;&lt;SPIF)))<br /><br /><br />_delay_ms(100);<br />PORTD |= (1&lt;&lt;PD0);<br /><br />PORTD &amp;=~ (1&lt;&lt;PD0);<br /><br /><br />}<br /><br /><br />void SPI (void)<br />{<br /><br /><br /><br /><br /><br />DDRD |= (1&lt;&lt;PD0);<br />DDRB |= (1&lt;&lt;PB3) | (1&lt;&lt;PB5);<br /><br />SPCR |= (1&lt;&lt;SPE) | (1&lt;&lt;MSTR) ;<br /><br />SPSR |= (1&lt;&lt;SPI2X);<br /><br /><br />}<br /><br /><br />int main(void)<br />{<br /><br />  <br />  <br />  <br />  DDRD |=(1&lt;&lt;PD1);<br />SPI();<br />    while(1)<br />    {<br /> <br /><br /> <br />  D_SPI(0x00);<br />  _delay_ms(100);<br />    D_SPI(0xFF);<br /><br /> PORTD ^=(1&lt;&lt;PD1);<br />   <br />   <br />   <br />   <br />   <br /><br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5524">Derss</a> — 20 wrz 2014, o 15:23</p><hr />
]]></content>
</entry>
</feed>