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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-01-21T15:21:00+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=20030&amp;mode</id>
<entry>
<author><name><![CDATA[RR AVR]]></name></author>
<updated>2018-01-21T15:21:00+01:00</updated>
<published>2018-01-21T15:21:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202372#p202372</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202372#p202372"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202372#p202372"><![CDATA[
Dziękuje za pomoc teraz wszystko jest ok.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18244">RR AVR</a> — 21 sty 2018, o 15:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2018-01-20T22:45:47+01:00</updated>
<published>2018-01-20T22:45:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202335#p202335</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202335#p202335"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202335#p202335"><![CDATA[
OK<br />W pliku main.c dodaj:<br />[syntax=c]#include &lt;util/delay.h&gt;[/syntax]<br /><br />W pliku d_led.h wywal tą linijkę:<br />[syntax=c]#define static uint8_t cyfry&#91;&#93;[/syntax]<br />zamiast: <br />[syntax=c]#define CA1 (1&lt;&lt;PC1)<br />#define CA2 (1&lt;&lt;PC2)[/syntax]<br />daj:<br />[syntax=c]#define CA1 (1&lt;&lt;PC0)<br />#define CA2 (1&lt;&lt;PC1)[/syntax]<br />No i oczywiście podłącz anody pod PC0 i PC1.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 20 sty 2018, o 22:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RR AVR]]></name></author>
<updated>2018-01-20T22:37:00+01:00</updated>
<published>2018-01-20T22:37:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202334#p202334</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202334#p202334"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202334#p202334"><![CDATA[
Tutaj wklejam plik nagłówkowy:[syntax=c]#ifndef _d_led_h<br />#define _d_led_h<br /><br />//dla katod<br />#define LED_DATA PORTD<br />#define LED_DATA_DIR DDRD<br />#define ANODY_PORT PORTC<br />#define ANODY_DIR DDRC<br />//dla anod<br /><br />#define CA1 (1&lt;&lt;PC1)<br />#define CA2 (1&lt;&lt;PC2)<br /><br /><br />#define static uint8_t cyfry&#91;&#93;<br />#define SEG_A (1&lt;&lt;0)<br />#define SEG_B (1&lt;&lt;1)<br />#define SEG_C (1&lt;&lt;2)<br />#define SEG_D (1&lt;&lt;3)<br />#define SEG_E (1&lt;&lt;4)<br />#define SEG_F (1&lt;&lt;5)<br />#define SEG_G (1&lt;&lt;6)<br />#define SEG_DP (1&lt;&lt;7)<br />#define NIC 10<br /><br /><br />//deklaracje zmiennych: &quot;extern&quot; po to aby morzna było je wykorzystac w plikach w których dam ten #define'm<br />extern volatile uint8_t cy1;<br />extern volatile uint8_t cy2;<br /><br />//dunkcja dla innych modółów<br />void d_led_init(void);<br /><br />#endif /* D_LED_H_ */[/syntax]<br />oraz funkcję główną:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;d_led.h&quot;<br /><br />int main(void)<br />{<br />d_led_init();//inicjalizacja wyświetlacza 8 segm.<br />cy1 = 3;<br />cy2 = 7;<br /><br />sei(); //włącznie globalnego zezwolenia na przerwania<br /><br />while(1)<br />{<br />DDRB|=(1&lt;&lt;PB0);<br />PORTB^=(1&lt;&lt;PB0);<br />_delay_ms(1000);<br />}<br /><br />}[/syntax]<br />Próby czyszczenia zapisywania i ponownego uruchamiania eclipsa nie działają.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18244">RR AVR</a> — 20 sty 2018, o 22:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2018-01-20T22:20:22+01:00</updated>
<published>2018-01-20T22:20:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202332#p202332</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202332#p202332"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202332#p202332"><![CDATA[
No to jest w porządku.<br />A pozostałe dwa pliki, możesz je tutaj wkleić?<br />Robiłeś clean'ownie projektu?<br />Klikasz prawym myszy na nazwie projektu po lewej stronie i wybierasz Clean Project.<br />Po tym &quot;zabiegu&quot; skompiluj jeszcze raz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 20 sty 2018, o 22:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RR AVR]]></name></author>
<updated>2018-01-20T22:17:24+01:00</updated>
<published>2018-01-20T22:17:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202331#p202331</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202331#p202331"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202331#p202331"><![CDATA[
Poprawiony kod:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt; // to do pamięci<br />#include &quot;d_led.h&quot;<br /><br /><br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br /><br />const uint8_t cyfry&#91;&#93; PROGMEM = {<br />192,// 0<br />249,// 1<br />164,// 2<br />176,// 3<br />153,// 4<br />146,// 5<br />130,// 6<br />216,// 7<br />128,// 8<br />144,// 9<br />255,// user def  NIC<br />};<br /><br /><br />void d_led_init(void)<br />{<br />LED_DATA_DIR = 0xFF; //wzystkie piny portu D jako wyjścia<br />LED_DATA = 0xFF; //wygaszanie katod pc1 i pc2 (chyba)<br />ANODY_DIR |= CA1 | CA2; //anody jako wyjścia<br />ANODY_PORT |= CA1 | CA2; //wygaszanie wszystkich anod (dwuch)<br /><br />TCCR2 |= (1&lt;&lt;WGM21); //pryb pracy timera<br />TCCR2 |= (1&lt;&lt;CS22); //plaskaler 64<br />OCR2 = 156; //dodatkowy podział aby uzyskac 100Hz na wyświetlaczu<br />TIMSK |= (1&lt;&lt;OCIE2); //zezwolenie na przerwanie Compare Match<br />}<br /><br /><br /><br />ISR(TIMER2_COMP_vect)<br />{<br />static uint8_t licznik = 1; //zmienna do przełącznia anod<br /><br />ANODY_PORT = ~licznik; //wartośc jest negowana aby krążylo 0<br /><br /><br />if(licznik==1) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93; ); //gdy zapalony wyświetlacz 1 wyświetl cy1<br /><br />else if(licznik==2) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93; ); //analogicznie do pierwszego<br />//cykliczne przesunięcie bitu aby świecił jeden segmęt<br />licznik &lt;&lt;=1; //przesunięcie zawartości bitu licznika o 1 w lewo<br />if(licznik&gt;2) licznik=1; //kiedy licznik &gt;2 to =1<br /><br /><br /><br />}[/syntax]<br />Jest możliwość że czegoś brakuje (jakiejś instrukcji, pętli itp.) w tym kodzie? Obawiam się że mogłem źle zrozumieć to co jest w książce.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18244">RR AVR</a> — 20 sty 2018, o 22:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2018-01-20T21:29:23+01:00</updated>
<published>2018-01-20T21:29:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202328#p202328</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202328#p202328"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202328#p202328"><![CDATA[
Taka mała uwaga: przy inkludach pliki bibliotek wbudowanych typu io, interrupt, pgmspace zawsze umieszczaj przed inkludami innych własnych bibliotek!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 20 sty 2018, o 21:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrLearner]]></name></author>
<updated>2018-01-20T21:08:19+01:00</updated>
<published>2018-01-20T21:08:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202323#p202323</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202323#p202323"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202323#p202323"><![CDATA[
<div class="quotetitle">RR AVR napisał(a):</div><div class="quotecontent"><br />być morze jest coś nie tak z eclipse albo innych programów z których korzystam<br /></div><br /><br />Tę możliwość raczej z góry bym odrzucił. Błąd na 99.999% jest w błędnie napisanym kodzie. Pokaż ten poprawiony kod<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18017">avrLearner</a> — 20 sty 2018, o 21:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RR AVR]]></name></author>
<updated>2018-01-20T21:02:43+01:00</updated>
<published>2018-01-20T21:02:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202322#p202322</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202322#p202322"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202322#p202322"><![CDATA[
Dzięki za pomoc poprawiłem ale nadal jest błąd:<br />d:\radek\robotyka\paczka_avr\paczka_avr\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:1780:43: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__inline__'<br />//<br />d:\radek\robotyka\paczka_avr\paczka_avr\avr8-gnu-toolchain\avr\include\avr\pgmspace.h:1781:8: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__inline__'<br />//<br />../d_led.c:48:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'uint8_t'<br />//tutaj jest jeszcze linijka i to na końcu<br />make: *** [d_led.o] Error 1<br />Nie wiem do czego się odnosi, być morze jest coś nie tak z eclipse albo innych programów z których korzystam, mam nadzieje że te kilka linijek z konsoli będą pomocne.<br />dodam jeszcze że na wysokości zmiennej <em>static</em> pojawia się po wyczyszczeniu błędów symbol pytajnika po lewej stronie, natomiast po zbudowaniu czerwony &quot;X&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18244">RR AVR</a> — 20 sty 2018, o 21:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[anshar]]></name></author>
<updated>2018-01-20T18:51:59+01:00</updated>
<published>2018-01-20T18:51:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202312#p202312</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202312#p202312"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202312#p202312"><![CDATA[
Masz dwa błędy, a raczej trzy, które widzę tak na szybko. <br />Pierwszy o którym pisze Ci kolega avrLearner. Usuń tą pętlę while w całości z obsługi przerwania.<br />Pozostałe dwa błędy:<br />Masz:<br />[syntax=c]if(licznik==1) LED_DATA = cy1);  //gdy zapalony wyświetlacz 1 wyświetl cy1<br />else if(licznik==2) LED_DATA = cy2);     //analogicznie do pierwszego[/syntax]<br />Powinno być:<br />[syntax=c]if(licznik==1) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93; ); //gdy zapalony wyświetlacz 1 wyświetl cy1<br />else if(licznik==2) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93; ); //analogicznie do pierwszego[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7157">anshar</a> — 20 sty 2018, o 18:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[avrLearner]]></name></author>
<updated>2018-01-20T18:35:39+01:00</updated>
<published>2018-01-20T18:35:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202311#p202311</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202311#p202311"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202311#p202311"><![CDATA[
Czemu pętla główna jest w procedurze obsługi przerwania?<br /><br />[syntax=c]ISR(TIMER2_COMP_vect)<br />{ ????????????????????????????<br />        static uint8_t licznik = 1;      //zmienna do przełącznia anod<br /> <br />        ANODY_PORT = ~licznik;   //wartośc jest negowana aby krążylo 0<br /> <br /> <br />        if(licznik==1) LED_DATA = cy1);  //gdy zapalony wyświetlacz 1 wyświetl cy1<br /> <br />        else if(licznik==2) LED_DATA = cy2);     //analogicznie do pierwszego<br />        //cykliczne przesunięcie bitu aby świecił jeden segmęt<br />        licznik &lt;&lt;=1;   //przesunięcie zawartości bitu licznika o 1 w lewo<br />        if(licznik&gt;2) licznik=1;         //kiedy licznik &gt;2 to =1<br /> <br /> <br />        while(1){<br />                licznik &lt;&lt;= 1;<br />                if(licznik&gt;2) licznik =1;<br />                PORTC = licznik;<br />                _delay_ms(1000);<br />                }<br />        } ??????????????????????????????[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18017">avrLearner</a> — 20 sty 2018, o 18:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2018-01-20T18:15:36+01:00</updated>
<published>2018-01-20T18:15:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202310#p202310</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202310#p202310"/>
<title type="html"><![CDATA[Re: Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202310#p202310"><![CDATA[
Wklej błędy, które wyskakują.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 20 sty 2018, o 18:15</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RR AVR]]></name></author>
<updated>2018-01-20T17:31:57+01:00</updated>
<published>2018-01-20T17:31:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202309#p202309</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202309#p202309"/>
<title type="html"><![CDATA[Problem z mulit pleksowaniem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20030&amp;p=202309#p202309"><![CDATA[
Witam wszystkich forumowiczów, jestem tu nowy i to mój pierwszy wątek, więc proszę o wyrozumiałość jeżeli naruszyłem jakieś zasady. Mój problem zapewne jest prosty więc jeżeli został poruszony wcześniej to proszę o link do niego.<br /><br />Chodzi tu o jeden plik, nie wiem co jest, kody do plików <em>main</em> i pliku nagłówkowego są przepisane z blue-book`a. ja co prawda mam wyświetlacz mogący wyświetlać tylko 2 cyfry jednocześnie (7-segmentowy i 2-częściowy) oraz anody i katody podpięte do innych pinów, ale całość nie różni się od tego w książce (poza tym nieszczęsnym <em>d_led.c</em> który nie działa). Poniżej wklejam kod.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;d_led.h&quot;<br />#include &lt;avr/pgmspace.h&gt; // to do pamięci<br /><br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br /><br />const uint8_t cyfry&#91;&#93; PROGMEM = {<br />192,// 0<br />249,// 1<br />164,// 2<br />176,// 3<br />153,// 4<br />146,// 5<br />130,// 6<br />216,// 7<br />128,// 8<br />144,// 9<br />255,// user def  NIC<br />};<br /><br /><br />void d_led_init(void)<br />{<br />LED_DATA_DIR = 0xFF; //wzystkie piny portu D jako wyjścia<br />LED_DATA = 0xFF; //wygaszanie katod pc1 i pc2 (chyba)<br />ANODY_DIR |= CA1 | CA2; //anody jako wyjścia<br />ANODY_PORT |= CA1 | CA2; //wygaszanie wszystkich anod (dwuch)<br /><br />TCCR2 |= (1&lt;&lt;WGM21); //pryb pracy timera<br />TCCR2 |= (1&lt;&lt;CS22); //plaskaler 64<br />OCR2 = 156; //dodatkowy podział aby uzyskac 100Hz na wyświetlaczu<br />TIMSK |= (1&lt;&lt;OCIE2); //zezwolenie na przerwanie Compare Match<br />}<br /><br /><br /><br />ISR(TIMER2_COMP_vect)<br />{<br />static uint8_t licznik = 1; //zmienna do przełącznia anod<br /><br />ANODY_PORT = ~licznik; //wartośc jest negowana aby krążylo 0<br /><br /><br />if(licznik==1) LED_DATA = cy1); //gdy zapalony wyświetlacz 1 wyświetl cy1<br /><br />else if(licznik==2) LED_DATA = cy2); //analogicznie do pierwszego<br />//cykliczne przesunięcie bitu aby świecił jeden segmęt<br />licznik &lt;&lt;=1; //przesunięcie zawartości bitu licznika o 1 w lewo<br />if(licznik&gt;2) licznik=1; //kiedy licznik &gt;2 to =1<br /><br /><br />while(1){<br />licznik &lt;&lt;= 1;<br />if(licznik&gt;2) licznik =1;<br />PORTC = licznik;<br />_delay_ms(1000);<br />}<br />}[/syntax]Dodam jeszcze że błąd wyświetla się w procedurze obsługi przerwania, przy zmiennej i if`ach. Posiadam ATmegę 8 i programator USBasp.<br />Z góry dziękuję wszystkim za odpowiedź.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18244">RR AVR</a> — 20 sty 2018, o 17:31</p><hr />
]]></content>
</entry>
</feed>