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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-03-16T11:46:03+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=10993&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-03-16T11:46:03+01:00</updated>
<published>2015-03-16T11:46:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123596#p123596</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123596#p123596"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123596#p123596"><![CDATA[
<div class="quotetitle">Kpieczyrak napisał(a):</div><div class="quotecontent"><br />Witam mam proźbę jak napisać programik na attiny2313 lub jakiś m8 taki żeby wyświetlał 3 cyfry od 0 do 9 (123)<br /></div><br />Zacząć się uczyć po kolei od migania pojedynczą diodą LED, wziąć w łapki książkę<br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 16 mar 2015, o 11:46</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[majster]]></name></author>
<updated>2015-03-16T11:29:12+01:00</updated>
<published>2015-03-16T11:29:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123594#p123594</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123594#p123594"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123594#p123594"><![CDATA[
<div class="quotetitle">Kpieczyrak napisał(a):</div><div class="quotecontent"><br />Witam mam proźbę jak napisać programik na attiny2313 lub jakiś m8 taki żeby wyświetlał 3 cyfry od 0 do 9 (123) i jednym przyciskiem je zmieniać o jedną cyfre w górę i drugim przyciskiem o jeden w dół.<br />Albo każda cyfra żeby miała swój przycisk w jedną stronę.<br />Przydało by się jakieś podtrzymanie w przypadku braku zasilania i po ponownym uruchomieniu wyświetlał to samo co było przed zanikiem prądu.<br />Jestem początkującym w programowaniu.<br />Proszę o pomoc.<br /></div><br /><br />Kolego wydaje mi się że twoje pytanie nie ma nic do tego tematu. By nie było sajgonu wypadało by założyć nowy temat. Nawet na forum jak użyjesz opcji szukaj to znajdziesz coś podobnego to twojej koncepcji nie mniej napisz pytanie w nowym temacie by nie miksować 2 tematów w 1.<br /><br />Namazane ze smarta.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1628">majster</a> — 16 mar 2015, o 11:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2015-03-16T10:32:24+01:00</updated>
<published>2015-03-16T10:32:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123592#p123592</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123592#p123592"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123592#p123592"><![CDATA[
A masz niebieską książeczkę? Tam to wszystko jest jak na dłoni i dał byś z nią radę bez problemów.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 16 mar 2015, o 10:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Kpieczyrak]]></name></author>
<updated>2015-03-16T09:21:49+01:00</updated>
<published>2015-03-16T09:21:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123588#p123588</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123588#p123588"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=123588#p123588"><![CDATA[
Witam mam proźbę jak napisać programik na attiny2313 lub jakiś m8 taki żeby wyświetlał 3 cyfry od 0 do 9 (123) i jednym przyciskiem je zmieniać o jedną cyfre w górę i drugim przyciskiem o jeden w dół.<br />Albo każda cyfra żeby miała swój przycisk w jedną stronę.<br />Przydało by się jakieś podtrzymanie w przypadku braku zasilania i po ponownym uruchomieniu wyświetlał to samo co było przed zanikiem prądu.<br />Jestem początkującym w programowaniu.<br />Proszę o pomoc.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2687">Kpieczyrak</a> — 16 mar 2015, o 09:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2015-03-10T20:58:55+01:00</updated>
<published>2015-03-10T20:58:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122975#p122975</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122975#p122975"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122975#p122975"><![CDATA[
Przerwania są naprawdę fajne i łatwe w użyciu (zwłaszcza zwykłe cykliczne taktowanie) tylko podstawowy warunek to nie trzeba ich się bać <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Kiedy zaczynałem z uC też myślałem, że wszystko napiszę bez przerwań - częściowo się da, ale z przerwaniami jest o wieeeeele prościej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 10 mar 2015, o 20:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[inde7]]></name></author>
<updated>2015-03-10T19:55:14+01:00</updated>
<published>2015-03-10T19:55:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122963#p122963</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122963#p122963"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122963#p122963"><![CDATA[
leonos2000 niestety kod nie działa ale dzięki za chęci <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> Musze się zaopatrzyć w blue booka :p SylwekK dobry pomysł z przerwaniami, niedługo wezme się za ich naukę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7295">inde7</a> — 10 mar 2015, o 19:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2015-03-10T09:42:59+01:00</updated>
<published>2015-03-10T09:42:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122886#p122886</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122886#p122886"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122886#p122886"><![CDATA[
Dodam tylko, że w takich rozwiązaniach wypadałoby jednak zatrudnić przerwania i na dodatkowym liczniku zrobić zerowanie licznika wciśnięć. Dało by to konkretny czas na wciśnięcie guzika pięcrazy czyli np. 10s, a po tym czasie znowu trzeba by zacząc wciskać od początku.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 10 mar 2015, o 09:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[leonos2000]]></name></author>
<updated>2015-03-09T23:13:16+01:00</updated>
<published>2015-03-09T23:13:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122852#p122852</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122852#p122852"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122852#p122852"><![CDATA[
Taki kod powinien działać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> :<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;stdbool.h&gt;<br /><br />#define LED (1&lt;&lt;PB1)<br />#define KEY (1&lt;&lt;PC5)<br />#define LED_ON PORTB |= LED //zakładam, że led jest włączany przez stan wysoki<br />#define LED_OFF PORTB &amp;= ~LED//a wyłącza przez stan niski<br /><br />uint8_t key_count=0;//zmienna przechowująca liczbę przyciśnięć<br />bool IsON=false;//zmienna przechowująca wartość czy włączony jest e-papieros czy nie 0=wyłąćzony 1=włąćzony<br /><br />void funkcja_do_wywolania(void){//funkcja do wywołania :p<br /><br />}<br /><br />int main(void) {//główna funkcja programu<br /><br />PORTC |= KEY;  // podciągamy linie klawiszy do VCC<br />DDRB |= LED; // pin leda jako wyjście<br /><br />while(1) {//nieskończona pętla<br />if(!(PINC &amp; KEY)){//czy klawisz wciśnięty...<br />if(IsON==1)LED_ON;//zapalam led, ale tylko gdy jest włączony e-papieros<br />_delay_ms(300);//bardzo prosty debouncing, po prostu przeczekuję czas drgań styków i puszczenia przycisku<br />key_count++;//inkrementuję zmienną<br />if(IsON==1)LED_OFF;//gaszę led, ale tylko gdy jest włączony e-papieros<br />}<br />if(key_count==5){<br />funkcja_do_wywolania();//jeżeli przycisk został kliknięty 5 razy wywołuję funkcję<br />key_count=0;//zeruję zmienną aby po wyjściu z funkcji dalej działało<br />IsON=~IsON;//zmieniam wartość zmiennej jeżeli było 0 to 1, a jak 1 to 0<br />}<br />}<br />}[/syntax]<br />Ogólnie do nauki C na AVR polecam: <a href="http://sklep.atnel.pl/pl/p/Mikrokontrolery-AVR-Jezyk-C-podstawy-programowania-PL-Ksiazka-DVD/75"  class="postlink">http://sklep.atnel.pl/pl/p/Mikrokontrolery-AVR-Jezyk-C-podstawy-programowania-PL-Ksiazka-DVD/75</a> nigdzie nie da się tak dobrze nauczyć jak z książki, szczególnie tak dobrej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4851">leonos2000</a> — 9 mar 2015, o 23:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[inde7]]></name></author>
<updated>2015-03-09T22:19:53+01:00</updated>
<published>2015-03-09T22:19:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122839#p122839</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122839#p122839"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122839#p122839"><![CDATA[
Dzięki leonos2000 za pomoc, działa idealnie. J23 przyjme to sobie do serca i zastosuje w nauce jak i w swoich kodach. Ale teraz mam nowe pytanie, jak zrobić tak aby gdy się klika 5 razy to się włącza, 5 razy to wyłącza, ale gdy jest na włączonym to trzeba trzymać i wtedy dioda świeci. Dokładny mechanizm taki jak w epapierosie. Może dziwny przykład ale ostatnio coś takiego widziałem i stwierdziłem ze moge się na tym przykładzie zacząć uczyć :p<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7295">inde7</a> — 9 mar 2015, o 22:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[j23]]></name></author>
<updated>2015-03-09T22:13:54+01:00</updated>
<published>2015-03-09T22:13:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122838#p122838</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122838#p122838"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122838#p122838"><![CDATA[
<div class="quotetitle">inde7 napisał(a):</div><div class="quotecontent"><br />(...)<br /></div>Cześć!<br />Ja jeszcze tylko dodam, że jeżeli chcesz lekko przyspieszyć naukę w C, to staraj się w praktyce stosować zasadę &quot;dziel i rządź&quot;. O co chodzi w tym przypadku? Dzielisz to co jest wewnątrz funkcji while na pomniejsze fragmenty, tzn. dzielisz główny (duży) algorytm w while (lub w całej funkcji main) na mniejsze algorytmy i pakujesz te małe algorytmy w funkcje (części poprzednio dużego algorytmu), a potem wywołujesz je po kolei w main, np.<br /><br />[syntax=c]// załączenie plików nagłówkowych<br />#include &lt;stdio.h&gt;<br />#include &lt;avr/io.h&gt;<br /><br />// deklaracje funkcji<br />void algorytm_nr1(void);<br />void algorytm_nr2(void);<br />void algorytm_nr3(void);<br /><br />// główna funkcja main<br />int main(void)<br />{<br />// zastosowanie funkcji z algorytmem złożonym z trzech pomniejszych algorytmów<br />algorytm_nr1();<br />algorytm_nr2();<br />algorytm_nr3();<br />}<br /><br />// deklaracje funkcji<br />void algorytm_nr1(void)<br />{<br />// realizacja algorytmu nr 1<br />}<br /><br />void algorytm_nr2(void)<br />{<br />// realizacja algorytmu nr 2<br />}<br /><br />void algorytm_nr3(void)<br />{<br />// realizacja algorytmu nr 3<br />}[/syntax]<br /><br />Efekt jest taki, że jak coś nie działa jak trzeba i musisz przeanalizować kod, to kod o wiele bardziej uporządkowany i szybciej znajdziesz błąd. Oczywiście nic nie szkodzi na przeszkodzie, żeby potem (kiedy nabierzesz wprawy w programowaniu) znowu pisać wszystko w jednym miejscu (bo np. kod będzie się wtedy wykonywał szybciej, albo będzie Ci zależało na objętości programu).<br /><br />Pozdrawiam! j23 Jarek<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4504">j23</a> — 9 mar 2015, o 22:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[leonos2000]]></name></author>
<updated>2015-03-09T21:48:12+01:00</updated>
<published>2015-03-09T21:48:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122836#p122836</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122836#p122836"/>
<title type="html"><![CDATA[Re: Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122836#p122836"><![CDATA[
Pozdrawiam <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />    #include &lt;util/delay.h&gt;<br /><br />    #define LED (1&lt;&lt;PB1)<br />    #define KEY1 (1&lt;&lt;PC5)<br />    #define BUZ (1&lt;&lt;PB0)<br /><br />    uint8_t key_lock=0;<br /><br />    void funkcja_do_wywolania(void){<br /><br />    }<br /><br />    int main(void) {<br /><br />             PORTC |= KEY1;  // podciągamy linie klawiszy do VCC<br />             DDRB |= LED; // pin jako WYjście<br />             DDRB |= BUZ;<br /><br />     while(1) {//nieskończona pętla<br />     if(!(PINC &amp; KEY1)){//czy klawisz wciśnięty...<br />     key_lock++;//inkrementuję zmienną<br />     _delay_ms(300);//bardzo prosty debouncing, poprostu przeczekuję czas drgań styków i puszczenia przycisku<br />     }<br />     if(key_lock==5){<br />     funkcja_do_wywolania();//jeżeli przycisk został kliknięty 5 razy wywołuję funkcję<br />     key_lock=0;//zeruję zmienną aby po wyjściu z funkcji dalej działało<br />     PORTB ^= LED;<br />     PORTB ^= BUZ;<br />     }<br />    }<br />   }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4851">leonos2000</a> — 9 mar 2015, o 21:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[inde7]]></name></author>
<updated>2015-03-09T21:36:16+01:00</updated>
<published>2015-03-09T21:36:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122834#p122834</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122834#p122834"/>
<title type="html"><![CDATA[Prosba o pomoc w napisaniu prostego programu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10993&amp;p=122834#p122834"><![CDATA[
Witam. Jestem początkującym w AVRkach i w samym języku C. Chciałbym prosić o pomoc w napisaniu prostego programu, który przybliżył by mi troche ten język oraz ułatwił znacząco nauke. Chodzi dokładnie o to aby program wykonywał daną funkcje gdy przycisk zostanie kliknięty 5 razy (Coś jak w zabezpieczeniach od epapierosów). Wstawiam tutaj moje wypociny, ale dużo tutaj tego nie ma i raczej na nic się nie zdadzą. Z góry dziękuje za chęci <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define LED (1&lt;&lt;PB1)<br />#define KEY1 (1&lt;&lt;PC5)<br />#define BUZ (1&lt;&lt;PB0)<br /><br />uint8_t key_lock;<br /><br />//**************** ZWOLNIENIE PRZYCISKU - push_up<br /><br />int main(void) {<br /><br /> PORTC |= KEY1;  // podciągamy linie klawiszy do VCC<br /> DDRB |= LED; // pin jako WYjście<br /> DDRB |= BUZ;<br /><br /> _delay_ms(10);<br /><br /> while(1) {<br /><br />  if( !key_lock &amp;&amp; !(PINC &amp; KEY1 ) ) key_lock=1;<br />  else if( key_lock &amp;&amp; (PINC &amp; KEY1 ) ) {<br />   if( !++key_lock == 5 ) {<br /><br />    // reakcja na PUSH_UP (zwolnienie przycisku)<br />    PORTB ^= LED;<br />    PORTB ^= BUZ;<br />   }<br />  }<br /><br /> }<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7295">inde7</a> — 9 mar 2015, o 21:36</p><hr />
]]></content>
</entry>
</feed>