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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-01-06T23:20:14+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=12&amp;t=10008&amp;mode</id>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-06T23:20:14+01:00</updated>
<published>2015-01-06T23:20:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112848#p112848</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112848#p112848"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112848#p112848"><![CDATA[
liczyłem dla 8Mhz i ma co 3 sekundy zliczać ale dzięki za czujność ! <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><div class="quotetitle">Niveasoft napisał(a):</div><div class="quotecontent"><br />Poprawiłem co nieco ale nie wszystko <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /></div><br />Dzieki będę kminił <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 6 sty 2015, o 23:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-05T17:32:31+01:00</updated>
<published>2015-01-05T17:32:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112492#p112492</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112492#p112492"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112492#p112492"><![CDATA[
Aha, dzięki za wyjaśnienie, kurcze troszkę długi ten Twój kod żebym go kminił dlatego skłoniłbym się ustawienia tego PWM na 100% a potem na 0%<br />A jeśli by to ze sobą nie współgrało to<br /><div class="quotetitle">Niveasoft napisał(a):</div><div class="quotecontent"><br />Drugim sposobem jest odłaczenie Timera od wyjścia bo inaczej Timer ma wyższy priorytet i on przejmuje kontrolę nad pinem. .<br /></div> ale nie wiem jak by to zrobić..<br /><br />Zmontowałem program w całość nie wiem czy mogę zapisać Pwm = 255 w kodzie ale napisałem. Jakby komuś się chciało prześledzić ten program i poprawić ewentualnie jakby coś było źle to byłbym bardzo wdzięczny.<br /><br />[syntax=basic4gl]$regfile = &quot;m8def.dat&quot;<br />$crystal = 4000000<br />$hwstack = 40<br />$swstack = 16<br />$framesize = 32<br /><br /><br />Config Portb.1 = Input                                      'guzik do ściemniania<br />Config Portb.2 = Input                                      'guzik do rozjaśniani<br />Config Portx.x = Input                                      'guzik od włączenia podświetlenia na 3s<br /><br />Set Portb.1<br />Set Portb.2                                                 'podciągnięcie rezystorem<br />Set Portx.x<br /><br /><br /><br /><br />Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 8<br />Config Timer0 = Timer , Prescale = 64                       'deklaracja timera jako czasomierza<br /><br />On Timer0 Przerwanie_co_1sek                                'deklaracja jaka etykieta obsługuje przepełnienie od Timera1<br /><br />Dim Wypelnienie As Byte<br />Dim Licznik As Integer<br /><br />Enable Interrupts<br />Enable Timer0<br /><br />Timer0 = 6<br />Licznik = 0<br /><br />Do<br /><br />If Pinb.1 = 0 And Pwm1a &gt; 0 Then<br />Pwm1a = Pwm1a - 50.8<br /><br /><br />Else If Pinb.2 = 0 And Pwm1a &lt; 254 Then<br />Pwm1a = Pwm1a + 5.8<br />End If<br /><br /><br />Waitms 10<br /><br />Loop<br />End<br /><br />If Portx.x = 0 Then                                         'nacisniecie guzika -&gt; podaj prąd na podświetlenie<br /><br /><br /><br />Przerwanie_co_1sek:<br /><br />Pwm = 255                                                   'włącz podświetlenie w wyświetlaczu<br />Timer0 = Timer0 + 6<br /><br />Incr Licznik<br />If Licznik = 1500 Then<br />Pwm = 0                                                     'jeżeli wyświetlacz świeci się 3 sekundy to go zgaś<br /><br />End If<br /><br /><br />Return[/syntax]<br /><br />Napisałem PortX.X bo nie wiem orientowałem się jeszcze którego mogę użyć do przycisku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 5 sty 2015, o 17:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-05T13:45:13+01:00</updated>
<published>2015-01-05T13:45:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112426#p112426</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112426#p112426"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112426#p112426"><![CDATA[
Dzięki za odpowiedź. Jeśli chodzi o ten program mam jeszcze jedno pytanie. Chodzi o część kodu odpowiedzialną za włączanie podświetlenia w wyświetlaczu na 3 sekundy ( użyłem timera0 )<br /><br />Jest to póki co oddzielny kod ale będę łączył oba programy w jeden.<br /><br />[syntax=basic4gl]$regfile = &quot;m8def.dat&quot;<br />$crystal = 4000000<br />$hwstack = 40<br />$swstack = 16<br />$framesize = 32<br /><br /><br />Config Portd.6 = Input                                      'guzik od włączenia podświetlenia na 3s<br />Config Timer0 = Timer , Prescale = 64                       'deklaracja timera jako czasomierza<br /><br />On Timer0 Przerwanie_co_1sek                                'deklaracja jaka etykieta obsługuje przepełnienie od Timera1<br /><br /><br />Dim Licznik As Integer<br /><br />Enable Interrupts<br />Enable Timer0<br /><br />Timer0 = 6<br />Licznik = 0<br /><br />Do<br />Loop<br />End<br /><br />If Portd.6 = 1 Then                                         'kiedy guzik ma stan wysoki to podaj prąd na podświetlenie<br /><br />Portb.1 = 1                                                 'włącz podświetlenie w wyświetlaczu mogę użyć tego portu ?<br /><br />Przerwanie_co_1sek:<br /><br />Timer0 = Timer0 + 6<br /><br />Incr Licznik<br />If Licznik = 1500 Then<br />Portb.1 = 0                                                 'jeżeli wyświetlacz świeci się 3 sekundy to go zgaś<br /><br />End If<br /><br /><br />Return[/syntax]<br /><br />Problem mam w tym jak mam rozwązać problem z podawaniem prądu na port ( jeżeli nacisnę guzik podpięty pod port np d.6 to podaj prąd na Anodę wyświetlacza, a jesli miną 3 sekundy to przestań podawać tam prąd). Mogę do tego użyć PORTB.1, którego używam do ściemniania i rozjaśniana w Timerze1, czy Timer0 ma jakiś swój Port pod który miałbym się podpiąć, czy użyć dowlonego i do niego też podpiąć Anodę z LCD i po prostu na niego podawać prąd?<br />Proszę o ewnetualne poprawienie kodu jeśli jest tam jakiś błąd.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 5 sty 2015, o 13:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2015-01-04T20:33:31+01:00</updated>
<published>2015-01-04T20:33:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112307#p112307</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112307#p112307"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112307#p112307"><![CDATA[
Czyli w takim razie źle zrozumiałem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Na początek schemat wyprowadzeń układu ATmega8, który jest zresztą bardzo ciekawie zdublowany w BASCOM AVR:<br /><a href="http://forum.atnel.pl/_obrazki/o/1183/d41b967b6214b89833e013ed79ec3d5a.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1183/d41b967b6214b89833e013ed79ec3d5a.jpg" alt="Obrazek" /></a><br /><br />Założyłeś sobie, że PB1 (nr 15)  oraz PB2 (nr 16) mają być wejściami i mają być do nich podpięte przyciski, wobec czego niejako tę kwestię masz rozwiązaną, ale...<br />...jednocześnie próbujesz użyć tych pinów jako wyjścia sygnału PWM, bo są to &quot;nogi&quot; z alternatywną funkcją &quot;Output Compare&quot; (OC1A, OC1B). Są to dwa niezależne kanały sygnału PWM dla timer'a 1.<br />Nie może być takiej sytuacji i musisz zmienić piny wejściowe na inne, tak aby sygnał z przycisków nie kolidował z sygnałem wyjściowym.<br /><br />Jeżeli nie używasz komparatora analogowego to śmiało możesz użyć np. pinów PD6 (nr 12), PD7 (nr 13). Kolejny przycisk do dowolnego innego pinu I/O (byle tylko nie funkcyjnego PB1 [nr 15]). Zmiany w programie są wtedy mam nadzieję oczywiste:<br /><br />[syntax=basic4gl]Config Portd.6 = Input                                  'guzik do ściemniania<br />Config Portd.7 = Input                                  'guzik do rozjaśniania<br />Set Portd.6                                             'podciągnięcie rezystorem<br />Set Portd.7[/syntax]<br />Nie zapomnij również w instrukcjach warunkowych zmienić wyrażeń na &quot;Pind.6 = 0&quot; i &quot;Pind.7 = 0&quot;.<br /><br />Tak jak wcześniej pisałeś katodę podświetlenia do masy a anodę do PB1 (nr 15).<br />Używanie rejestru Pwm1b jest w tym wypadku zbędne, dlatego też nie potrzebna jest jego konfiguracja, co zwalnia odpowiedzialny za niego pin z roli wyjścia:<br /><br />[syntax=basic4gl]Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 8[/syntax]<br />Tylko informacyjnie dodam, że &quot;Clear Up/Down&quot; w tym wypadku nie jest odpowiedzialne za ściemnianie/rozjaśnianie (tak naprawdę nie ma z tym wiele wspólnego), a jedynie polaryzację sygnału wyjściowego. Próbujesz sterować jednym oświetleniem, a nie dwoma.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 4 sty 2015, o 20:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-04T18:17:05+01:00</updated>
<published>2015-01-04T18:17:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112235#p112235</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112235#p112235"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112235#p112235"><![CDATA[
Nie wiem które piny za co odpowiadają w tym AVR to PB1 PB2 PC6 napisałem żeby się zapytać czy mogę ich użyć. Czytałem dokumentacje ale za bardzo nie zrozumiałem do czego służy dany port. Chodzi mi o to żebyście mi napisali jak to podpiąć żeby działało.<br />Uczę się programowania w innym języku i szkoda mi jest czasu zagłębiać się w Bascoma i AVR bo chyba do niczego mi się w życiu nie przyda.<br />Nie powiem bo mikrokontrolery są ciekawe ale wolę uczyć się czegoś innego, a wszystkiego wiedzieć się nie da.<br /><br />Proszę napiszcie mi do których portów mam to podłączyć jeżeli używam dwóch Timerów i 3 przyciski. Timer0 do włączenia podświetlenia na 3 sekundy (jeden przycisk)  i Timer1 do ściemniania rozjaśniania podświetlenia. ( 2 przyciski - jeden ściemnia jeden rozjaśnia )<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 4 sty 2015, o 18:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2015-01-04T16:20:08+01:00</updated>
<published>2015-01-04T16:20:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112218#p112218</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112218#p112218"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112218#p112218"><![CDATA[
Coś mi się nie zgadza, albo nie do końca zrozumiałem o co chodzi.<br />Mianowicie, dla ATmega8 pin<br /><ul><li>PB1 jest w pewnym sensie powiązany z rejestrem (nie portem!) Pwm1a, a nie Timer0</li><li>PC6 to RESET (nie rozumiem jak mógłby być on połączony z Timer1 i rozjaśniać podświetlenie?)</li></ul><br />Kwestia jest dla mnie o tyle nietypowa, że PB2 (OC1A tzn. rejestr Pwm1b) ma tylko ściemniać podświetlenie a RESET (sic!) jedynie je rozjaśniać...<br /><br />Odpowiadając na Twoje pytanie rejestr Pwm1a powiązany jest z pinem PB1 tj. OC1A.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 4 sty 2015, o 16:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-04T13:58:13+01:00</updated>
<published>2015-01-04T13:58:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112192#p112192</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112192#p112192"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112192#p112192"><![CDATA[
dziękuje za wyjaśnienie. Mam jeszcze jedno pytanie co do podpięcia układu żeby działało sterowanie podświetleniem.<br />Przypomnę:<br />przycisk nr 1 włącza podświetlenie na 3 sekundy -&gt; Timer0 PB1 ?<br />przycisk nr 2 ściemnia podświetlenie LCD - &gt; Timer1 PB2 ?<br />przycisk nr 3 rozjaśnia podświetlenie LCD -&gt; Timer1 PC6 ?<br /><br />Porty od C.0 do C.5 mam zajęte bo jest podłączony wyświetlacz<br /><br />Jak podłączyć podświetlenie do wyświetlacza ? Ja myślę tak Katoda do (-) a Anoda do jakiegoś portu który obsługuje Timera1 i Timera0. Tylko nie mogę doczytać który to port Pwm1a, i nie wiem też jak podpiąć żeby działało to wyłączenie po 3 sekundach przez Timer0 do tego samego portu co Pwm1a czy do innego ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 4 sty 2015, o 13:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2015-01-03T22:51:25+01:00</updated>
<published>2015-01-03T22:51:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112118#p112118</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112118#p112118"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112118#p112118"><![CDATA[
Kwestia jest dość istotna, bo różnica w kształcie przebiegu jest znacząca, ale w praktyce dla diod LED (podświetlenia LCD) śmiało można stosować dowolną częstotliwość nie schodząc jednak poniżej 100Hz, bo będzie to dawało wrażenie mrugania, co może być dość denerwujące, a szczególnie jest to widoczne przy ruchu głową patrząc cały czas na to źródło światła.<br /><br />Znacznie większe znaczenie ma to w przypadku sterowania prędkością silników, gdzie warto używać wyższych częstotliwości, aby mówiąc potocznie &quot;silnik nie piszczał&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 3 sty 2015, o 22:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-03T22:35:09+01:00</updated>
<published>2015-01-03T22:35:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112113#p112113</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112113#p112113"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112113#p112113"><![CDATA[
<div class="quotetitle">Niveasoft napisał(a):</div><div class="quotecontent"><br />Nie spytaliśmy na początku czy kolega mieszka w akademiku bo może gdzieś tam wódka się chłodzi...a chłopak siedzi przed monitorem zamiast z kumplami przy sobocie <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><br /></div> Przeziębiony jestem i siedzę w domu dlatego tak spamuje w sobotni wieczór <img src="https://forum.atnel.pl/images/smilies/icon_razz.gif" alt=":P" title="Pokazuje język" /><br /><br />Powiedzcie mi jeszcze, bo rozumiem jak działa Prescaler w przypadku czasomierza i wiem po co go użyłem. Nie rozumiem natomiast roli Prescalera dla PWM. Po co dzielimy sygnał wejściowy przez dzielnik. Jakie to ma znaczenie w przypadku ściemniania i rozjaśniania podświetlenia czy częstotliwość dla PWM będzie wynosiła  15,6kHz, czy 1,96KHz ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 3 sty 2015, o 22:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[yaiba83]]></name></author>
<updated>2015-01-03T21:50:52+01:00</updated>
<published>2015-01-03T21:50:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112103#p112103</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112103#p112103"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112103#p112103"><![CDATA[
Wpisz 1.<br />Rozdzielczości PWM mogą być 8, 9, 10 bitowe dla których wartość maksymalna licznika odpowiednio wynosi 255, 511, 1023. Dla tych wartości częstotliwość sygnału PWM liczy się odpowiednio Fc/Prescaler/510, Fc/Prescaler/1022, Fc/Prescaler/2046<br />W tym przypadku częstotliwość PWM (8 bit) będzie wynosiła:<br />8MHz/1/510 = ok 15,6kHz<br />dla prescalera 8<br />8MHz/8/510 = ok 1,96kHz<br />Maksymalnie możesz wpisać 255<br />Przy 255 może świecić najmocniej albo najsłabiej. To zależy od parametru &quot;Compare A Pwm = Clear Up&quot; jak zmienisz na &quot;Compare A Pwm = Clear Down&quot; będzie działać odwrotnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2332">yaiba83</a> — 3 sty 2015, o 21:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-03T21:02:33+01:00</updated>
<published>2015-01-03T21:02:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112084#p112084</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112084#p112084"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112084#p112084"><![CDATA[
Dobra Panowie użyłem do ściemniania i rozjaśniania Timera1 <br /><br />[syntax=basic4gl]$regfile = &quot;m8def.dat&quot;<br />    $crystal = 4000000<br />    $hwstack = 40<br />    $swstack = 16<br />    $framesize = 32<br /><br /><br />    Config Portb.1 = Input                                  'guzik do ściemniania<br />    Config Portb.2 = Input                                  'guzik do rozjaśniania<br /><br />    Set Portb.1                                             'podciągnięcie rezystorem<br />    Set Portb.2<br /><br />    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 8<br /><br /><br />    Do<br />    If Pinb.1 = 0 And Pwm1a &gt; 0 Then<br />    Pwm1a = Pwm1a - 51<br /><br /><br />    Else If Pinb.2 = 0 And Pwm1a &lt; 254 Then<br />    Pwm1a = Pwm1a + 51<br />    End If<br /><br /><br />    Waitms 10<br /><br /><br />    Loop<br />    End[/syntax]<br /><br />Mam nadzieje że nigdzie nie ma błędu ale mam jeszcze pytanie. Bo ustawiłem W Config Timer1, że Pwm = 8 . Czy to oznacza że Pwm ma 8 bitów czyli ma zakres 0-255, czyli w punkcie 254 świeci najjaśniej? Druga sprawa nie rozumiem co mam wpisać tutaj w Prescale. Wpisałem 8 ale nie wiem czemu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 3 sty 2015, o 21:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[yaiba83]]></name></author>
<updated>2015-01-03T20:27:06+01:00</updated>
<published>2015-01-03T20:27:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112061#p112061</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112061#p112061"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112061#p112061"><![CDATA[
Nie chodzi o dyskotekę tylko o zasadę na jakiej polega ściemnianie i rozjaśnianie, bo widzę że kolega RideorDie zaczyna brnąć w ciemną uliczkę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2332">yaiba83</a> — 3 sty 2015, o 20:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2015-01-03T20:11:04+01:00</updated>
<published>2015-01-03T20:11:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112052#p112052</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112052#p112052"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112052#p112052"><![CDATA[
Sądziłem że autorowi chodziło o sterowanie podświetleniem za pomocą przycisku, ale skoro kwestią jest dyskoteka <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> to i ja dorzucę swój kod. Realizacja naprzemiennego rozjaśniania i ściemniania bez użycia pętli for:<br /><br />[syntax=basic4gl]Dim k as Integer<br /><br />k = 1<br /><br />Do<br /><br />Pwm0a = Pwm0a + k<br />Pwm0b = Pwm0a<br /><br />If not (Pwm0a Mod 255) then<br />k = -k<br />Endif<br /><br />Loop<br />End[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 3 sty 2015, o 20:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[yaiba83]]></name></author>
<updated>2015-01-03T19:30:50+01:00</updated>
<published>2015-01-03T19:24:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112028#p112028</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112028#p112028"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112028#p112028"><![CDATA[
Jak chcesz coś więcej się nauczyć niż tylko zaliczyć wykłady z Bascoma to zainteresuj się pozycją:<br /><a href="http://wydawnictwo.btc.pl/index.php?productID=655"  class="postlink">Programowanie mikrokontrolerów AVR w języku Bascom - Marcin Wiązania</a><br />W linku masz spis treści książki i listingi programów w niej zawarte.<br />Tam jest program do sterowania jasnością diod LED. Zobacz jak to wygląda i działa. Na tej podstawie przystosuj kod do swojego przypadku.<br />W książce masz również schematy jak to podłączyć.<br /><br />[syntax=basic4gl]'Program sterowania jasnością dwóch diod LED za pomocą sygnału PWM<br />'Rozdzielczość sygnałów PWM 8 bitów<br />'Częstotliwość sygnału PWM ok. 15,6 kHz<br />$regfile = &quot;m8def.dat&quot;                                      'informuje kompilator o pliku<br />       'dyrektyw mikrokontrolera<br />$crystal = 8000000                                          'informuje kompilator o<br />       'częstotliwości oscylatora<br />       'taktującego mikrokontroler<br />Config Pinb.1 = Output                                      'linia PB1 (OC1A) jako wyjściowa<br />Config Pinb.2 = Output                                      'linia PB2 (OC1B) jako wyjściowa<br />Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up ,    Compare B Pwm = Clear Down ,   Prescale = 1                                              'konfiguracja Timer1 jako<br />       'generatora dwóch sygnałów PWM<br />       'na wyjściach OC1A i OC1B<br /><br />Dim I As Byte                                               'zmienna licznikowa dla pętli<br />       'For...Next<br />Do                                                          'początek nieskończonej pętli<br /> For I = 0 To 255                                           'pętla wykonywana 256 razy.<br />  Pwm1a = I                                                 'wpisanie do zmiennej Pwm1a<br />       'wartości I określającej<br />       'wypełnienie sygnału na<br />       'wyjściu OC1A<br />  Pwm1b = I                                                 'wpisanie do zmiennej Pwm1b<br />       'wartości I określającej<br />       'wypełnienie sygnału na<br />       'wyjściu OC1B<br />  Waitms 4                                                  'czekaj 4 ms<br /> Next I                                                     'zwiększ o 1 wartość zmiennej I<br /> For I = 255 To 0 Step -1                                   'pętla wykonywana 256 razy.<br />  Pwm1a = I                                                 'wpisanie do zmiennej Pwm1a<br />       'wartości I określającej<br />       'wypełnienie sygnału na<br />       'wyjściu OC1A<br />  Pwm1b = I                                                 'wpisanie do zmiennej Pwm1b<br />       'wartości I określającej<br />       'wypełnienie sygnału na<br />       'wyjściu OC1B<br />  Waitms 4                                                  'czekaj 4 ms<br /> Next I                                                     'zmniejsz o 1 wartość zmiennej I<br />Loop                                                        'koniec pętli nieskończonej<br />End[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2332">yaiba83</a> — 3 sty 2015, o 19:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-03T18:34:40+01:00</updated>
<published>2015-01-03T18:34:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112014#p112014</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112014#p112014"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=112014#p112014"><![CDATA[
Myślałem o tym żeby wszystko wrzucić do Timera1 ale nie wiem jakby to miało działać. Jak wtedy ustawić prescale. Nie do końca to rozumiem jakie znaczenie ma prescale w PWM. Timer 1 jest 16 bitowy czyli:<br /><br />mamy 65536 poziomów jasności , gdzie 65536 to jest 100 procent. Czyli zmniejszając PWM o 1 jasność zmaleje o 0,00152 ? Musiałbym odejmować po 10 000 ( można tak robić ? ). Czy ma tu jakieś znaczenie Prescale, które mam ustawione na 256 ponieważ używam tego do odliczenia 3 sekund w programie ( czy trzeba coś dzielić przez to prescale żeby obliczyć o ile rzeczywiście ściemni sie podświetlenie jeśli od PWM odejmę 1 ). <br /><br />Druga opcja to do odliczenia 3 sekund użyję Timera0 a do przyciemniania i rozjaśniania Timera1 albo Timera2, chociaż Tiemra2 nie używałem nigdy więc trochę się go boję bo nie wiem jak działa.<br /><br />Mam nadzieje że w miare zrozumiale napisałem o co mi chodzi. Dzięki za dotychczasową pomoc<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 3 sty 2015, o 18:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-03T16:43:13+01:00</updated>
<published>2015-01-03T16:43:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111993#p111993</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111993#p111993"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111993#p111993"><![CDATA[
<div class="quotetitle">atmel napisał(a):</div><div class="quotecontent"><br />Nadpisujesz tym samym wartość &quot;Pwm0a&quot; nową wartością 255. W efekcie &quot;Wypelnienie - 51&quot; nie daje żadnego efektu.<br /></div> tak rozumiem teraz, nie wiem po co to dodałem, już wgl nie myślę <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><div class="quotetitle">atmel napisał(a):</div><div class="quotecontent"><br />Tak jak już wcześniej pisałem - sterowanie rejestrem wejściowym jest bezcelowe (zapewne chodziło o &quot;Portb.2 = 0&quot;, ale w takim wypadku sterujesz jedynie pull-up'em, a nie stanem linii). Przecież PB2 to wejście wobec tego co taki zapis ma robić...?<br /></div><br /><br />Nie mam pojęcia co ja chciałem zrobić tak to jest, uczę się innego języka programowania, a na studiach mam teraz mikrokontrolery (Bascom / Arduino) w efekcie wszystko mi się tak myli i zapomina że to jest jakaś masakra <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><div class="quotetitle">atmel napisał(a):</div><div class="quotecontent"><br />Ponieważ nie jest zmieniana wartość zmiennej &quot;Wypelnienie&quot; to w efekcie uzyskasz dwa stopnie podświetlenia<br /></div> właśnie muszę to jakoś zrobić jeszcze żeby się zmieniała ta wartość, też to zauważyłem.<div class="quotetitle">atmel napisał(a):</div><div class="quotecontent"><br />Chcąc mieć płynną regulację można zapisać:<br /></div> dzięki za pomysł !<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 3 sty 2015, o 16:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2015-01-03T16:30:26+01:00</updated>
<published>2015-01-03T16:30:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111989#p111989</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111989#p111989"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111989#p111989"><![CDATA[
Już jest trochę lepiej, ale jeszcze nie do końca <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Za co są Twoim zdaniem odpowiedzialne te poniższe instrukcje?<br /><br />[syntax=basic4gl]Pwm0a = Wypelnienie<br />Pinb.2 = 0[/syntax]<br />Nadpisujesz tym samym wartość &quot;Pwm0a&quot; nową wartością 255. W efekcie &quot;Wypelnienie - 51&quot; nie daje żadnego efektu.<br />Tak jak już wcześniej pisałem - sterowanie rejestrem wejściowym jest bezcelowe (zapewne chodziło o &quot;Portb.2 = 0&quot;, ale w takim wypadku sterujesz jedynie pull-up'em, a nie stanem linii). Przecież PB2 to wejście wobec tego co taki zapis ma robić...?<br /><br />Moim zdaniem usuń te cztery linie (po dwie w obu warunkach).<br /><br />Ponieważ nie jest zmieniana wartość zmiennej &quot;Wypelnienie&quot; to w efekcie uzyskasz dwa stopnie podświetlenia. Chcąc mieć płynną regulację można zapisać:<br /><br />[syntax=basic4gl]Do<br />If Pinb.1 = 0 and Pwm0a &gt; 0 Then                                          'JAK NACISNE GUZIK KTORY SCIEMNIA PODSWIETLENIE TO<br />   Pwm0a = Pwm0a - 1<br />Elseif Pinb.2 = 0 and Pwm0a &lt; 254 Then                                          'JAK NACISNE GUZIK KTORY ROZJAŚNIA PODŚWIETLENIE TO<br />   Pwm0a = Pwm0a + 1<br />End If<br />Waitms 10<br />Loop<br />End[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 3 sty 2015, o 16:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-03T16:53:37+01:00</updated>
<published>2015-01-03T16:18:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111985#p111985</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111985#p111985"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111985#p111985"><![CDATA[
Sorka z tymi przyciskami - Output mi się pomyliło ... <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> <br /><div class="quotetitle">Niveasoft napisał(a):</div><div class="quotecontent"><br />Napisz czy to ma działać tylko na kartce i dla Mega8? Mega8 ma Compare dla Timer2<br /></div><br />Mam zmontować układ i podpiąć pod kompa AVR i mam pokazać jak działa dla Mega8. O tym Compare coś czytałem w Timerze1 ale o Timerze2 jeszcze nie słyszałem. Rozwiń proszę o co chodzi. <br /><br />Tutaj poprawiony kod:<br /><br />[syntax=basic4gl]$regfile = &quot;m8def.dat&quot;<br />$Crystal=4000000<br />$hwstack=40<br />$swstack=16<br />$framesize = 32<br /><br /><br />Config Portb.1 = Input                                      'guzik do ściemniania<br />Config Portb.2 = Input                                      'guzik do rozjaśniania<br /><br />Set Portb.1                                                  'podciągnięcie rezystorem<br />Set Portb.2<br /><br />Config Timer0 = Pwm , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1<br /><br /><br />Dim Wypelnienie As Byte<br /><br /><br />Wypelnienie = 255<br /><br />Do<br /><br /><br />If Pinb.1 = 0 Then                                          'JAK NACISNE GUZIK KTORY SCIEMNIA PODSWIETLENIE TO<br /><br />Pwm0a = Wypelnienie - 51                                    'odejmuje od 255 - 51<br />                                                     <br /><br />End If                                                  <br /><br /><br />If Pinb.2 = 0 Then                                          'JAK NACISNE GUZIK KTORY ROZJAŚNIA PODŚWIETLENIE TO<br /><br />Pwm0a = Wypelnienie + 51<br /><br />End If<br /><br /><br />Loop<br />End[/syntax]<br /><br />Tak by to miało wyglądać czy trzeba zrobić to ściemnianie rozjaśnianie jakoś za pomocą pętli ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 3 sty 2015, o 16:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2015-01-03T16:04:15+01:00</updated>
<published>2015-01-03T15:56:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111974#p111974</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111974#p111974"/>
<title type="html"><![CDATA[Re: Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111974#p111974"><![CDATA[
Z góry zaznaczę że nie używam BASCOM'a, ale z tego co mi się wydaje to:<br /><ul><li>&quot;PINB.0&quot; i &quot;PINB.1&quot; powinny być wejściami (Input)</li><li>Cały program powinien być zawarty w głównej pęli programu &quot;Do Loop&quot; (oczywiście poza instrukcjami inicjalizującymi tzn. wszystko po &quot;Wypelnienie = 255&quot;)</li><li>Przypisywanie czegokolwiek do wejścia jest co najmniej dziwne w tym wypadku (sterowanie wewnętrznym pull-up'em)...?</li><li>W tym programie &quot;Etykieta&quot; jest zbędna, ale też nie przeszkadza</li><li>Instrukcje &quot;If&quot; pozinny być zakończone &quot;End If&quot; (<!-- m --><a class="postlink" href="http://avrhelp.mcselec.com/index.html?if_then_else_end_if.htm" >http://avrhelp.mcselec.com/index.html?i ... end_if.htm</a><!-- m -->)</li></ul><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 3 sty 2015, o 15:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RideorDie]]></name></author>
<updated>2015-01-03T15:38:16+01:00</updated>
<published>2015-01-03T15:38:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111965#p111965</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111965#p111965"/>
<title type="html"><![CDATA[Sterowanie jasnością wyświetlacza]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10008&amp;p=111965#p111965"><![CDATA[
Witam, mam do napisania program który będzie używał 3 guzików jednym będzie się włączało podświetlenie na 3 sekundy drugim będzie się zmniejszało moc podświetlenia wyświetlacza a trzecim będzie się zwiększało moc podświetlenia wyświetlacza. <br /><br />Zrobiłem już raczej dobrze przy użyciu timera1 włączanie podświetlenia na 3 sekundy, problem został z tym ściemnianiem/rozjaśnianiem wyświetlacza. Nie wiem jak to zrobić żeby to działało. Nie mam AVR, żeby sobie testować i nie ukrywam też że nie interesowałem się za bardzo bascomem na zajęciach bardziej wciągnęło mnie arduino na innym przedmiocie dlatego proszę o wyrozumiałość. W dodatku póki co nie planuje przyszłości związanej z AVR.<br /><br />Napisałem taki program <br /><br /><a href="http://forum.atnel.pl/_obrazki/o/7568/4f2f6769802c104d0d73bcdd780b55c6.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/7568/4f2f6769802c104d0d73bcdd780b55c6.jpg" alt="Obrazek" /></a><br /><br />Wydaje mi się że jedyny problem w nim to taki że po przejściu programu ponownie będzie się nadpisywała wartość wypełnienia na 255 zadeklarowaną powyżej. Dlatego dodałem tam tekst ETYKIETA od której miałby zaczynać program po jednej pętli<br /><br />Nie wiem czy zrobiłem to dobrze czy powinno się użyć jakiejś może pętli ale nie wiem jak. Nie wiem też do końca jak w Bascomie się tworzy instrukcje IF kiedy jest koniec warunku bo nei ma tu klamerek ;p dlatego proszę o wyrozumiałość i podrzucenie pomysłu jak to zrobić dobrze.<br /><br />Mam jeszcze pytanie bo coś czytałem że nie można użyć 2x tego samego timera czy coś ? .. Którego Timera używać bo czytałem że w Timerze1 jest funkcja PWM a dzisiaj czytam że też taka funkcja jest w timerze0 i z niego skorzystałem. Przypomnę że użyłem już Timera1 do odmierzania 3 sekund podświetlenia. <br /><br />Przepraszam za chaotyczną wypowiedź ale serio nie wiem jak to zrobić, znalazłem przykład do ściemniania diody Led za pomocą pętli i Timera1 ale nie koniecznie umiem go sobie przerobić pod moje zadanie. <br />Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7568">RideorDie</a> — 3 sty 2015, o 15:38</p><hr />
]]></content>
</entry>
</feed>