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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-08-16T06:00:15+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=19002&amp;mode</id>
<entry>
<author><name><![CDATA[xentis]]></name></author>
<updated>2017-08-16T06:00:15+01:00</updated>
<published>2017-08-16T06:00:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193458#p193458</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193458#p193458"/>
<title type="html"><![CDATA[Re: Problem z duszkami na LED atmega8  i kompilator głupieje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193458#p193458"><![CDATA[
<div class="quotetitle">RadekB86 napisał(a):</div><div class="quotecontent"><br />Niby wszytko fajnie ale tak sobie myślę czy nie można by to zrobić lepiej bo na wyświetlaczu nr.3 jest widoczna lekka poświata tak jakby cyfry 2 Bo ja to zrobiłem przypisując zgaszony wyświetlacz indeksem tablicy nr.16<br /></div> Porównaj swoją bibliotekę z książki z tą zamieszczoną w uaktualnieniach na stronie autora książki <a href="http://www.atnel.pl/uaktualnienia-programow-do-dvd.html"  class="postlink">http://www.atnel.pl/uaktualnienia-programow-do-dvd.html</a> w kodzie od multi_LED był mały babol (nie wiem na jakim etapie został poprawiony i czy &quot;twardy&quot; BB miał już poprawioną)<br />W każdym bądź razie w przerwaniu od licznika gdzie odbywa się multipleksowanie prawie na samym początku jest linijka odpowiadająca za wygaszenie wszystkich wyświetlaczy przed zaświeceniem kolejnego i tu był błąd który powodował wyświetlenie &quot;duszków&quot;. Sprawdź może akurat u Ciebie to jest problemem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6265">xentis</a> — 16 sie 2017, o 06:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matekogon]]></name></author>
<updated>2017-08-15T19:28:32+01:00</updated>
<published>2017-08-15T19:28:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193442#p193442</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193442#p193442"/>
<title type="html"><![CDATA[Re: Problem z duszkami na LED atmega8  i kompilator głupieje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193442#p193442"><![CDATA[
Kolego jak wykorzystujesz zmienną w różnych plikach to wystarczy  ze w pliku  wspolny.h zapiszesz ją  extern volatile uint8_t subzero2 a następnie plik wspolny.h dołączysz poprzez include w plikach których ma być uzywana ta zmienna<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1380">matekogon</a> — 15 sie 2017, o 19:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Marhef]]></name></author>
<updated>2017-08-15T19:21:22+01:00</updated>
<published>2017-08-15T19:21:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193440#p193440</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193440#p193440"/>
<title type="html"><![CDATA[Re: Problem z duszkami na LED atmega8  i kompilator głupieje]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193440#p193440"><![CDATA[
<div class="quotetitle">RadekB86 napisał(a):</div><div class="quotecontent"><br />A drugie pytanie dotyczy bardziej kompilatora<br />a więc tworzę zmienną volatile aby móc ją obsługiwać w przerwaniu<br />Kod:<br />volatile uint8_t subzero2//zmienna oznaczająca temperaturę ujemną<br /><br />i kompilator mi krzyczy że jej nie zadeklarowałem mimo że to zrobiłem w pliku main.c <img src="https://forum.atnel.pl/images/smilies/icon_e_ugeek.gif" alt=":ugeek:" title="Świr, i to jaki!" /><br />(lub tylko w pliku d_led.c)<br />a jak dodam ją też w pliki d_led.c i w pliku main.c (czyli w 2 plikach jednocześnie) wtedy się kompiluje<br />jednym słowem muszę zadeklarować tą samą zmienną w 2 plikach źródłowych bo pliki z rozszerzeniem *.c to przecież są pliki źródłowe prawda ? więc co za różnica czy jest w main.c czy d_led.c ?<br />Dlaczego tak się dzieje ?<br /></div>Jeżeli deklarujesz zmienną subzero w main.c oraz w d_led.c, to tak naprawdę tworzysz dwie różne zmienne. Nie wiem, w którym pliku (nie pamiętam), ale musisz jedną z tych deklaracji dodać ze słówkiem extern (w bluebooku to jest, poszukaj)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=12752">Marhef</a> — 15 sie 2017, o 19:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RadekB86]]></name></author>
<updated>2017-08-15T18:58:31+01:00</updated>
<published>2017-08-15T18:58:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193439#p193439</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193439#p193439"/>
<title type="html"><![CDATA[Problem z duszkami na LED atmega8  i kompilator głupieje ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=19002&amp;p=193439#p193439"><![CDATA[
A wiec przerabiam bibliotekę z BB do wyświetlacza LED chcę zrobić termometr na wyświetlaczu RED-GREEN<br /><a href="https://obrazkiforum.atnel.pl/1837/ed542c87235c042e1669f4215cdf5459.jpg"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/1837/ed542c87235c042e1669f4215cdf5459.jpg" alt="Obrazek" /></a><br /><br />/atmega8 <br />Pytanie nr.1<br /> Moim zamysłem jest aby wyświetlacz świecił na czerwono gdy jest temperatura dodatnia i zielono gdy jest ujemna. <br />Oczywiście ćwiczę na ATB więc pomyślałem że po prostu 2wie pierwsze cyferki będą jako czerwony ,a 2wie drugie jako &quot;zielony&quot; <img src="https://forum.atnel.pl/images/smilies/icon_cool.gif" alt="8-)" title="Cool" /> <br />Zmieniłem nieco funkcję w obsłudze przerwania która jest załączana po przez warunek w IFIe (zmienną subzero2  sprawdzam czy temperatura jest ujemna)  funkcja wygląda tak:<br />[syntax=c]if(subzero2){<br />     if(anoda==1) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93; );// gdy zapalony wyśw.1 podaj stan zmiennej c1<br />else if(anoda==2) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93; );// gdy zapalony wyśw.2 podaj stan zmiennej c2<br />     if(anoda==4) LED_DATA = pgm_read_byte( &amp;cyfry&#91;16&#93; );// gdy zapalony wyśw.3 podaj stan zmiennej c3<br />    else if(anoda==8) LED_DATA = pgm_read_byte( &amp;cyfry&#91;16&#93; );<br />}<br />else  {<br />     if(anoda==1) LED_DATA = pgm_read_byte( &amp;cyfry&#91;16&#93; );// gdy zapalony wyśw.3 podaj stan zmiennej c3<br />else if(anoda==2) LED_DATA = pgm_read_byte( &amp;cyfry&#91;16&#93; );// gdy zapalony wyśw.4 podaj stan zmiennej c4<br />     if(anoda==4) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy3&#93; );// gdy zapalony wyśw.3 podaj stan zmiennej c3<br />    else if(anoda==8) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy4&#93; );<br />}[/syntax]<br />Niby wszytko fajnie ale tak sobie myślę czy nie można by to zrobić lepiej bo na wyświetlaczu nr.3 jest widoczna lekka poświata tak jakby cyfry 2 Bo ja to zrobiłem przypisując zgaszony wyświetlacz indeksem tablicy nr.16<br /><br />Moim zdaniem lepiej by było po prostu wyłączyć te anody(zielonego wyświetlacza) a włączyć te czerwonego gdy jest temperatura dodatnia i odwrotnie gdy będzie temperatura ujemna włączyć anody zielonego ,a wyłączyć czerwonego -tylko nie mam pomysłu jak to zmienić w kodzie. <img src="https://forum.atnel.pl/images/smilies/icon_mrgreen.gif" alt=":mrgreen:" title="Pan Zielony" /> <br /><br />2.A drugie pytanie dotyczy  bardziej kompilatora <br />a więc tworzę zmienną volatile aby móc ją obsługiwać w przerwaniu <div class="codetitle"><b>Code:</b></div><div class="codecontent">volatile uint8_t subzero2//zmienna oznaczająca temperaturę ujemną</div> <br />i kompilator mi krzyczy że jej nie zadeklarowałem mimo że to zrobiłem w pliku main.c <img src="https://forum.atnel.pl/images/smilies/icon_e_ugeek.gif" alt=":ugeek:" title="Świr, i to jaki!" /> <br />(lub tylko w pliku d_led.c) <br />a jak dodam ją też w pliki d_led.c  i w pliku main.c (czyli w 2 plikach jednocześnie) wtedy się kompiluje<br />jednym słowem muszę zadeklarować tą samą zmienną w 2 plikach źródłowych bo pliki z rozszerzeniem *.c  to przecież są pliki źródłowe prawda ? więc co za różnica czy jest w main.c czy d_led.c ?<br /> Dlaczego tak się dzieje ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1837">RadekB86</a> — 15 sie 2017, o 18:58</p><hr />
]]></content>
</entry>
</feed>