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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2018-04-10T19:49:48+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=20575&amp;mode</id>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-10T19:49:48+01:00</updated>
<published>2018-04-10T19:49:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206695#p206695</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206695#p206695"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206695#p206695"><![CDATA[
Dziękuje.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 10 kwi 2018, o 19:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-10T16:22:35+01:00</updated>
<published>2018-04-10T16:22:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206693#p206693</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206693#p206693"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206693#p206693"><![CDATA[
Witam.A można tak jeśli chcę żeby różne procesy włączały się w różnym czasie?Pozdrawiam.<br />[syntax=c]if (2 == styk) {<br />Timer1 = 1000;<br />LED2_TOG;<br /><br />}<br />if (3 == styk) {<br />Timer1 = 2000;<br />LED3_TOG;<br /><br />}<br />if (4 == styk ) {<br />Timer1 = 3000;<br />LED4_TOG;<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 10 kwi 2018, o 16:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-09T21:41:09+01:00</updated>
<published>2018-04-09T21:41:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206678#p206678</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206678#p206678"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206678#p206678"><![CDATA[
[syntax=c]if (!Timer1) {<br /><br />Timer1 = 100;<br /><br />LED1_TOG;<br /><br />styk++;<br /><br />if (! (styk % 5)) {<br /><br />LED2_TOG;<br /><br />}<br /><br />}<br /><br />}<br /><br />}[/syntax]<br /><br />Coś takiego?.Co 5 operacji włącz LED2_TOG ?Czyli co 5 sek.Styk to nowa zmienna.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 9 kwi 2018, o 21:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[micky]]></name></author>
<updated>2018-04-09T20:33:12+01:00</updated>
<published>2018-04-09T20:33:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206671#p206671</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206671#p206671"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206671#p206671"><![CDATA[
Przecież nadpisujesz wartość Timer1 to jak chcesz ją w taki sposób używać? Podpowiem-zainteresuj się modulo...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1546">micky</a> — 9 kwi 2018, o 20:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-09T20:20:11+01:00</updated>
<published>2018-04-09T20:20:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206669#p206669</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206669#p206669"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206669#p206669"><![CDATA[
Ten kod co napisałeś rozumiem i ćwiczyłem Timer1,Timer2.Chodzi o to że teraz za pomocą jednego Timera1 wykonywać wielozadaniowość.Czy tak można czy nie rozumiem?Dziękuje za cierpliwość.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 7 minutach ]</span></strong><br /><br />Bo tak to na pewno nie.<br /><br /><br /><br />[syntax=c]while (1) {<br /><br />if (!Timer1) {<br /><br />Timer1 = 10;<br />LED1_TOG;<br /><br />}<br />if (!Timer1) {<br /><br />Timer1 = 100;<br />LED2_TOG;<br /><br />}<br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 9 kwi 2018, o 20:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-04-09T20:03:12+01:00</updated>
<published>2018-04-09T20:03:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206666#p206666</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206666#p206666"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206666#p206666"><![CDATA[
<div class="quotetitle">wrctomi napisał(a):</div><div class="quotecontent"><br />To tu mrugnie co 250 ms a jeśli tak to co z LED1_TOG itd.Jak to napisać.<br /></div><br />eeeh czyli albo nie zajrzałeś do BB albo ja nie rozumiem twojego pytania kompletnie - bo jakoś tak dziwnie jakby zadane ... na drugi raz poproszę wyraźnie przedstawić pytanie ok?<br /><br />tym razem próbuję zgadnąć a zwykle nie biorę udziału w zgadywankach<br /><br />[syntax=c]while(1) {<br /> <br />       if( !Timer2 )  {<br />            LED2_TOG;<br />            Timer2=25;  // tu migasz doidą LED2 co 250ms<br />       }       <br /><br />       if( !Timer1 )  {<br />            LED1_TOG;<br />            Timer1=10;  // a tu migasz diodą LED1 co 100ms<br />       }    <br /><br />    }[/syntax]<br /><br />w czym problem ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 kwi 2018, o 20:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-09T18:44:09+01:00</updated>
<published>2018-04-09T18:44:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206660#p206660</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206660#p206660"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206660#p206660"><![CDATA[
Wiem jak  ustawić Timer 0,1,2    8 czy 10 bits i mrugać pojedyńczą diodą led . Ale już jak mam sterować całym portem i każdy pin ma wysyłać sygnał w innym czasie to już się motam.I jeszcze jedno nie wiem co pisać w wektorze przerwania.Podam przykład czy dobrze rozumiem.<br /> <br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /> <br />#define LED1_TOG  PORTB^=(1&lt;&lt;PB0)<br />#define LED2_TOG  PORTB^=(1&lt;&lt;PB1) <br />itd.<br /><br />volatile uint16_t Timer2;<br /><br /><br />/* Timer2 – inicjalizacja przerwania co 10ms */<br />TCCR2 |= (1&lt;&lt;WGM21);// tryb pracy CTC<br />TCCR2 |= (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);// preskaler = 1024<br />OCR2 = 107;// przerwanie porównania co 10ms (100Hz)<br />TIMSK |= (1&lt;&lt;OCIE2);// Odblokowanie przerwania CompareMatch  <br /><br />DDRB=0xff;<br /><br />  sei();<br /><br />while(1) {<br /><br />if(!Timer2) {<br /> Timer2=25;<br /> LED2_TOG;<br />       }<br />    }<br />}<br /><br /><br /><br />ISR(TIMER2_COMP_vect)<br />{<br />uint16_t n;<br /><br />n = Timer2;/* 100Hz Timer2 */<br />if (n) Timer2 = --n;<br /><br /><br />}[/syntax]<br /><br />To tu mrugnie co 250 ms a jeśli tak to co z LED1_TOG itd.Jak to napisać.Z góry dziękuje Mirku.I cieplutko pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 9 kwi 2018, o 18:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-04-09T16:39:55+01:00</updated>
<published>2018-04-09T16:39:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206659#p206659</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206659#p206659"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206659#p206659"><![CDATA[
<div class="quotetitle">wrctomi napisał(a):</div><div class="quotecontent"><br />W poradniku miałeś powiedzieć dlaczego nie można stosować wielu Timer1,Timer2 itd.<br /></div><br />i w zamian za to postanowiłeś stosować delaye z modulo ? .... no to hmmm troszkę albo nawet nieco bardziej kolega popłynął ... a szczerze mówiąc to coś tragicznie opacznie zrozumiał ... i to totalnie opacznie<br /><br />Gdzie ja mówiłem że nie można stosować wielu timerów ? A jeśli użyłem słowa &quot;wielu&quot; to jak ty rozumiesz to słowo w tym konkretnym kontekście? Że wielu to oznacza więcej niż JEDEN ? więcej niż DWA ? ... jeśli tak to zrozumiałeś to jeszcze raz powtarzam - jesteś jak na razie jedną osobą która tak zrozumiała i nie piszę tego aby ci dogryźć tylko żeby szybko sprowadzić cię na prawidłowe tory ... <br /><br />otóż gdy użyłem słowa &quot;wielu&quot; miałem na myśli CO NAJMNIEJ - kilkanaście <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> albo np więcej niż osiem ... a tak na prawdę zastosowanie ich nawet w liczbie 20 też dałoby radę i działałoby poprawnie ....<br /><br />Tyle, że po tym kodzie który napisałeś wyżej obawiam się niestety, że na tym etapie (być może się mylę to mnie wyprowadź z błędu) w ogóle jakby nie rozumiesz jeszcze idei działania tych timerów programowych i stąd masz to mega zamieszanie<br /><br />dlatego polecam ci zamiast pisać na razie jakiegoś swojego programu w którym przeplatasz wg mnie pojęcia typu &quot;flaga&quot; z &quot;timerem&quot; programowym ... to weź odłóż to na bok i wypróbuj na jakiejś stykówce czy byle zestawie z kilkoma diodami LED z jakimś wyświetlaczem, z jakimś RS232 - działanie tychże timerów programowych z Bluebooka - żebyś zaskoczył o co chodzi w ogóle .... bo namieszałeś sobie OKRUTNIE mówię ci<br /><br />Powiem więcej - w trakcie takich ćwiczeń (które warto robić do bólu aż się zrozumie) ... gdyby coś było nie tak, gdyby coś sprawiało ci problem to wtedy ŚMIAŁO TU pytaj - ja chętnie pomogę<br /><br />i odstaw na tą chwilę w ogóle modulo ok ? i tą metodę ... w ogóle zapomnij o niej na tą chwilę w aspekcie timerów programowych<br /><br />ale PRZEDE WSZYSTKIM weź w łapki - rozdział o projekcie wielozadaniowym, odpal go - modyfikuj we własnym zakresie, coś dodaj, coś odejmij - zrozum jak on działa ok?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 kwi 2018, o 16:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-09T15:50:41+01:00</updated>
<published>2018-04-09T15:50:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206658#p206658</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206658#p206658"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206658#p206658"><![CDATA[
Uczę się również z książki Mirku.W poradniku miałeś powiedzieć dlaczego nie można stosować wielu Timer1,Timer2 itd.To w końcu czym różni się  <br /> [syntax=c]if(200==(styk)){<br />                LED5_TOG ;<br />        }[/syntax]<br />od<br /> [syntax=c]if(200==(styk % 600)){<br />                LED5_TOG ;<br />        }[/syntax]<br /><br />  Pozdrawiam .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 9 kwi 2018, o 15:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2018-04-09T15:31:58+01:00</updated>
<published>2018-04-09T15:31:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206656#p206656</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206656#p206656"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206656#p206656"><![CDATA[
Patrząc na ten kod polecam ci jednak rozpoczęcie nauki C dla mikrokontrolerów od Bluebooka<br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />ponieważ to co pokazałeś jest niestety pomieszaniem z poplątaniem ... proponuję uciekaj jak najszybciej od takich karkołomnych sposobów bo nie dość i tak i tak utkniesz w końcu w ślepej uliczce to jeszcze stracisz kupę czasu a później - i tak od nowa będziesz musiał się nauczyć jak należy podchodzić do timerów programowych. Niestety tak to jest gdy próbuje się uczyć C tylko na przykładzie poradników - które (jak zawsze powtarzam) są jedynie uzupełnieniem do moich książek ... a tu widać - że niestety kompletnie na razie jakby podstaw jeszcze nie znasz. Więc nie da się moim zdaniem pomóc na zasadzie &quot;zmień w swoim kodzie linijkę X na Y i do tego linijkę Z na V - a program zacznie ci działać. Tu trzeba diametralnie wszystko wywalić i od nowa zacząć .... chociażby na przykładzie rozdziału o projekcie wielozadaniowym z Bluebooka.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 kwi 2018, o 15:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-09T15:26:31+01:00</updated>
<published>2018-04-09T15:26:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206655#p206655</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206655#p206655"/>
<title type="html"><![CDATA[Re: Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206655#p206655"><![CDATA[
Cały kod wygląda tak &gt;&gt;<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br /><br /><br />#define LED1_TOG  PORTB^=(1&lt;&lt;PB0)<br />#define LED2_TOG  PORTB^=(1&lt;&lt;PB1)<br />#define LED3_TOG  PORTB^=(1&lt;&lt;PB2)<br />#define LED4_TOG  PORTB^=(1&lt;&lt;PB3)<br />#define LED5_TOG  PORTB^=(1&lt;&lt;PB4)<br />#define LED6_TOG  PORTB^=(1&lt;&lt;PB5)<br />#define LED7_TOG  PORTB^=(1&lt;&lt;PB6)<br />#define LED8_TOG  PORTB^=(1&lt;&lt;PB7)<br /><br /><br /><br />void ms_delay_ms(uint16_t ms);<br /><br />uint16_t styk;<br />uint16_t Timer1,Timer2;<br /><br /><br /><br />int main(void) {<br /><br />DDRB = 0xff;<br /><br /><br />while (1) {<br /><br /><br />if(0==(styk)){<br />LED3_TOG ;<br />}<br />if(100==(styk)){<br />LED4_TOG ;<br />}<br />if(200==(styk)){<br />LED5_TOG ;<br />}<br />if(300==(styk)){<br />LED6_TOG ;<br />}<br />if(400==(styk)){<br />LED7_TOG ;<br />}<br />if(500==(styk)){<br />LED8_TOG ;<br />}<br /><br />if (!Timer1) {<br /><br />LED1_TOG;<br />Timer1 = 700;<br /><br />}<br />if (!Timer2) {<br /><br />LED2_TOG;<br />Timer2 = 200;<br />}<br /><br />ms_delay_ms(1);<br />}<br />}<br /><br /><br />void ms_delay_ms(uint16_t ms) {<br /><br />uint16_t a;<br /><br />while (ms--) {<br />       _delay_ms(1);<br /><br />styk++;<br /><br /><br />        if (styk &gt; 499) {<br />styk = 0;<br />}<br /><br />a = Timer1;<br />        if (a)Timer1--;<br /><br />a = Timer2;<br />if (a)Timer2--;<br /><br />      }<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 9 kwi 2018, o 15:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2018-04-09T10:40:28+01:00</updated>
<published>2018-04-09T10:40:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206646#p206646</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206646#p206646"/>
<title type="html"><![CDATA[Modulo i wielozadaniowość]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=20575&amp;p=206646#p206646"><![CDATA[
Witam ma pytanie odnośnie poradnika MODULO i wielozadaniowość.<br /><br />[syntax=c]while (1) {<br />      <br />        if(000==(styk % 600 ) ){<br />LED3_TOG ;<br />}<br />if(100==(styk % 600)){<br />LED4_TOG ;<br />}[/syntax]<br />Jeśli  zmienna styk zlicza cały czas od 0-599 bo później jest zerowana to jeśli zrobię to tak jak poniżej.To jest dobrze?.Bo działa  tak samo jak z modulo?<br />       [syntax=c]if(000==(styk ) ){<br />LED3_TOG ;<br />}<br />if(100==(styk)){<br />LED4_TOG ;<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 25 minutach ]</span></strong><br /><br />I dlaczego nie można np.kilka zmiennych Timer.  <br /> [syntax=c]if (!Timer1) {<br />  LED1_TOG;<br />  Timer1=1000 ;<br />}[/syntax]<br />Timer2,Timer3,Timer4 itd.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 9 kwi 2018, o 10:40</p><hr />
]]></content>
</entry>
</feed>