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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-11-11T16:15:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=16778&amp;mode</id>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-11-11T16:15:09+01:00</updated>
<published>2016-11-11T16:15:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174466#p174466</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174466#p174466"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174466#p174466"><![CDATA[
Przerobienie programu z 74164 na 74595 nie będzie problemem (oglądałem poradnik  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> ), a że mam w domu kilka 74164 to wykorzystuje do ćwiczeń,  udało mi się napisać program który wyświetla pojedynczy znak na jednej matrycy, nie mam koncepcji jak wyświetlić znaki z podanego wyrazu, a tu przecież jeszcze przesunięcie trzeba zrobić  <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />  no i kilka matryc podłączyć.  <br /><br />[syntax=c]/*<br /><br /> <br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />#define MOSI PB5//   &lt;---- A (SER IN)<br />#define SCK PB7//   &lt;---- SHIFT CLOCK (SC)<br />#define CS PB4// &lt;---- LATCH CLOCK (LC)<br />#define A1 (1&lt;&lt;PA0)<br />#define A2 (1&lt;&lt;PA1)<br />#define A3 (1&lt;&lt;PA2)<br />#define A4 (1&lt;&lt;PA3)<br />#define A5 (1&lt;&lt;PA4)<br />#define A6 (1&lt;&lt;PA5)<br />#define A7 (1&lt;&lt;PA6)<br />#define A8 (1&lt;&lt;PA7)<br /><br />void InitSpi(void); /* inicjalizacja sprzętowego SPI */<br /><br />void SendSpi(uint8_t bajt); /* wysłanie bajtu - sprzętowe SPI */<br /><br /><br /><br /><br />volatile char znak;<br />uint8_t i;<br /><br /><br /><br /><br />volatile uint8_t kol1&#91;&#93;;<br />volatile uint8_t kol1&#91;&#93;;<br />volatile uint8_t kol2&#91;&#93;;<br />volatile uint8_t kol3&#91;&#93;;<br />volatile uint8_t kol4&#91;&#93;;<br />volatile uint8_t kol5&#91;&#93;;<br /><br /><br /><br /><br />//**************************** główna funkcja programu<br />int main(void) {<br />/* inicjalizacja SPI */<br />DDRA = 255;<br />InitSpi();<br />PORTA = 255;<br />_delay_ms(10);<br /><br /><br /><br /><br /> //ustawienie timera 0<br />TCCR0 |= (1&lt;&lt;WGM01); // ustawienie trybu CTC strona 80 datashet<br />TCCR0 |= (1&lt;&lt;CS02) | (1&lt;&lt;CS00); // prescaler 1024<br />OCR0 = 30; // zaladowanie wartosci do zliczenia przez timer<br />           // aby uzyskac f 200 Hz odswierzania<br />           // 16 000 000 takotowanie procesora<br />           // (16 000 000 / 1024 / 400) - 1 = 77<br />TIMSK |= (1&lt;&lt;OCIE0); // zezwolenie na przerwanie Comapre Match<br />sei();<br /><br />/* pętla nieskończona */<br />while (1) {<br /><br /><br />znak='K';<br />_delay_ms(1000);<br />znak='a';<br />_delay_ms(1000);<br />znak='c';<br />_delay_ms(1000);<br />znak='p';<br />_delay_ms(1000);<br />znak='e';<br />_delay_ms(1000);<br />znak='r';<br />_delay_ms(1000);<br /><br />          //_delay_ms(1000);<br /><br />}<br /><br />} /* koniec pętli nieskończonej */<br /><br />ISR(TIMER0_COMP_vect){<br /><br />switch (i) {<br />case 0:<br />PORTA = 255;<br />SendSpi(kol1&#91;znak&#93;|128);<br />PORTA &amp;= ~ A1;<br /><br /><br />break;<br />case 1:<br />PORTA = 255;<br />SendSpi(kol2&#91;znak&#93;|128);<br />PORTA &amp;= ~ A2;<br /><br />//PORTA = 255;<br />break;<br />case 2:<br />PORTA = 255;<br />SendSpi(kol3&#91;znak&#93;|128);<br />PORTA &amp;= ~ A3;<br /><br />//PORTA = 255;<br />break;<br />case 3:<br />PORTA = 255;<br />SendSpi(kol4&#91;znak&#93;|128);<br />PORTA &amp;= ~ A4;<br /><br />//PORTA = 255;<br />break;<br />case 4:<br />PORTA = 255;<br />SendSpi(kol5&#91;znak&#93;|128);<br />PORTA &amp;= ~ A5;<br /><br />//PORTA = 255;<br />break;<br />case 5:<br />PORTA = 255;<br />SendSpi(~0);<br />PORTA &amp;= ~ A6;<br /><br />//PORTA = 255;<br />break;<br />case 6:<br />PORTA = 255;<br />SendSpi(~1);<br />PORTA &amp;= ~ A7;<br /><br />//PORTA = 255;<br />break;<br />case 7:<br />PORTA = 255;<br />SendSpi(~0);<br />PORTA &amp;= ~ A8;<br />break;<br /><br />//PORTA = 255;<br /><br /><br />}//switch<br /><br />i++;<br />if(i&gt;7) i=0;<br /><br /><br />}<br /><br />void InitSpi(void) {<br />/* ustawienie kierunku wyjściowego dla linii MOSI, SCK i CS */<br />DDRB |= (1 &lt;&lt; MOSI) | (1 &lt;&lt; SCK) | (1 &lt;&lt; CS);<br />/* aktywacja  SPI, tryb pracy Master, prędkość zegara Fosc/64 */<br />SPCR |= (1 &lt;&lt; SPE) | (1 &lt;&lt; MSTR) | (1 &lt;&lt; SPR1);// | (1 &lt;&lt; DORD); // DORD najpierw wsuwa bit najstarszy<br />}<br /><br />/* definicja  funkcji wysyłającej bajt */<br />void SendSpi(uint8_t bajt) {<br />/* wysyłamy bajt do układu Slave */<br />SPDR = bajt;<br />/* czekamy aż zostanie wysłany ostatni bit */<br />while (!(SPSR &amp; (1 &lt;&lt; SPIF)))<br />;<br /><br />}<br /><br /><br /><br /><br /><br /><br /><br /><br />// definicje znakow wg ASCI każda tabela to jedna kolumna znaku<br /><br />volatile uint8_t kol1&#91;&#93;={<br /> 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br /> 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br /> 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br /> 127 , 127 , 127 , 127 , 127 , 107 , 109 , 29 , 73 , 127 ,<br /> 127 , 127 , 107 , 119 , 127 , 119 , 127 , 125 , 65 , 127 ,<br />  94 , 61 , 115 , 13 , 97 , 127 , 73 , 79 , 127 , 127 , 119 ,<br />     107 , 127 , 95 , 89 , 64 , 0 , 65 , 0 , 0 , 0 , 65 , 0 ,<br />     127 , 125 , 0 , 0 , 0 , 0 , 65 , 0 , 65 , 0 , 78 , 63 , 1 ,<br />   3 , 1 , 28 , 15 , 60 , 127 , 43 , 127 , 111 , 126 , 127 ,<br /> 125 , 0 , 113 , 113 , 113 , 119 , 103 , 0 , 127 , 125 , 0 ,<br /> 127 , 96 , 96 , 113 , 96 , 119 , 96 , 118 , 111 , 97 , 99 ,<br />  97 , 110 , 103 , 110 , 127 , 127 , 127 , 119 , 119<br />};<br />volatile uint8_t kol2&#91;&#93;={<br />127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />    127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />127 , 127 , 127 , 127 , 15 , 0 , 85 , 27 , 54 , 47 , 99 ,<br /> 62 , 119 , 119 , 122 , 119 , 124 , 123 , 58 , 94 , 60 , 62 ,<br />107 , 46 , 86 , 56 , 54 , 54 , 73 , 74 , 107 , 107 , 62 ,<br /> 63 , 54 , 59 , 54 , 62 , 62 , 54 , 55 , 62 , 119 , 62 , 126 ,<br />119 , 126 , 95 , 111 , 62 , 55 , 62 , 55 , 54 , 63 , 126 ,<br />125 , 126 , 107 , 119 , 58 , 0 , 75 , 62 , 95 , 126 , 63 ,<br />106 , 118 , 110 , 110 , 106 , 64 , 90 , 119 , 110 , 126 ,<br />123 , 62 , 111 , 119 , 110 , 107 , 107 , 119 , 106 , 1 ,<br />126 , 125 , 126 , 117 , 122 , 108 , 119 , 127 , 62 , 119 , 99<br />};<br />volatile uint8_t kol3&#91;&#93;={<br />127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />    127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />127 , 127 , 127 , 6 , 127 , 107 , 0 , 119 , 42 , 31 , 93 ,<br /> 93 , 65 , 65 , 121 , 119 , 124 , 119 , 54 , 0 , 58 , 46 , 91 ,<br /> 46 , 54 , 55 , 54 , 54 , 73 , 73 , 93 , 107 , 93 , 58 , 48 ,<br /> 59 , 54 , 62 , 62 , 54 , 55 , 54 , 119 , 0 , 62 , 107 , 126 ,<br />    103 , 119 , 62 , 55 , 58 , 51 , 54 , 0 , 126 , 126 , 113 ,<br />    119 , 120 , 54 , 62 , 96 , 62 , 63 , 126 , 95 , 106 , 110 ,<br />110 , 110 , 106 , 55 , 90 , 111 , 32 , 110 , 117 , 0 , 115 ,<br />    111 , 110 , 107 , 107 , 111 , 106 , 110 , 126 , 126 , 121 ,<br />123 , 122 , 106 , 73 , 0 , 73 , 85 , 85<br />};<br />volatile uint8_t kol4&#91;&#93;={<br />127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />127 , 127 , 127 , 127 , 15 , 0 , 85 , 108 , 93 , 127 , 62 ,<br /> 99 , 119 , 119 , 127 , 119 , 127 , 111 , 46 , 126 , 54 , 22 ,<br />      0 , 46 , 54 , 47 , 54 , 53 , 127 , 127 , 62 , 107 , 107 , 55 ,<br /> 62 , 59 , 54 , 62 , 93 , 54 , 55 , 54 , 119 , 62 , 1 , 93 ,<br />    126 , 95 , 123 , 62 , 55 , 61 , 53 , 54 , 63 , 126 , 125 , 126 ,<br />    107 , 119 , 46 , 62 , 75 , 0 , 95 , 126 , 111 , 106 , 110 ,<br />110 , 118 , 106 , 63 , 90 , 111 , 126 , 33 , 110 , 126 , 111 ,<br />111 , 110 , 107 , 115 , 111 , 106 , 126 , 125 , 125 , 126 ,<br />117 , 122 , 102 , 62 , 127 , 119 , 99 , 119<br />};<br />volatile uint8_t kol5&#91;&#93;={<br />127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 ,<br />127 , 127 , 127 , 127 , 127 , 107 , 91 , 92 , 122 , 127 , 127 ,<br />127 , 107 , 119 , 127 , 119 , 127 , 95 , 65 , 127 , 78 , 57 ,<br />123 , 49 , 121 , 31 , 73 , 67 , 127 , 127 , 127 , 107 , 119 ,<br /> 79 , 65 , 64 , 73 , 93 , 99 , 62 , 63 , 80 , 0 , 127 , 63 , 62 ,<br />126 , 0 , 0 , 65 , 79 , 66 , 78 , 57 , 63 , 1 , 3 , 1 , 28 , 15 ,<br />     30 , 127 , 43 , 127 , 111 , 126 , 127 , 112 , 113 , 125 , 0 ,<br />115 , 95 , 65 , 112 , 127 , 127 , 127 , 127 , 112 , 112 , 113 ,<br />    119 , 96 , 119 , 125 , 125 , 96 , 99 , 97 , 110 , 97 , 110 ,<br />127 , 127 , 127 , 119 , 119<br />};[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 33 minutach ]</span></strong><br /><br />[syntax=c]while(znak){<br /><br />znak=wyraz&#91;j&#93;;<br />j++;<br />_delay_ms(1000);<br />}[/syntax]<br /><br />czy to może być az tak proste?  <img src="https://forum.atnel.pl/images/smilies/icon_eek.gif" alt=":shock:" title="Zaszokowany" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 11 lis 2016, o 16:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-10T22:50:22+01:00</updated>
<published>2016-11-10T22:50:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174430#p174430</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174430#p174430"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174430#p174430"><![CDATA[
<div class="quotetitle">Hannibal9 napisał(a):</div><div class="quotecontent"><br />Chcę napisać program do wyświetlania tekstu na matrycy led i wyboista droga przede mną<br /></div><br />No wyboista i powiedziałbym, że nawet hardkorowa - ale nie dlatego żebyś miał nie dać sobie rady od strony programowej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bo tu na pewno dasz radę ... za to rejestr przesuwny wybrałeś do tego celu TRAGICZNY <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> ... toż on nie ma zatrzasku ....<br /><br />To co na 7-segmentowych wyświetlaczach LED zwane jest duszkami przy nieprawidłowej obsłudze multipleksowania ... i można to programowo wyeliminować - to dzięki takim kocim starym rejestrom będziesz miał efekt po wielokroć gorszy od duszków, smużenie i brzydko wyświetlane dane na takim wyświetlaczu ... <br /><br />ZDECYDOWANIE warto wybrać jeśli nie specjalizowany rejestr do takiego celu i to z możliwością od razu sterowania prądowego diod LED (czyli zero rezystorów) <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... to przynajmniej takie popularne rejestry jak 74595 czy CD4049 ... no byle jaki byle by z Latch'owaniem <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> — 10 lis 2016, o 22:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-11-10T22:40:06+01:00</updated>
<published>2016-11-10T22:40:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174429#p174429</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174429#p174429"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174429#p174429"><![CDATA[
Jasne, przepraszam to już zmęczenie  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Chcę napisać program do wyświetlania tekstu na matrycy led i wyboista droga przede mną, pozdrawiam. Jeszcze raz dzięki za pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 10 lis 2016, o 22:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-10T22:23:15+01:00</updated>
<published>2016-11-10T22:23:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174423#p174423</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174423#p174423"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174423#p174423"><![CDATA[
A czy widzisz w PDF w opisie na drugiej stronie procka żeby opis SS był przy innym pinie niż PB4 ? <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> — 10 lis 2016, o 22:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-11-10T22:20:52+01:00</updated>
<published>2016-11-10T22:20:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174422#p174422</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174422#p174422"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174422#p174422"><![CDATA[
Ostatnie pytanie ( na tym etapie ) PIN SS(CS) to koniecznie jest BP4?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 10 lis 2016, o 22:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-10T21:50:13+01:00</updated>
<published>2016-11-10T21:50:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174409#p174409</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174409#p174409"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174409#p174409"><![CDATA[
<div class="quotetitle">Hannibal9 napisał(a):</div><div class="quotecontent"><br />jestem z pokolenia które od najmłodszych lat uczyło się rosyjskiego.<br /></div><br />eeeeh no to tak jak ja ... przez co nigdy tego rosyjskiego się i tak nie nauczyłem a teraz żałuję bo by się przydał - sporo fajnej literatury w tym języku jest (elektronicznej) ... tyle że w tamtych czasach człowiek się buntował ...<br /><br />ale ok ja troszkę znam techniczny więc pomogę<br /><br />jeśli używasz SPI w trybie MASTER a tak chcesz używać to masz do wyboru albo<br /><br />ustawić pin SS (CS) jako wyjście i już będzie ci działać ... pomimo to że nie musisz go wcale używać w programie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... albo możesz używać jako wyjście ale do całkiem innych celów niż SPI ... więc chyba nie ma problemu <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Jeśli zaś nie ustawisz go jako WYJŚCIE no to musisz (ta czerwona ramka) wtedy MUSISZ i tak przynajmniej podciągnąć to wejście do VCC w przeciwnym wypadku gdy będzie na nim stan niski - procek pomyśli że inny układ MASTER chce przejąć magistralę i będzie chciał się zachowywać jako SPI SLAVE - a tego pewnie nie chcesz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Więc jeśli nie jest ci ten pin potrzebny to zostaw go ustawionego jako wyjście i już - w czym problem ? A jeśli potrzebny - jako wyjście (jak pisałem wyżej do innych celów - to też śmiało z niego korzystaj do innych celów niż SPI) ... gorzej gdybyś chciał go koniecznie stosować jako WEJŚCIE i wymuszać na nim stan NISKI wtedy będzie ZONK jak sam widzisz <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> — 10 lis 2016, o 21:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-11-10T21:31:15+01:00</updated>
<published>2016-11-10T21:31:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174403#p174403</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174403#p174403"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174403#p174403"><![CDATA[
Niestety nie znam angielskiego <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" />, jestem z pokolenia które od najmłodszych lat uczyło się rosyjskiego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 10 lis 2016, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-10T21:11:58+01:00</updated>
<published>2016-11-10T21:11:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174396#p174396</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174396#p174396"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174396#p174396"><![CDATA[
<div class="quotetitle">Hannibal9 napisał(a):</div><div class="quotecontent"><br />to przestaje działać , dziwne.<br /></div><br />Wcale nie dziwne - zdaje się, że nie czytasz PDF'a <br /><br /><a href="https://obrazkiforum.atnel.pl/54/ecef0533cbcc91c40b242752a52d3eab.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/54/ecef0533cbcc91c40b242752a52d3eab.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 lis 2016, o 21:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-11-10T20:33:59+01:00</updated>
<published>2016-11-10T20:33:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174391#p174391</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174391#p174391"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174391#p174391"><![CDATA[
[syntax=c]/*<br /> * main.c<br /><br /> *<br /> *  Created on: 10 lis 2016<br /> *      Author: Krzysiek<br /> */<br />/*<br /> * main.c<br /> *<br /> *  Created on: 2010-09-13<br /> *       Autor: Mirosław Kardaś<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />/*<br /> *<br /> *ODKOMENTUJ poniższą linię aby użyć programowego SPI<br /> *<br /> */<br />//#define USE_SOFT_SPI<br /><br /><br /><br />/* hardware SPI */<br />#define MOSI PB5//   &lt;---- A (SER IN)<br />#define SCK PB7//   &lt;---- SHIFT CLOCK (SC)<br />#define CS PB4// &lt;---- LATCH CLOCK (LC)<br />#define A1 PA0<br />#define A2 PA1<br />#define A3 PA2<br />#define A4 PA3<br />#define A5 PA4<br />#define A6 PA5<br />#define A7 PA6<br />#define A8 PA7<br /><br /><br /><br /><br />void InitSpi(void);/* inicjalizacja sprzętowego SPI */<br /><br /><br />void SendSpi( uint8_t bajt );/* wysłanie bajtu - sprzętowe SPI */<br /><br /><br /><br />/* definicja  zmiennej pomocniczej – licznik kroków/pozycja<br /> * zapalonej diody LED */<br />uint8_t cnt;<br /><br />//**************************** główna funkcja programu<br />int main(void) {<br />/* inicjalizacja SPI */<br />        DDRA = 255;<br />InitSpi();<br />        PORTA=255;<br />        _delay_ms(10);<br />/* wysyłając zero dokonujemy programowego resetu rejestru */<br /><br />SendSpi( 0 );<br /><br /><br />/* pętla nieskończona */<br />while(1) {<br />SendSpi(12);<br />PORTA &amp;= ~(1&lt;&lt;A3);<br />_delay_ms(10);<br />PORTA |= (1&lt;&lt;A3);<br /><br />                SendSpi(13);<br />                PORTA &amp;= ~(1&lt;&lt;A4);<br />                _delay_ms(10);<br />                PORTA |= (1&lt;&lt;A4);<br />_delay_ms(10);<br /><br /><br />} /* koniec pętli nieskończonej */<br />}<br /><br /><br /><br />void InitSpi(void) {<br />/* ustawienie kierunku wyjściowego dla linii MOSI, SCK i CS */<br />DDRB |= (1&lt;&lt;MOSI)|(1&lt;&lt;SCK)|(1&lt;&lt;CS);<br />/* aktywacja  SPI, tryb pracy Master, prędkość zegara Fosc/64 */<br />SPCR |= (1&lt;&lt;SPE)|(1&lt;&lt;MSTR)|(1&lt;&lt;SPR1);<br />}<br /><br />/* definicja  funkcji wysyłającej bajt */<br />void SendSpi( uint8_t bajt ) {<br />/* wysyłamy bajt do układu Slave */<br />SPDR = bajt;<br />/* czekamy aż zostanie wysłany ostatni bit */<br />while( !(SPSR &amp; (1&lt;&lt;SPIF)) );<br /><br /><br />}[/syntax]<br /><br />to jest kod Mirka z BlueBook-a, okrojony przeze mnie, ten kod działa, jako że ja chcę wykorzystać rejestr 74164 to CS na PB4 jest mi nie potrzebne, ale jak usunę z kodu:<br /><br />[syntax=c]#define CS PB4// &lt;---- LATCH CLOCK (LC)[/syntax]<br /><br />oraz wytnę go z inicjalizacj (1&lt;&lt;CS):<br />[syntax=c]DDRB |= (1&lt;&lt;MOSI)|(1&lt;&lt;SCK)|(1&lt;&lt;CS);[/syntax]<br /><br />to przestaje działać , dziwne.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 10 lis 2016, o 20:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2016-11-10T19:08:46+01:00</updated>
<published>2016-11-10T19:08:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174374#p174374</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174374#p174374"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174374#p174374"><![CDATA[
A kod kompiluje Ci się bez warningów/error'ów?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 10 lis 2016, o 19:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-10T18:41:20+01:00</updated>
<published>2016-11-10T18:41:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174369#p174369</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174369#p174369"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174369#p174369"><![CDATA[
No to skoro masz działający kod - no to już nie powinno być problemu ze znalezieniem błędu - pewnie jakaś literówka może ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> sprawdź dokładnie<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 lis 2016, o 18:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-11-10T17:05:49+01:00</updated>
<published>2016-11-10T17:05:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174362#p174362</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174362#p174362"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174362#p174362"><![CDATA[
Poprawiłem , nie pomogło coś jest jeszcze nie tak, wgrałem do procka kod z Bluebook -  i mimo że jest na 74595 to działa, coś gdzieś knocę tylko nie mogę dojść co.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 10 lis 2016, o 17:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-10T16:47:12+01:00</updated>
<published>2016-11-10T16:47:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174359#p174359</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174359#p174359"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174359#p174359"><![CDATA[
[syntax=c]Init_SPI();<br />DDRB |= (1&lt;&lt;PB5) | (1&lt;&lt;PB7);[/syntax]<br /><br />No robisz mega babola - jak można inicjalizować rejestry SPI jeśli się najpierw nie ustawi właściwych kierunków dla linii ?<br /><br />Masz może Bluebooka ? ... jeśli tak to zajrzyj na DVD/Pendrive do lekcji o SPI albo do książki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 lis 2016, o 16:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-11-10T16:37:03+01:00</updated>
<published>2016-11-10T16:37:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174357#p174357</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174357#p174357"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174357#p174357"><![CDATA[
[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />//#include &lt;avr/eeprom.h&gt; // bibliotek do obsługi EEPROM<br />#include &lt;util/delay.h&gt;<br /><br />/* sekcja int deklaracje funkcji i zmiennych */<br />void Init_SPI (void);<br />void Send_SPI (uint8_t bajt);<br /><br /><br />int main(void){<br /><br />Init_SPI();<br />DDRB |= (1&lt;&lt;PB5) | (1&lt;&lt;PB7);<br />DDRA |= (1&lt;&lt;PA1);<br /><br /><br />//sei();//włączenie przerwań zaremowane<br />while(1){<br /><br /><br /><br />   PORTA&amp;=~(1&lt;&lt;PA1);<br /><br />    _delay_ms(1000);<br /><br />   Send_SPI(12);<br />    PORTA |=(1&lt;&lt;PA1);<br /><br />    _delay_ms(1000);<br />}<br /><br />}<br /><br /><br />void Init_SPI (void){<br /><br />SPCR |= (1&lt;&lt;SPE) | (1&lt;&lt;MSTR) |(1&lt;&lt;SPR1) |(1&lt;&lt;SPR0); // włączenie modułu SPI, ustawienie modułu na master<br />                              // SPSR rejestr do ustawienia predkości przesylu danych po SPI , jak nie ustawiam t f osc / 4<br />}<br /><br />void Send_SPI (uint8_t bajt){  // wysyłanie pojedynczego bajtu po SPI<br />SPDR=bajt;<br />while (!(SPSR &amp; (1&lt;&lt;SPIF))); // czas na wyzerowanie flagi<br />}[/syntax]<br /><br />tak wygląda cały plik main.c, próbuję go maksymalnie uprościć aby tylko SPI ruszyło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 10 lis 2016, o 16:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-10T13:23:49+01:00</updated>
<published>2016-11-10T13:23:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174351#p174351</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174351#p174351"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174351#p174351"><![CDATA[
eeeeh ok ja rozumiem .... ale zrozum, że takie przesyłanie na raty to jak zadawanie zagadek na forum, zamiast raz a porządnie zadać pytanie<br /><br />skąd np my mamy wiedzieć co u ciebie się kryje pod<br /><br />MOSI_PORT <br /><br />??? jeśli rejestr PORTX to już masz babola bo źle inicjalizujesz SPI i to może być jak najbardziej powodem że bit SPIF nigdy nie zostanie zmieniony<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 lis 2016, o 13:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-11-10T13:02:30+01:00</updated>
<published>2016-11-10T13:02:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174348#p174348</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174348#p174348"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174348#p174348"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br />to pokaż pan kod w main C jakim to testujesz bo tam może robisz błąd<br /></div><br /><br />w pętli głównej wpisałem sobie kod:<br /><br /><br /><br />[syntax=c]led_ON;<br />_delay_ms(1000);<br /><br />Send_SPI(10);<br /><br />LED_off<br />_dealy_ms(1000);[/syntax]<br /><br />jeżeli wyrzucę Send_SPI dioda sobie miga, jeżeli wstawię Send_SPI dioda się zapala i świeci cały czas, tak jakby dochodziło do funkcji wysłania przez SPI i kuniec.<br /><br />Cały plik main.c wrzucę jak będę w domciu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 10 lis 2016, o 13:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-11-10T12:52:31+01:00</updated>
<published>2016-11-10T12:52:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174347#p174347</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174347#p174347"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174347#p174347"><![CDATA[
to pokaż pan kod w main C jakim to testujesz bo tam może robisz błąd<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 lis 2016, o 12:52</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-11-10T11:36:26+01:00</updated>
<published>2016-11-10T11:36:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174345#p174345</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174345#p174345"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174345#p174345"><![CDATA[
<div class="quotetitle">Harry napisał(a):</div><div class="quotecontent"><br />a zatrzasnąłeś po wysłaniu?<br /></div><br /> 74164 nie ma zatrzasku.<br /><br />W pliku main.c w pętli głównej wywołuję Send_SPI i w tym momencie program jakby się zawieszał, w pętli głównej dałem przed wywołaniem Send_Spi zapalenie diody led ( aby skontrolować czy program działa) a po wywołani Send_Spi dałem zgaszenie diody, dioda się zapala ale nie gaśnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 10 lis 2016, o 11:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2016-11-09T22:33:32+01:00</updated>
<published>2016-11-09T22:33:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174314#p174314</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174314#p174314"/>
<title type="html"><![CDATA[Re: ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174314#p174314"><![CDATA[
a zatrzasnąłeś po wysłaniu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 9 lis 2016, o 22:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Hannibal9]]></name></author>
<updated>2016-11-09T21:19:20+01:00</updated>
<published>2016-11-09T21:19:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174296#p174296</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174296#p174296"/>
<title type="html"><![CDATA[ATMega 32 Q 16MHz sterowanie przez rejestr 74164]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16778&amp;p=174296#p174296"><![CDATA[
Witam<br /><br />Chcę wysłać bajt za pomocą SPI do rejestru 74164, podłączenia:<br /> ATMega 32      74164<br /> PB5 MOSI          AB nóżki 1,2<br /> PB7 CLK           CLK nóżka 8<br />                       MR do Vcc<br /><br />Inicializacja SPI:[syntax=c]&#91;syntax=c&#93;<br />void Init_SPI (void){<br />MOSI_PORT |= MOSI; // PB5 - MOSI jako wyjście<br />MOSI_PORT |= SCK;  // PB7 - SCK jako wyjscie<br />SPCR |= (1&lt;&lt;SPE) | (1&lt;&lt;MSTR) |(1&lt;&lt;SPR1) |(1&lt;&lt;SPR0);[/syntax]<br />[/syntax]<br />Funkcja do wysyłania bajtu:<br />[syntax=c]void Send_SPI (uint8_t bajt){  // wysyłanie pojedynczego bajtu po SPI<br />SPDR=bajt;<br />while (!(SPSR &amp; (1&lt;&lt;SPIF))); // czas na wyzerowanie flagi<br />}[/syntax]<br /><br />do wyjść rejestru podłączyłem diody led w celu przetestowania czy funkcja dział, niestety na wyjściach rejestru mam cały czas  0 mimo wywołania funkcji z jakim kolwiek parametrem np Send_SPI(10). Co robię nie tak?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7324">Hannibal9</a> — 9 lis 2016, o 21:19</p><hr />
]]></content>
</entry>
</feed>