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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-20T21:56:06+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5218&amp;mode</id>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2013-12-20T21:56:06+01:00</updated>
<published>2013-12-20T21:56:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61923#p61923</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61923#p61923"/>
<title type="html"><![CDATA[Re: Proszę o pomoc]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61923#p61923"><![CDATA[
<div class="quotetitle">pk.gorny napisał(a):</div><div class="quotecontent"><br />Pytanie jak to rozbudować taką instrukcję aby były to 2 albo więcej diod nie zmieniających stan ale układających się w sekwencje<br /></div><br />Możesz dodać jakieś m i na nim się bawić, np.:<br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br /> <br />uint_8 m;<br />int main (void)<br /><br />{<br /><br />DDRB = 0xFF ; <br />TCCR1B |=  (1 &lt;&lt; CS10) | (1 &lt;&lt; CS11)); <br /><br /> while(1)<br /><br />{<br /><br /> <br />  if (TCNT1 &gt;= 15625)<br /><br />{<br /><br />PORTB = m; <br />m++;<br />TCNT1 = 0; <br /><br />}<br /><br />}<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 20 gru 2013, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-12-20T21:48:40+01:00</updated>
<published>2013-12-20T21:48:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61922#p61922</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61922#p61922"/>
<title type="html"><![CDATA[Re: Proszę o pomoc]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61922#p61922"><![CDATA[
A spróbuj może w Bluebooku dojść do rozdziału - &quot;Wstęp do systemów czasu rzeczywistego&quot; i zobacz co to za zwięrzę &quot;timer programowy&quot; ... bo tu się kryje to czego szukasz ...<br /><br />nawet w moich poradnikach video później spotkasz porady jak z tego korzystać - choćby w ostatnim z serii o ADC, ale także w wielu przykładach innych kolegów na tym forum<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 gru 2013, o 21:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pk.gorny]]></name></author>
<updated>2013-12-20T20:34:00+01:00</updated>
<published>2013-12-20T20:34:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61919#p61919</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61919#p61919"/>
<title type="html"><![CDATA[Re: Proszę o pomoc]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61919#p61919"><![CDATA[
Dzięki wielkie za wyczerpujące wypowiedzi <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  - wiem ze się da i że powinienem migać timerem<br />Uczę się powoli z bluebook-iem! <br /><br />Moja nauka programowania polega na wykonywaniu przykładów nie tylko tych książkowych ale i rozbudowanych &quot;o własne pomysły&quot;  tak jak pisałem wcześniej zrobiłem przełączenie diod w różne sekwencje za pomocą _delay_ms(  ), kolejnym etapem nauki jest poznanie timer-ów i zrobienie takich sekwencji przy ich wykorzystaniu.  <br />Wiec umiem już przełączać/migać diodą z żądaną częstotliwością z użyciem preskalera. <br />[syntax=c]#include &lt;avr/io.h&gt;<br /><br />int main (void)<br />{<br />DDRB |= (1 &lt;&lt; PB0); <br />TCCR1B |= ((1 &lt;&lt; CS10) | (1 &lt;&lt; CS11)); <br /><br />while(1)<br />{<br /><br /><br />if (TCNT1 &gt;= 15625)<br />{<br />PORTB ^= (1 &lt;&lt; PB0); <br />TCNT1 = 0; <br />}<br />}<br />}[/syntax]<br /> <br />Pytanie jak to rozbudować taką instrukcję aby były to 2 albo więcej diod nie zmieniających stan ale układających się w sekwencje  - może mój tok myślenia jest niewłaściwy proszę o naprowadzenie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2235">pk.gorny</a> — 20 gru 2013, o 20:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MirkoT]]></name></author>
<updated>2013-12-20T10:10:51+01:00</updated>
<published>2013-12-20T10:10:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61853#p61853</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61853#p61853"/>
<title type="html"><![CDATA[Re: Proszę o pomoc]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61853#p61853"><![CDATA[
<div class="quotetitle">pk.gorny napisał(a):</div><div class="quotecontent"><br />I teraz pytanie do was : <br /><br />czy zamiast _delay_ms(czas) można użyć timera<br />oraz w jaki sposób można regulować czas  na zasadzie szybciej wolniej np. 10 sekwencji za pomocą kolejnych 2 przycisków.<br /><br />Bardzo proszę o podpowiedz. <br />( procesor do którego ładuje ten program to ATMEGA32A, programuje w środowisku Eclipse)<br /></div><br />Nie tylko się da. Nawet powinno się to zrobić! ;-_<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=189">MirkoT</a> — 20 gru 2013, o 10:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2013-12-20T02:00:31+01:00</updated>
<published>2013-12-20T02:00:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61840#p61840</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61840#p61840"/>
<title type="html"><![CDATA[Re: Proszę o pomoc]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61840#p61840"><![CDATA[
Poczytaj na forum i zobacz mirka prodniki a zobaczysz ze sie da.  Ba nawet sie dowiesz jak <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  <br /><br />Masz bluebuka?<br /><br />Wysłane z telefonu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 20 gru 2013, o 02:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pk.gorny]]></name></author>
<updated>2013-12-20T01:08:48+01:00</updated>
<published>2013-12-20T01:08:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61839#p61839</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61839#p61839"/>
<title type="html"><![CDATA[Proszę o pomoc]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5218&amp;p=61839#p61839"><![CDATA[
Witam, forumowiczów <br />na początku chce zaznaczyć ze dopiero zaczynam raczkować jeśli chodzi o c i avr-y <br />natomiast mam taki problem<br />nauczyłem się za pomocą delay_ms (czas) zapalać i gasić np diody.<br />wiec zakładam ze mam instrukcję <br />np: <br />zapal diodę 1, przerwa (czas x) zgaś diodę 1, przeraw (czas x)<br />zapal diodę 2, przerwa (czas x) zgaś diodę 2, przeraw (czas x)<br />...<br />zapal diodę 8, przerwa (czas x) zgaś diodę 8, przeraw (czas x)<br /> to w pętli nieskończonej  (działa <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> ) <br /><br />krok następny:<br />za pomocą przycisku zmieniam sekwencje <br />np ja w przykładzie wyżej <br />a kolejna sekwencja zapala co 2 diodę itd, co się wymyśli <br /><br />znalazłem na forum podpowiedz i powstał kod: <br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;HD44780.h&quot;<br /><br />#define KEY_PIN (1&lt;&lt;PC7)<br />#define KEY_DOWN !(PINC &amp; KEY_PIN)<br />#define KEY_PIN2 (1&lt;&lt;PC6)<br />#define KEY_UP !(PINC &amp; KEY_PIN2)<br />#define KEY_PIN3 (1&lt;&lt;PC5)<br />#define KEY_SZYBCIEJ !(PINC &amp; KEY_PIN3)<br />#define KEY_PIN4 (1&lt;&lt;PC4)<br />#define KEY_WOLNIEJ !(PINC &amp; KEY_PIN4)<br /><br />    //##############################################################################<br /><br />int main (void)<br />{<br />LCD_Initalize();   //inicjalizacja LCD<br />      LCD_GoTo(0, 0);      //Ustawienie kursora w pozycji (0,0)<br />      LCD_WriteText(&quot;NACISNIJ &lt; LUB &gt;&quot;);<br />      LCD_GoTo(0, 1);      //Ustawienie kursora w pozycji (0,0)<br />      LCD_WriteText(&quot;ABY ZMIENIC PROG&quot;);<br />     _delay_ms(6000);<br /><br />DDRC &amp;= ~KEY_PIN;<br />PORTC |= KEY_PIN;<br />DDRC &amp;= ~KEY_PIN2;<br />PORTC |= KEY_PIN2;<br />DDRB |= (1&lt;&lt;PB3);<br />DDRB |= (1&lt;&lt;PB2);<br />DDRB |= (1&lt;&lt;PB1);<br />DDRB |= (1&lt;&lt;PB0);<br /><br /><br />char stan=0;<br />int czas=300;<br /><br />while (1)<br /><br /><br />{<br />     if( KEY_DOWN )<br />      {<br /> stan++;<br /><br />if (stan&gt;3) stan=0;<br />       }<br /><br />if( KEY_UP )<br />           {<br />      stan--;<br /><br />if (stan&gt;3) stan=0;<br /><br />            }<br /><br /><br /><br /> if (stan==0)<br />      {<br />      LCD_Initalize();   //inicjalizacja LCD<br />      LCD_GoTo(0, 0);      //Ustawienie kursora w pozycji (0,0)<br />      LCD_WriteText(&quot;PROGRAM 1&quot;);<br />    PORTB |= (1&lt;&lt;PB0);<br />    _delay_ms(czas);<br />    PORTB &amp;= ~(1&lt;&lt;PB0);<br />     _delay_ms(czas);<br /><br /><br />      }<br /><br />else if (stan==1)<br />      {<br /> LCD_Initalize();   //inicjalizacja LCD<br /> LCD_GoTo(0, 0);      //Ustawienie kursora w pozycji (0,0)<br /> LCD_WriteText(&quot;PROGRAM 2&quot;);<br />    PORTB |= (1&lt;&lt;PB1);<br />    _delay_ms(czas);<br />    PORTB &amp;= ~(1&lt;&lt;PB1);<br />     _delay_ms(czas);<br /><br /><br />      }<br /><br />else if (stan==2)<br />      {<br /> LCD_Initalize();   //inicjalizacja LCD<br /> LCD_GoTo(0, 0);      //Ustawienie kursora w pozycji (0,0)<br /> LCD_WriteText(&quot;PROGRAM 3&quot;);<br />    PORTB |= (1&lt;&lt;PB2);<br />    _delay_ms(czas);<br />    PORTB &amp;= ~(1&lt;&lt;PB2);<br />     _delay_ms(czas);<br />      }<br /><br />else if (stan==3)<br />          {<br /> LCD_Initalize();   //inicjalizacja LCD<br /> LCD_GoTo(0, 0);      //Ustawienie kursora w pozycji (0,0)<br /> LCD_WriteText(&quot;PROGRAM 4&quot;);<br />        PORTB |= (1&lt;&lt;PB3);<br />        _delay_ms(czas);<br />        PORTB &amp;= ~(1&lt;&lt;PB3);<br />         _delay_ms(czas);<br />          }<br /><br />  }<br />}[/syntax]<br /><br />Wszystko działa są 4 tryby pracy ( przepraszam nie zamieściłem całych sekwencji bo nie są one tak istotne, tylko migającą diodę )<br /><br /><br />I teraz pytanie do was : <br /><br />czy zamiast _delay_ms(czas) można użyć timera<br />oraz w jaki sposób można regulować czas  na zasadzie szybciej wolniej np. 10 sekwencji za pomocą kolejnych 2 przycisków.<br /><br />Bardzo proszę o podpowiedz. <br /><br /><br /><br />( procesor do którego ładuje ten program to ATMEGA32A, programuje w środowisku Eclipse)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2235">pk.gorny</a> — 20 gru 2013, o 01:08</p><hr />
]]></content>
</entry>
</feed>