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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2012-05-01T09:17:36+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=1051&amp;mode</id>
<entry>
<author><name><![CDATA[Techniczny]]></name></author>
<updated>2012-05-01T09:17:36+01:00</updated>
<published>2012-05-01T09:17:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6058#p6058</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6058#p6058"/>
<title type="html"><![CDATA[Re: Prosty generator]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6058#p6058"><![CDATA[
O taki właśnie schemat mi chodziło. To Już mi bardzo dużo dało. Co do książki to mam ją cały czas przy sobie i ciągle wracam do jakiś miejsc bo ciężko zapamiętać wszystko od razu.<br /><br />Dzięki za schemat działania i podpowiedzi w książce gdzie powinienem wrócić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=307">Techniczny</a> — 1 maja 2012, o 09:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-05-01T08:29:03+01:00</updated>
<published>2012-05-01T08:29:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6055#p6055</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6055#p6055"/>
<title type="html"><![CDATA[Re: Prosty generator]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6055#p6055"><![CDATA[
Jeśli chodzi o strukturę programu to właśnie tak prawie wygląda, tyle że <br /><br />int main(void)<br /><br />to nie jest funkcja która nic nie zwraca - tzn chodzi mi o samo pojęcie - bo owszem nic nie zwraca - ale jest to GŁÓWNA FUNKCJA programu i to jest punkt wejściowy/startowy całego programu/projeku - tak należy to określać<br /><br />i dalej idąc wyróżniamy następujące sekcje w szkielecie programu w C:<br /><br /><br /><span style="color: #0040FF">// -------- dołączanie plików nagłówkowych<br />#include ........<br />#include.......<br />#include....<br /><br />//--------- ważne definicje i makra programu<br />#define ......<br />#define......<br /><br />//--------- deklaracje funkcji<br /><br />//--------- deklaracje zmiennych globalnych<br /><br /><br />//--------- GŁÓWNA FUNKCJA PROGRAMU ---------------<br />// **** i teraz sekcje w tej funkcji ****************<br />int main(void) {<br /><br />   // ---- inicjalizacja PINów i PORTów - kierunków itp<br /><br />   // ---- inicjalizacja modułów sprzętowych procesora jak: Timery, UART, ADC itp<br /><br />  sei();    // globalne zezwolenie na przerwania jeśli z nich korzystamy oczywiście<br /><br />   //*********** PĘTLA GŁÓWNA PROGRAMU !!! *******************<br />   while(1) {<br /><br />      //----- tutaj już zaczyna się dziać cały program czy to badanie klawiszy, czy sterowanie silnikiem<br />      // ---- badanie klawiszy może być a może go nie być - jak uważasz<br />      //---- najlepiej tak pisać aby tu było MEGA PRZEJRZYŚCIE i żeby wywoływane były tylko funkcje ew ZDARZENIA czy timery programowe<br /><br />   }<br /><br />}<br />//----------------- KONIEC</span><br /><br />.... czy czytałeś dokładnie rozdział w mojej książce o podziale projektu na pliki nagłówkowe i źródłowe ?????? bo coś mi się wydaje że co najmniej go pominąłeś może ? hmmmm???<br /><br />.... czy korzystasz z ECLIPSE i oglądałeś lekcje VIDEO z płyty DVD dołączonej do książki ???? to by ci w tym wszystkim dużo pomogło<br /><br />.... a szczególnie rozdział &quot;Wstęp do systemów czasu rzeczywistego&quot; o ile wcześniej poćwiczysz podstawy czyli pierwsze rozdziały warsztatowe OK?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 1 maja 2012, o 08:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Techniczny]]></name></author>
<updated>2012-05-01T07:03:11+01:00</updated>
<published>2012-05-01T07:03:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6049#p6049</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6049#p6049"/>
<title type="html"><![CDATA[Re: Prosty generator]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6049#p6049"><![CDATA[
Jeśli chodzi o przykład z multipleksowaniem to nim właśnie się sugerowałem. Nawet wartości są dokładnie takie same:) Fakt faktem zasugerowałem się jednym ćwiczeniem. Co do obsługi przerwań to właśnie o to mi chodzi. Wiem na czym polega generowanie przebiegu prostokątnego niemniej wydaje mi się że pisanie programu &quot;stan wysoki pauza stan niski pauza stan wysoki ...........&quot; itd jest bez sensu. Ogólnie moje zapytanie tyczy się nie tylko tego przykładu. Nie potrafię wyobrazić sobie schematu pisania takiego programu....<br />Mam coś takiego:<br />#include ........<br />#include.......<br />#include....<br /><br />tu sprawa jest jasna<br />#define ......<br />#define......<br /><br />też jest zrozumiałe<br /><br />tylko teraz tu rodzi się problem<br /><br />int main (void)<br /><br />Jeśli dobrze zrozumiałem jest to funkcja która nic nie zwraca?<br /><br />Ale co teraz ma być w niej żeby program się wykonywał?? Napisałem sobie programik obsługujący silnik krokowy. W zależności od tego jaki klawisz wcisnę robi albo pełne kroki albo półkroki.Wstawiłem &quot;if&quot; i wszystko ładnie działa. Ale co jeśli nie chce mieć klawiszy?? Czy ma być to na zasadzie:<br /><br />int main (void)<br />{<br />while(1)<br />{<br />krok1<br />krok2<br />}<br /><br />}<br />i to wszystko??<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=307">Techniczny</a> — 1 maja 2012, o 07:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2012-04-30T22:39:09+01:00</updated>
<published>2012-04-30T22:39:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6039#p6039</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6039#p6039"/>
<title type="html"><![CDATA[Re: Prosty generator]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6039#p6039"><![CDATA[
<div class="quotetitle">Techniczny napisał(a):</div><div class="quotecontent"><br />Dzięki za błyskawiczną odpowiedź. Widać nie tylko ja siedzę po nocach. Nie chodzi mi o to co robi pętla bo to już wyczytałem i wiem. Chodzi mi o to co do niej wpisać.. W tym przypadku chciałbym mieć na pinie PB3 przebieg o częstotliwości która sobie ustawiłem. Chodzi mi o to że nie wiem jak ma wyglądać czy to pętla czy cała funkcja żeby działała tak jak chcę...<br /></div><br /><br />hmmm no to możesz jeszcze skorzystać z innych przykładów w książce - o ile co najmniej raz (jak pisałeś już przeczytałeś całą od deski do deski) ....<br /><br />zobacz - masz pan tam np przykład do obsługi wyświetlaczy 7-segmentowych i multipleksowanego wyświetlania .... a także przykłady jak sobie obliczyć częstotliwość wykonywania tych przerwań - to może być np podstawa częstotliwości dla twojego generatorka - nieprawdaż ?<br /><br />a skoro tak - to pozostaje ci dopisać procedurę obsługi przerwania a w niej co ???? no na czym ma polegać generowanie sygnału prostokątnego ????<br /><br />na zmianie stanu pinu na przeciwny zatem wstawiasz np:<br /><br />PORTB ^= (1&lt;&lt;PB3);<br /><br />i po zawodach ..... to taki uproszczony sposób i programowy - ale możesz tego samego dokonać w pełni sprzętowo za pomocą timerów sprzętowych - jak?<br /><br />A zaczytaj jeszcze raz sobie projekt pilota RC5 - i zobacz że tam musi być uruchomiona nośna 36kHz .... i to nośna generowana sprzętowo - gdzie opisuję dokładnie jak to zrobić i o co chodzi - tylko może ci to na razie umknęło - no ale na tym polegają ćwiczenia z książką żeby trenować różne przykłady<br /><br />zobacz więc tam - bo to może być najprostsze dla ciebie a częstotliwość generatorka zmieniać możesz sobie wg życzenia dobierając preskalery itp<br /><br />jak coś - to wtedy dawaj tutaj i dopytaj dalej - nikt tu nikogo nie linczuje jak widzisz ..... każdy każdemu stara się chętnie pomóc <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=54">mirekk36</a> — 30 kwi 2012, o 22:39</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Techniczny]]></name></author>
<updated>2012-04-30T22:10:24+01:00</updated>
<published>2012-04-30T22:10:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6035#p6035</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6035#p6035"/>
<title type="html"><![CDATA[Re: Prosty generator]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6035#p6035"><![CDATA[
Dzięki za błyskawiczną odpowiedź. Widać nie tylko ja siedzę po nocach. Nie chodzi mi o to co robi pętla bo to już wyczytałem i wiem. Chodzi mi o to co do niej wpisać.. W tym przypadku chciałbym mieć na pinie PB3 przebieg o częstotliwości która sobie ustawiłem. Chodzi mi o to że nie wiem jak ma wyglądać czy to pętla czy cała funkcja żeby działała tak jak chcę...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=307">Techniczny</a> — 30 kwi 2012, o 22:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2012-04-30T22:01:26+01:00</updated>
<published>2012-04-30T22:01:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6033#p6033</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6033#p6033"/>
<title type="html"><![CDATA[Re: Prosty generator]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6033#p6033"><![CDATA[
pętla kolego w skrócie to to taka funkcja która zawarte w swoim ciele instrukcje wykonuje w koło (cały czas) <br /><br />czyli we wskazanym miejscu jeśli to konieczne musisz wpisac poprostu co ma robic twój program.<br />inaczej mówiąc chcesz by twój generatorek generował np przebieg prostokatny o czestotliwości np 10Hz <br />cały czas , wieć wpisujesz to w ciele pętli , i pętla sie kreci dookoła <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  duzy skrót , ale może cos ci rozjaśni<br />bo pętle też sa rózne <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=58">SunRiver</a> — 30 kwi 2012, o 22:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Techniczny]]></name></author>
<updated>2012-04-30T21:51:34+01:00</updated>
<published>2012-04-30T21:51:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6030#p6030</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6030#p6030"/>
<title type="html"><![CDATA[Prosty generator]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=1051&amp;p=6030#p6030"><![CDATA[
Witam.<br />Jestem nowy więc może od razu mnie nie zlinczują:)<br /><br />Mam taki problem. Zaczynam się uczyć programowania i o ile przykłady z książki działają bez większych problemów o tyle kiedy próbuje napisać coś samemu działa to średnio albo wcale. Czytam kolejny raz książkę i za każdym razem rozumiem coś więcej jednak nie potrafię zrozumieć schematu działania przy pisaniu programów.<br /><br />Chce zbudować sobie prosty generatorek. Jeden przebieg ze stałą częstotliwością. Napisałem coś takiego:<br /><br />[syntax=c]<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br /><br />#define GEN     (1&lt;&lt;PB3)<br />uint8_t i;<br /><br /><br />int main(void)<br />{<br /><br />DDRB |= GEN;<br /><br />TCCR0 |= (1&lt;&lt;WGM01);// tryb Fast CTC<br />TCCR0 |= (1&lt;&lt;COM01)|(1&lt;&lt;COM00);<br />TCCR0 |= (1&lt;&lt;CS00)|(1&lt;&lt;CS00);// preskaler = 1024<br />OCR0=39;// podział przez 39<br />TIMSK |= (1&lt;&lt;OCIE0);// zezwolenie na przerwanie Compare Match<br /><br /><br /><br /><br />while(1)<br />{<br /><br /><br /><br /><br /><br /><br />}<br />}<br />[/syntax]<br />I tu rodzi się pytanie co dalej?? Czego tu brakuje i Co trzeba wstawić??<br />O ile definicje czy deklaracje są jasne, definiowanie portu I/O też o tyle same pętle i to co ma w nich być już nie bardzo.<br /><br /><strong><span style="color: #FF0000">Znaczniki do źródeł wstawiłem. Uźywaj proszę znacznika Syntax <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> SunRiver</span></strong><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=307">Techniczny</a> — 30 kwi 2012, o 21:51</p><hr />
]]></content>
</entry>
</feed>