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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-07-08T20:18:36+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=7690&amp;mode</id>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2014-07-08T20:18:36+01:00</updated>
<published>2014-07-08T20:18:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=87027#p87027</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=87027#p87027"/>
<title type="html"><![CDATA[Re: [PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD40]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=87027#p87027"><![CDATA[
jacekk232<br /><br />Zanim przeczytałem Twoją odpowiedź, oglądnąłem poradnik Pana Mirka o rejestrze przesuwnym drugi raz i uważnie wysłuchałem co mówi Pan Mirek ,że przykład na kartce robił programowym SPI , a na ATB SHIELD IO sprzętowym SPI( być może oglądając ostatnio nie wsłuchałem się ostatnio bo jeszcze do końca nie wiedziałem w sumie o co chodzi, a Twoja podpowiedź o tym,że programowe SPI mogę zrobić z dowolnych pinów , upewnia mnie w tej myśli <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/3925/db2a8c9d13edd6f15e023202866fb6d2.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3925/db2a8c9d13edd6f15e023202866fb6d2.jpg" alt="Obrazek" /></a><br />(Schemat z użyciem programowego SPI)<br /><br /><br />Chyba już jest poprawnie, niepotrzebny był ten pośpiech ale cóż, mam &quot;bagcyla&quot; w głowie i rozumiecie;)<br /><br />P.S.<br />Program przez programowe SPI jak i sprzętowe działa! Chura!<br /><br />Teraz biorę się za podłączenie drugiego rejestru.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3925">Jagla</a> — 8 lip 2014, o 20:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-07-07T20:10:06+01:00</updated>
<published>2014-07-07T20:10:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86937#p86937</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86937#p86937"/>
<title type="html"><![CDATA[Re: [PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD40]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86937#p86937"><![CDATA[
<div class="quotetitle">Janadamis napisał(a):</div><div class="quotecontent"><br />Miało być do portu B a nie D.<br /></div><br />W drugim poście kolega <strong>Jagla</strong> wykorzystał programowy SPI więc mógł wykorzystać dowolne piny procesora. <br /><br />A program z pierwszego postu wykorzystujący sprzętowy SPI powinien wyglądać tak<br />[syntax=c]#include&lt;avr/io.h&gt;<br />//#include&lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />#define MOSI (1&lt;&lt;PB3)   // A (DATA)<br />#define SCK (1&lt;&lt;PB5)    // Shift Clock (CLOCK)<br />#define LT      (1&lt;&lt;PB2)        // Latch (STROBE)<br /><br />#define LT_ON  PORTB |= LT;<br />#define LT_OFF PORTB &amp;= ~LT;<br /><br /><br />void InitSpi(void);             //deklaracja funkcji<br />void SendSpi(uint8_t bajt);<br /><br />int main(void){<br /><br />//dioda led podłączona katodą<br />//która sprawdza czy procek działa poprawnie<br />DDRD |= (1&lt;&lt;PD0);               //ustawienie kierunku na wyjscie<br />PORTD |= (1&lt;&lt;PD0);              //ustawienie portu PD0 jako wyjscie<br /><br />_delay_ms(1500);<br />PORTD &amp;= ~(1&lt;&lt;PD0);             //włączenie diody<br /><br />InitSpi();<br /><br />SendSpi(0xff);<br /><br />_delay_ms(1000);<br /><br />SendSpi(0xf0);<br /><br />//sei();<br /><br />             uint8_t cnt;<br />while(1)<br />{<br />                    cnt=1;<br />                    while(cnt)<br />                   {<br />                        SendSpi(cnt);<br />                        cnt&lt;&lt;=1;<br />                        _delay_ms(300);<br />                   }<br /><br />PORTD ^= (1&lt;&lt;PD0);<br />_delay_ms(500);<br />}<br />}<br /><br />void InitSpi(void)<br />{<br /><br />DDRB |= MOSI | SCK  |LT;<br />SPCR |= (1&lt;&lt;SPE) | (1&lt;&lt;MSTR);<br />SPSR |= (1&lt;&lt;SPI2X);<br />}<br /><br />void SendSpi(uint8_t bajt)<br />{<br /><br />SPDR = bajt;<br />while( ! (SPSR &amp; (1&lt;&lt;SPIF) ) );<br /><br />LT_ON;<br />LT_OFF;<br />}[/syntax]<br /><br />Sprawdzone na Atmedze32.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 7 lip 2014, o 20:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2014-07-07T12:23:47+01:00</updated>
<published>2014-07-07T12:23:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86859#p86859</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86859#p86859"/>
<title type="html"><![CDATA[Re: [PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD40]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86859#p86859"><![CDATA[
Pan Jagla za szybko chcial udowodnic ze juz sie nauczyl, sorki za moj pospiech , prosze sie nie denerwowac. Reset na schemacie zle narysowalem a na diode przy uC nie ywrocilem uwagi. Ale gafa ,wstyd mi:(<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3925">Jagla</a> — 7 lip 2014, o 12:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2014-07-07T09:37:17+01:00</updated>
<published>2014-07-07T09:37:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86828#p86828</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86828#p86828"/>
<title type="html"><![CDATA[Re: [PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD40]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86828#p86828"><![CDATA[
Jagla- nadal masz sporo błędów na schemacie. Kolega jacekk232 napisał jak podłączyć sygnały sterujące od zatrzasku do uC a ty jak podłączyłeś? Miało być do portu B a nie D. A po drugie to chodzi mi o sygnał reset. Rezystor trzeba zamontować pomiędzy resetem a VCC a nie szeregowo.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 7 lip 2014, o 09:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-07-07T07:13:48+01:00</updated>
<published>2014-07-07T07:13:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86818#p86818</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86818#p86818"/>
<title type="html"><![CDATA[Re: [PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD40]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86818#p86818"><![CDATA[
<div class="quotetitle">Jagla napisał(a):</div><div class="quotecontent"><br />Musiałem dodać, żeby lepiej to wyglądało<br /></div><br /><br />panie Jagla ... panie Jagla ... no a dioda przy procku to co ? <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=54">mirekk36</a> — 7 lip 2014, o 07:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2014-07-07T07:10:21+01:00</updated>
<published>2014-07-07T07:10:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86817#p86817</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86817#p86817"/>
<title type="html"><![CDATA[Re: [PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD40]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86817#p86817"><![CDATA[
Wielki LOL, faktycznie , ale gafa <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> wczoraj to wszystko na szybko było, nie zwróciłem uwagi, po prostu nie pomyślałem bo to się wydawało takie banalne, a tu jednak klops;)<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/3925/d1e44cbc5da0f0791657b4781d67eab0.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3925/d1e44cbc5da0f0791657b4781d67eab0.jpg" alt="Obrazek" /></a><br /><br />Musiałem dodać, żeby lepiej to wyglądało w tym temacie ;P<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3925">Jagla</a> — 7 lip 2014, o 07:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2014-07-07T00:19:40+01:00</updated>
<published>2014-07-07T00:19:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86812#p86812</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86812#p86812"/>
<title type="html"><![CDATA[Re: [PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD40]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86812#p86812"><![CDATA[
<div class="quotetitle">Jagla napisał(a):</div><div class="quotecontent"><br />Jak się podoba schemat wizualnie Panie mirku?<br /></div><br /><br />Samo narysowanie jest już ładne <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ale no błędy masz potworne z tymi diodami LED <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... albo narysuj je odwrotnie albo podłącz ich wspólne anody do VCC a nie GND<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 7 lip 2014, o 00:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2014-07-07T00:15:23+01:00</updated>
<published>2014-07-07T00:15:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86811#p86811</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86811#p86811"/>
<title type="html"><![CDATA[Re: [PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD40]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86811#p86811"><![CDATA[
jacekk232<br /><br />Dzięki Jacek wszystko śmiga, miałem trochę problemów z rozszyfrowaniem Twoich skrótów ale po dłuższym szperaniu w programie doszedłem do wszystkiego, port PB3 to u mnie MOSI i on by mi nie zadziałał , wywaliłem go z programu i działa super.<br />Dzięki za info związane z OE.<br />A no właśnie zapomniałem o SYNTAXie, a oglądałem tutek dotyczący SYNTAXa.<br /><br /><br />To miało być programowe SPI a wyszła mi miazga.<br /><br />Zauważyłem też że źle sobie podpiąłem VDD a było tak, że VDD w ogóle nie było podpięte OE było tylko zamienić na VCC a to co wcześniej miało być OE to przez przypadek podłączyłem wyjście Q5 do VCC.<br /><br />Dodałem bufor (o ile dobrze myślę , że tak to się nazywa) przed wysłaniem tego na wyjście.<br /><br /><br />Humanoid<br /><br />Źle narysowałem na schemacie.<br />Diody są dobrze , wystarczy przy wysyłaniu bajtu go znegować jeśli chcę aby mi się dioda zaświeciła a nie zgasła.<br />Pin RESET miałem właśnie podłączyć przez rezystor, dzięki za zwrócenie uwagi.<br /><br /><br />Oto mój poprawiony schemat:<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/3925/a601c23df1582c805ddef4387576beda.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3925/a601c23df1582c805ddef4387576beda.jpg" alt="Obrazek" /></a><br /><br />I poprawiony kod:<br /><br />[syntax=c]#include&lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />#define MOSI (1&lt;&lt;PD6)// A (DATA)<br />#define SCK (1&lt;&lt;PD5)// Shift Clock (CLOCK)<br />#define LT (1&lt;&lt;PD7)// Latch (STROBE)<br /><br />#define DATA_1 PORTD |= MOSI;<br />#define DATA_0 PORTD &amp;= ~MOSI;<br /><br />#define LT_ON PORTD |= LT;<br />#define LT_OFF PORTD &amp;= ~LT;<br /><br />#define SCK_ON PORTD |= SCK;<br />#define SCK_OFF PORTD &amp;= ~SCK;<br /><br />void InitSpi(void);//deklaracja funkcji<br />void SendSpi(uint8_t bajt);<br />void bufor(uint8_t byte);<br /><br />int main(void){<br /><br />//dioda led podłączona katodą<br />//która sprawdza czy procek działa poprawnie<br /><br />DDRD |= (1&lt;&lt;PD0);//ustawienie kierunku na wyjscie<br />PORTD |= (1&lt;&lt;PD0);//ustawienie portu PD0 jako wyjscie<br /><br />_delay_ms(1500);<br />PORTD &amp;= ~(1&lt;&lt;PD0);//włączenie diody (procka)<br /><br />InitSpi();<br /><br />SendSpi(0xff);<br /><br />_delay_ms(1000);<br /><br />SendSpi(0xff);<br /><br />//sei();<br /><br />uint8_t cnt;<br />while(1){<br /><br />cnt=1;<br />while(cnt){<br /><br />SendSpi(~cnt);<br />cnt&lt;&lt;=1;<br />_delay_ms(300);<br />}<br /><br />SendSpi(0xff);//zgaszenie wszystkich  diod<br /><br />PORTD ^= (1&lt;&lt;PD0);//zmienianie stanu diody (procka) na przeciwny<br />_delay_ms(500);<br /><br />}<br /><br /><br />}<br /><br />void bufor(uint8_t byte)<br />{<br />                uint8_t i;<br /><br />                for(i=0; i&lt;8; i++)<br />                {<br />                                //zaczynamy wysyłanie od najstarszego bitu<br />                                if( byte &amp; 0x80 ) {<br />                                DATA_1;<br />                                }<br /><br />                                else {<br />                                DATA_0;<br />                                }<br /><br />                                SCK_ON;<br />                                SCK_OFF;<br /><br />                                byte = (byte &lt;&lt; 1);<br />                }<br />}<br /><br />void InitSpi(void){<br /><br />DDRD |= MOSI|SCK|LT;<br />//SPCR |= (1&lt;&lt;SPE)|(1&lt;&lt;MSTR);<br />//SPSR |= (1&lt;&lt;SPI2X);<br />}<br /><br />void SendSpi(uint8_t bajt){<br /><br />bufor(bajt);<br /><br />LT_ON;<br />LT_OFF;<br /><br />}[/syntax]<br /><br />Jak się podoba schemat wizualnie Panie mirku?;)<br /><br />Kod na szybko poprawiony, w miarę czytelny, myślę, że wy też tak uważacie.<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3925">Jagla</a> — 7 lip 2014, o 00:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Humanoid]]></name></author>
<updated>2014-07-06T21:04:27+01:00</updated>
<published>2014-07-06T21:04:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86785#p86785</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86785#p86785"/>
<title type="html"><![CDATA[Re: [PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD40]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86785#p86785"><![CDATA[
Nie wiem jak masz to połączone ale jeśli chodzi o schemat który przedstawiłes to pin 7 VCC procesora powinien iść bezpośrednio do plusa zasilania a nie przez kondensator C2 (10nF ?).Ten kondensator C2 - 10uF ma filtrować zasilanie przy procku i być podłączonym pomiedzy pin 7 VCC a masę i wtedy pin 7 VCC bezpośrednio do plusa.Diody LED według schematu nie powinny być odwrotnie?Do pinu 1 RESET podłącz rezystor 10Kom do VCC<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2228">Humanoid</a> — 6 lip 2014, o 21:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-07-07T20:14:01+01:00</updated>
<published>2014-07-06T20:56:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86784#p86784</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86784#p86784"/>
<title type="html"><![CDATA[Re: [PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD40]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86784#p86784"><![CDATA[
Aktywnym stanem pinu Output Enable w rejestrach 4094 jest stan wysoki. Czyli ten pin powinien być podłączony do Vcc. Stan niski na tym pinie wyłącza bufory wyjściowe. <br /><br />A co do kodu to trochę przekombinowałeś bo używasz sprzętowego SPI, który korzysta z pinów PB2-PB5 a rejestr podłączyłeś do pinów na porcie C. Powinieneś podłączyć CLK z SCK(PB5), DATA z MOSI(PB3) a STROBE z SS(PB2).<br /><br />Niedawno napisałem sobie prościutki programik do sterowania dwoma rejestrami. Tylko, że nie na sprzętowym SPI a programowym<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define STB             (1&lt;&lt;PD7)<br />#define STB_PORT        PORTD<br /><br />#define DIN             (1&lt;&lt;PD6)<br />#define DIN_PORT        PORTD<br /><br />#define CLK             (1&lt;&lt;PD5)<br />#define CLK_PORT        PORTD<br /><br />#define ENA             (1&lt;&lt;PB3)<br />#define ENA_PORT        PORTB<br /><br />#define DIN_HIGH        DIN_PORT |= DIN<br />#define DIN_LOW         DIN_PORT &amp;=~DIN<br /><br />#define CLK_HIGH        CLK_PORT |= CLK<br />#define CLK_LOW         CLK_PORT &amp;=~CLK<br /><br />#define STB_HIGH        STB_PORT |= STB<br />#define STB_LOW         STB_PORT &amp;=~STB<br /><br />#define ENA_HIGH        ENA_PORT |= ENA<br />#define ENA_LOW         ENA_PORT &amp;=~ENA<br /><br />void tx_4094(uint8_t byte);<br />void send_byte(uint8_t data);<br />void send_word(uint16_t data);<br /><br /><br />int main(void)<br />{<br /><br />//linie sterujące rejestrem jako wyjścia<br />DDRD |= DIN | CLK | STB;<br />DDRB |= ENA;<br /><br />send_word(0);           //wysyłamy na wyjścia rejestrów zera<br />ENA_HIGH;                       //załączamy wyjścia rejestrów<br /><br /><br />while(1)<br />{<br /><br />}<br />}<br /><br />//funkcja wysyłająca jeden bajt do rejestru<br />//bez zatrzaskiwania danych na wyjściu<br />//wysłane dane nie będą widoczne<br />void tx_4094(uint8_t byte)<br />{<br />uint8_t i;<br /><br />for(i=0; i&lt;8; i++)<br />{<br />//zaczynamy wysyłanie od najstarszego bitu<br />if( byte &amp; 0x80 ) DIN_HIGH;<br />else DIN_LOW;<br /><br />CLK_HIGH;<br />CLK_LOW;<br /><br />byte = (byte &lt;&lt; 1);<br />}<br />}<br /><br />//funkcja wysyłająca jeden bajt<br />//z zatrzaśnięciem danych na wyjściu<br />//wysłane dane będą widoczne na wyjściu<br />void send_byte(uint8_t data)<br />{<br />tx_4094(data);<br /><br />STB_HIGH;<br />STB_LOW;<br />}<br /><br />//funkcja wysyłająca dwa bajty do dwóch rejestrów<br />//połączonych kaskadowo<br />void send_word(uint16_t data)<br />{<br />uint8_t msb = data &gt;&gt; 8;<br />uint8_t lsb = data &amp; 0x00FF;<br /><br />tx_4094(msb);<br />tx_4094(lsb);<br /><br />STB_HIGH;<br />STB_LOW;<br />}[/syntax]<br />Wypróbuj go i sprawdź czy ci rejestr działa. Jeśli będzie działał to wtedy pokombinuj z programowym SPI. <br />Pin Output Enable podłącz na stałe do Vcc. Ja miałem podłączony do procka bo sterowałem jasnością diod poprzez  podawanie PWM-a na ten pin.<br /><br />Jeśli masz jeden rejestr to linię [syntax=c]send_word(0);           //wysyłamy na wyjścia rejestrów zer[/syntax]<br />zmień na [syntax=c]send_byte(0);           //wysyłamy na wyjścia rejestrów zer[/syntax]<br /><br />I kody wstawiaj w znacznikach SYNTAX.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 6 lip 2014, o 20:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jagla]]></name></author>
<updated>2014-07-07T00:16:08+01:00</updated>
<published>2014-07-06T20:19:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86779#p86779</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86779#p86779"/>
<title type="html"><![CDATA[[PROBLEM] Podłączenie Atmegi 328P z rejestrm przes. CD4049BE]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=7690&amp;p=86779#p86779"><![CDATA[
Witam wszystkich.<br /><br />Mam problem z podłączeniem Atmegi 328P z rejestrem przesuwnym CD4049BE.<br />Chciałem  wykorzystać tylko 3 piny procka i rejestru przesuwnego do migania 8 ledami (później większą ilością) i mam problem z podłączeniem tego rejestru, może dodam schemat będzie jaśniej:<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/3925/95c6be8423b08a35a5c7dfd5a5de4e1e.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/3925/95c6be8423b08a35a5c7dfd5a5de4e1e.jpg" alt="Obrazek" /></a><br /><br />Tam przy rejestrze mam napisane VCC_? x2 i GND_? i nie jestem pewny czy dobrze to będzie podłaczone , znaczy na internecie znalazłem tylko tyle , że VDD należy podłaczyć do VCC, VSS do GND a z książki i kursu Pana Mirka objaśnione jest aby ENABLE OUTPUT podłączyć do GND (Na schemacie się pomyliłem) i wiem, że to jest inny rejestr przesuwny niż w książce ale z noty nie mogłem wyczytać do czego podpiąć.<br /><br />Dobra cisnę dalej. <br /><br />Mam program:<br /><br />[syntax=c]#include&lt;avr/io.h&gt;<br />#include&lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />#define MOSI (1&lt;&lt;PC5)// A (DATA)<br />#define SCK (1&lt;&lt;PC4)// Shift Clock (CLOCK)<br />#define LT (1&lt;&lt;PC3)// Latch (STROBE)<br /><br />#define LT_ON PORTC |= LT;<br />#define LT_OFF PORTC &amp;= ~LT;<br /><br />#define SCK_ON PORTC |= SCK;<br />#define SCK_OFF PORTC &amp;= ~SCK;<br /><br />void InitSpi(void);//deklaracja funkcji<br />void SendSpi(uint8_t bajt);<br /><br />int main(void){<br /><br />//dioda led podłączona katodą<br />//która sprawdza czy procek działa poprawnie<br />DDRD |= (1&lt;&lt;PD0);//ustawienie kierunku na wyjscie<br />PORTD |= (1&lt;&lt;PD0);//ustawienie portu PD0 jako wyjscie<br /><br />_delay_ms(1500);<br />PORTD &amp;= ~(1&lt;&lt;PD0);//włączenie diody<br /><br />InitSpi();<br /><br />SendSpi(0xff);<br /><br />_delay_ms(1000);<br /><br />SendSpi(0xf0);<br /><br />//sei();<br /><br />//uint8_t cnt;<br />while(1){<br /><br />//cnt=1;<br />//while(cnt){<br />//SendSpi(cnt);<br />//cnt&lt;&lt;=1;<br />//_delay_ms(300);<br />//}<br /><br />PORTD ^= (1&lt;&lt;PD0);<br />_delay_ms(500);<br />}<br /><br /><br />}<br /><br />void InitSpi(void){<br /><br />DDRC |= MOSI|SCK|LT;<br />SPCR |= (1&lt;&lt;SPE)|(1&lt;&lt;MSTR);<br />SPSR |= (1&lt;&lt;SPI2X);<br />}<br /><br />void SendSpi(uint8_t bajt){<br /><br />SPDR = bajt;<br />while( ! (SPSR &amp; (1&lt;&lt;SPIF) ) );<br /><br />LT_ON;<br />LT_OFF;<br /><br />}[/syntax]<br /><br />Coś mi w nim nie pasuje z tymi zatrzaskami ale po całym dniu siedzenia przy mikrokontrolerach nie mam już sił na rozwiązanie tego problemu.<br /><br />Jak wgrywam program do procka to dioda którą sprawdzam czy procek działa na początku się świeci i cały czas się świeci nawet bez użycia migania diodami w rejestrze.<br /><br />Proszę mi nie cisnąć ale jestem już zmęczony i myślałem nawet ,żeby nie pisać tego tematu bo mógłbym to przeanalizować dokładniej bo czuję , że jestem blisko ale to już jutro, a mam nadzieję , że ktoś zwas zrozumie mój błąd i mnie i mi coś doradzi.<br /><br />Pozdrawiam wszystkich i jeszcze raz proszę mi nie mówić , że jak się nie znam to po co się za to biorę , a ja wam powiem tak, że JAK SIĘ NIGDY NIE ZABIORĘ TO NIGDY NIE BĘDĘ SIĘ ZNAŁ.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3925">Jagla</a> — 6 lip 2014, o 20:19</p><hr />
]]></content>
</entry>
</feed>