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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2022-02-11T07:44:33+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=24140&amp;mode</id>
<entry>
<author><name><![CDATA[koji27]]></name></author>
<updated>2022-02-11T07:44:33+01:00</updated>
<published>2022-02-11T07:44:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235047#p235047</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235047#p235047"/>
<title type="html"><![CDATA[Re: Multipleksowanie matrycy LED 8x8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235047#p235047"><![CDATA[
Temat do zamknięcia.<br /><br />Wysłane z mojego M2011K2G przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13003">koji27</a> — 11 lut 2022, o 07:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[koji27]]></name></author>
<updated>2022-02-08T08:49:09+01:00</updated>
<published>2022-02-08T08:49:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235017#p235017</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235017#p235017"/>
<title type="html"><![CDATA[Re: Multipleksowanie matrycy LED 8x8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235017#p235017"><![CDATA[
Kod programu:<br /><br />MAIN.C:<br />[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;util/delay.h&gt;<br /><br />#include &quot;SPI.h&quot;<br />#include &quot;LEDS_Multiplex.h&quot;<br /><br />int main(void)<br />{<br />SPI_Init();<br />Multiplex_Init();<br /><br />sei();<br /><br />    while (1)<br />{<br /><br />    }<br />}[/syntax]<br /><br />LED_Mutliplex.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#include &quot;SPI.h&quot;<br />#include &quot;LEDS_Multiplex.h&quot;<br /><br />const uint8_t serce_SR1&#91;&#93; PROGMEM = {1,2,4,8,16,32,64,128};<br /><br />const uint8_t serce_SR0&#91;&#93; PROGMEM = {0b11110001,<br />0b11101110,<br />0b11011110,<br />0b10111101,<br />0b10111101,<br />0b11011110,<br />0b11101110,<br />0b11110001<br />};<br /><br />const uint8_t serce_SR2&#91;&#93; PROGMEM = {0b11111111,<br />0b11101111,<br />0b11111111,<br />0b11111111,<br />0b11111111,<br />0b11111111,<br />0b11111111,<br />0b11111111<br />};<br /><br />// const uint8_t Layer_tab&#91;&#93; PROGMEM = {1,2,4,8,16,32,64,128};<br /><br />void Multiplex_Init(void){<br /><br />//****USTAWIENIA TIMERA2*****************************************<br />TCCR2 |= (1&lt;&lt;WGM21);// tryb CTC<br />TCCR2 |= (1&lt;&lt;CS22) | (1&lt;&lt;CS21) | (1&lt;&lt;CS20);// prescaler 1024<br />OCR2 = 1;// podzial przez 38 rej. porownania<br />TIMSK |= (1&lt;&lt;OCIE2);// zezwolenie na przerwanie Compare Match na Timerze2<br />}<br /><br />ISR(TIMER2_COMP_vect){<br /><br />static uint8_t SR1_cnt = 0;<br />static uint8_t SR0_cnt = 0;<br /><br />SPI_Send_SR0(pgm_read_byte(&amp;serce_SR0&#91;SR0_cnt&#93;));<br />SPI_Send_SR1(pgm_read_byte(&amp;serce_SR1&#91;SR1_cnt&#93;));<br /><br />SR0_cnt++;<br />SR1_cnt++;<br />if(SR0_cnt&gt;7) SR0_cnt = 0;<br />if(SR1_cnt&gt;7) SR1_cnt = 0;<br /><br />}[/syntax]<br /><br />SPI.h<br />[syntax=c]#ifndef SPI_H_<br />#define SPI_H_<br /><br />//****PODLACZENIE SPRZETOWE**********************<br />#define MOSI PB3//   &lt;---- A (SER IN)<br />#define SCK PB5//   &lt;---- SHIFT CLOCK (SC)<br />#define SHIFT_REG_0 PB2// &lt;---- LATCH CLOCK rejestru nr 1<br />#define SHIFT_REG_1 PB1// &lt;---- LATCH CLOCK rejestru nr 2<br />//#define SHIFT_REG_2 PD1// &lt;---- LATCH CLOCK rejestru nr 3<br />// #define SHIFT_REG_3 PD2<br />// #define SHIFT_REG_4 PD3<br />// #define SHIFT_REG_5 PD4<br />// #define SHIFT_REG_6 PD5<br />// #define SHIFT_REG_7 PD6<br />// #define SHIFT_REG_8 PD7<br />//****************************************************<br /><br />#define SR0_OFF 0xFF<br />#define SR0_ON 0x00<br />#define SR1_LEDS_OFF 0xFF<br />#define SR2_LEDS_OFF 0X00<br /><br />//****MAKRA**************************************<br />#define LATCH_ON_0 PORTB |= (1&lt;&lt;SHIFT_REG_0);<br />#define LATCH_OFF_0 PORTB &amp;= ~(1&lt;&lt;SHIFT_REG_0);<br /><br />#define LATCH_ON_1 PORTB |= (1&lt;&lt;SHIFT_REG_1);<br />#define LATCH_OFF_1 PORTB &amp;= ~(1&lt;&lt;SHIFT_REG_1);<br /><br />// #define LATCH_ON_2 PORTB |= (1&lt;&lt;SHIFT_REG_2);<br />// #define LATCH_OFF_2 PORTB &amp;= ~(1&lt;&lt;SHIFT_REG_2<br /><br />//****************************************************<br /><br /><br />//****DEKLARACJE FUNKCJI**********************<br />void SPI_Init(void);<br />void SPI_Send_SR(uint8_t bajt, uint8_t CS_REG);<br />void LATCH_OFN(uint8_t SR_CS_line);<br />void SPI_Send_SR0(uint8_t bajt);<br />void SPI_Send_SR1(uint8_t bajt);<br />void SPI_Send_SR2(uint8_t bajt);<br />void SPI_Send_16Bit(uint16_t bajt);<br />//************************************************<br /><br /><br />#endif /* SPI_H_ */[/syntax]<br /><br />SPI.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#include &quot;SPI.h&quot;<br />#include &quot;LEDS_Multiplex.h&quot;<br /><br />void SPI_Init(void)<br />{<br />DDRB |= (1&lt;&lt;MOSI) | (1&lt;&lt;SCK) | (1&lt;&lt; SHIFT_REG_0) | (1&lt;&lt; SHIFT_REG_1);// ustawienie kierunku wyjsciowego dla linii MOSI, SCK i CS oraz SR0<br />SPCR |= (1&lt;&lt;SPE) | (1&lt;&lt;MSTR) | (1&lt;&lt;SPR1);// aktywacja SPI, tryb pracy Master, predkosc zegara Fosc/64<br />}<br /><br />void LATCH_OFN(uint8_t SR_CS_line)<br />{<br />PORTB |= (1&lt;&lt;SR_CS_line);<br />PORTB &amp;= ~(1&lt;&lt;SR_CS_line);<br />}<br /><br />void SPI_Send_SR(uint8_t bajt, uint8_t CS_REG)// funkcja wysylajaca 8 bitowa zmienna<br />{<br />SPDR = bajt;// wpisanie zmiennej bajt do rejestru SPDR komunikcji SPI<br />while( ! (SPSR &amp; (1&lt;&lt;SPIF)));// oczekiwanie na ustawienie flagi w rejestrze SPSR<br />LATCH_OFN(CS_REG);<br />}<br /><br />void SPI_Send_SR0(uint8_t bajt)// funkcja wysylajaca 8 bitowa zmienna<br />{<br />SPDR = bajt;// wpisanie zmiennej bajt do rejestru SPDR komunikcji SPI<br />while( ! (SPSR &amp; (1&lt;&lt;SPIF)));// oczekiwanie na ustawienie flagi w rejestrze SPSR<br />LATCH_ON_0;// wlaczenie wejsc (w stan wysoki) w rejestrze przesuwnym 74HC595<br />LATCH_OFF_0;// wylaczenie wejsc (w stan niski) w rejestrze przesuwnym 74HC595<br />}<br /><br />void SPI_Send_SR1(uint8_t bajt)// funkcja wysylajaca 8 bitowa zmienna<br />{<br />SPDR = bajt;// wpisanie zmiennej bajt do rejestru SPDR komunikcji SPI<br />while( ! (SPSR &amp; (1&lt;&lt;SPIF)));// oczekiwanie na ustawienie flagi w rejestrze SPSR<br />LATCH_ON_1;// wlaczenie wejsc (w stan wysoki) w rejestrze przesuwnym 74HC595<br />LATCH_OFF_1;// wylaczenie wejsc (w stan niski) w rejestrze przesuwnym 74HC595<br />}<br /><br />void SPI_Send_16Bit(uint16_t bajt)// funkcja wysylajaca 16 bitowa zmienna<br />{<br />SPDR = bajt&gt;&gt;8;// wpisanie zmiennej bajt i przesuniecei bitowe o 8 pozycji do rejestru SPDR komunikcji SPI<br />while( ! (SPSR &amp; (1&lt;&lt;SPIF)));<br />SPDR = bajt;<br />while( ! (SPSR &amp; (1&lt;&lt;SPIF)));<br />LATCH_ON_1;<br />LATCH_OFF_1;<br />}[/syntax]<br /><br />LEDS_MULTIPLEX.h jest pusty.<br /><br />Schematy:<br /><a href="https://obrazkiforum.atnel.pl/13003/ac9cc55bd73a13d6679b20ef5485e1da.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/13003/ac9cc55bd73a13d6679b20ef5485e1da.png" alt="Obrazek" /></a><a href="https://obrazkiforum.atnel.pl/13003/95ca392dcfefe2974558ea351ff52d88.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/13003/95ca392dcfefe2974558ea351ff52d88.png" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13003">koji27</a> — 8 lut 2022, o 08:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2022-02-08T07:38:34+01:00</updated>
<published>2022-02-08T07:38:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235016#p235016</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235016#p235016"/>
<title type="html"><![CDATA[Re: Multipleksowanie matrycy LED 8x8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235016#p235016"><![CDATA[
Wrzucamy na forum a nie na zewnątrzne serwisy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 8 lut 2022, o 07:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[koji27]]></name></author>
<updated>2022-02-08T07:15:38+01:00</updated>
<published>2022-02-08T07:15:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235015#p235015</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235015#p235015"/>
<title type="html"><![CDATA[Re: Multipleksowanie matrycy LED 8x8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235015#p235015"><![CDATA[
Tutaj jest kod w c:<br /><span style="color: #FF0000">[ kody źródłowe wstawia się na forum atnel a nie jakieś kocie linki do zewn serwisów - więc usunąłem, mirekk36 ]</span><br /><br />Schematy wrzucę później.<br /><br />Wysłane z mojego M2011K2G przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13003">koji27</a> — 8 lut 2022, o 07:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2022-02-08T01:00:54+01:00</updated>
<published>2022-02-08T01:00:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235013#p235013</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235013#p235013"/>
<title type="html"><![CDATA[Re: Multipleksowanie matrycy LED 8x8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235013#p235013"><![CDATA[
Wklej kod, wrzuć fotki i schemat.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 8 lut 2022, o 01:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[koji27]]></name></author>
<updated>2022-02-07T20:12:18+01:00</updated>
<published>2022-02-07T20:12:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235010#p235010</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235010#p235010"/>
<title type="html"><![CDATA[Multipleksowanie matrycy LED 8x8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24140&amp;p=235010#p235010"><![CDATA[
Witam.<br /><br />Zacznę od tego że dopiero zaczynam swoją przygodę z AVR i programowaniem.<br /><br />Popełniłem w ostatnim czasie pewien projekt. Mianowicie matrycę LED 8x8 sterowaną przez 2xSN74HC595 i Atmega8A (SPI). LEDy znajdują się na pcb zaprojektowanej i wytrawionej osobiście. Reszta jest polutowana na płytce uniwersalnej.<br /><br />Napisałem program i jestem pewien na 100% że działa prawidłowo. Multipleksowanie za pomocą przerwania od timera z częstotliwością około 400hz.<br /><br />Tylko no.. no właśnie jest pewien problem. Podczas działania zapalają się LEDy które nie powinny. Świeca nieco słabiej od reszty. Przy mniejszej częstotliwości widać jak lekko migają. Sprawdziłem wszystko, brak jakichkolwiek zwarć itp. Powiem szczerze że uC jedzie na wewnętrznym rezonatorze. Dodam jeszcze że gdy wyłączę katody to oczywiście wszystko gaśnie ale gdy tylko włączę jakąkolwiek katodę np na pierwszej anodzie (kolumnie) to zawsze zapalają mi się dodatkowe diody nr 1 i 5.<br /><br />Co może być powodem w/w problemu? Brak zewnętrznego kwarcu? Zbyt wysoka częstotliwości? Jakieś zakłócenia? Czy może sam układ SN74HC595? <br /><br /><a href="http://cloud.tapatalk.com/s/62016d9ea6dbe/Screenrecorder-2022-02-07-20-04-53-278.mp4"  class="postlink">http://cloud.tapatalk.com/s/62016d9ea6dbe/Screenrecorder-2022-02-07-20-04-53-278.mp4</a><br /><br />Wysłane z mojego M2011K2G przy użyciu Tapatalka<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13003">koji27</a> — 7 lut 2022, o 20:12</p><hr />
]]></content>
</entry>
</feed>